2010-07-03
| 00:00 | Bahman | Hi all! |
| 00:06 | hiredman | ,(->> "foo" class .getMethods (map #(.getName %))) |
| 00:06 | clojurebot | ("hashCode" "compareTo" "compareTo" "indexOf" "indexOf" "indexOf" "indexOf" "equals" "toString" "length" "isEmpty" "charAt" "codePointAt" "codePointBefore" "codePointCount" "offsetByCodePoints" "getChars" "getBytes" "getBytes" "getBytes" "getBytes" "contentEquals" "contentEquals" "equalsIgnoreCase" "compareToIgnoreCase" "regionMatches" "regionMatches" "startsWith" "startsWith" "endsWith" "lastIndexOf" "lastIndexOf" "lastIn |
| 00:10 | herdrick | tomoj: according to this: http://github.com/technomancy/leiningen/blob/master/sample.project.clj |
| 00:10 | herdrick | you add :jvm-opts "-Xmx1g" |
| 00:10 | herdrick | to your defproject |
| 00:11 | herdrick | (well, with whatever value you want after -Xmx of course |
| 00:11 | herdrick | ) |
| 00:12 | herdrick | though I'm not getting any satisfaction from it. |
| 00:12 | herdrick | maybe this is some Incanter issue |
| 00:12 | herdrick | because even with the default heap size there should be plenty of room |
| 00:12 | aedon | Does anyone here use emacs viper-mode to edit clojure? I can't get it to automatically switch to viper-mode when I edit clojure files. |
| 00:13 | herdrick | i'm only got a 3 by 1000 incanter matrix |
| 00:13 | herdrick | of Doubles |
| 00:13 | herdrick | so, what, 25k of data |
| 00:14 | herdrick | and multiplying it by it's transpose is what blows with the OutOfMemoryError |
| 00:14 | herdrick | (mmult (trans three-by-1000) three-by-1000) |
| 00:14 | herdrick | looks like liebke: isn't here |
| 00:18 | tomoj | isn't the jvm started by the lein shell script? |
| 00:18 | hiredman | it is |
| 00:18 | tomoj | so how could project.clj affect the jvm opts used? |
| 00:19 | hiredman | you can also just set JVM_OPTS or JAVA_OPTS or whatever |
| 00:19 | tomoj | unless the shell script parses it.. which would be weird |
| 00:19 | herdrick | hiredman: ok, thanks |
| 00:19 | hiredman | a) it totally could |
| 00:19 | hiredman | b) lein used to launch a new jvm |
| 00:19 | hiredman | c) I don't think it ever does now |
| 00:20 | tomoj | so :jvm-opts is useless, right? |
| 00:20 | hiredman | no idea |
| 00:20 | hiredman | ^- |
| 00:25 | technomancy | no, it's not useless |
| 00:25 | technomancy | it's actively harmful |
| 00:25 | technomancy | wtf. |
| 00:26 | technomancy | I took it as a patch from someone, and they were like, OK; thanks for applying this |
| 00:26 | technomancy | but I never tried it for myself. |
| 00:35 | mudge | hello |
| 00:35 | mudge | newbie question |
| 00:35 | mudge | I have a Java application loading up a clojure program that I wrote, but when the Java application tries to load my clojure program, this error comes up: Could not locate clojure/core__init.class or clojure/core.clj on classpath: |
| 00:35 | mudge | at clojure.lang.RT.<clinit>(RT.java:295) |
| 00:36 | technomancy | tomoj: lein does fork a subprocess for the project's JVM, but I'm not sure if the CLI options are fixed at that point. |
| 00:38 | mudge | anyone know what I should do? |
| 00:41 | hiredman | mudge: make sure clojure/core.clj is on the classpath |
| 00:44 | mudge | what's the difference between a class loader and a classpath? |
| 00:49 | technomancy | mudge: a classloader is a Java mechanism to load class files from disk or another source into memory; a classpath is the locations that are searched for those files. |
| 00:49 | mudge | technomancy: awesome, thanks |
| 01:05 | technomancy | if someone's having problems AOT-compiling namespaces in a certain order, it means they're leaving out calls to require, right? |
| 01:08 | technomancy | wow... interesting that this Clojure course in India is being offered for free. |
| 10:50 | ev4l | anyone here had trouble installing swank-clojure via ELPA? |
| 10:58 | Bahman | ev4l: Compilation errors are fine. |
| 11:05 | ev4l | Bahman: right, but it seems the package isn't marked as installed after opening the package list after an emacs restart =/ |
| 11:06 | Bahman | ev4l: I had the same issue... |
| 11:06 | Bahman | and it was because I marked more than one package to install. |
| 11:06 | Bahman | Just did it one package at a time and it went all well. |
| 11:07 | Bahman | Hope it helps. |
| 11:10 | ev4l | Bahman: thx! |
| 11:11 | Bahman | ev4l: Did you managed to install it? |
| 11:13 | kodis | How do I access a static method from a local class? I imagine this is a simple thing to do, but can't make it work. |
| 11:14 | ev4l | Bahman: It seems that when i mark swank-clojure for installation it tries to re-install deps like clojure mode (that's already installed) |
| 11:14 | raek | kodis: local? |
| 11:14 | Bahman | ev4l: Ah, yes! That's a headache. |
| 11:14 | raek | static methods are use like this: (Class/method args...) |
| 11:14 | Bahman | I deleted .emacs.d/ and started afresh. |
| 11:14 | ev4l | Bahman: will attempt a cleanup |
| 11:15 | Bahman | Just mark the package you do want...it will calculate the deps but can't re-install them. |
| 11:15 | kodis | raek: Just a simple java class file in my current working directory. |
| 11:15 | raek | you have to either import the class or use it's full name |
| 11:15 | raek | what classpath did you start clojure with? |
| 11:16 | raek | or, how did you start clojure? |
| 11:17 | kodis | raek: with a -cp of '.', and still no joy: only 'No such namespace:' or java.lang.ClassNotFoundException: |
| 11:17 | kodis | clojure was started with 'java -cp . -jar /usr/share/java/clojure.jar' |
| 11:18 | raek | classes in the default package is handled specially by the JVM, but I don't know of that's the issue here |
| 11:19 | raek | if you type the name of the class in the repl, you get a ClassNotFoundException? |
| 11:21 | raek | also, is the class compiled? |
| 11:21 | kodis | With a class of 'J' containing a static method of 'j', '(J/j)' throws 'java.lang.Exception: No such namespace: J', while '(J)' throws 'java.lang.Exception: Unable to resolve symbol: J in this context' |
| 11:22 | raek | have you compiled the .java file into a .class file? |
| 11:22 | raek | clojure can only use compiled classes |
| 11:23 | kodis | Yes, both J.java and the resulting J.class are in my current working directory. |
| 11:23 | raek | ok |
| 11:23 | raek | can you make a folder named, say, "foo" and put the .class file in there |
| 11:24 | raek | then try enetering "foo.J" into the repl |
| 11:25 | kodis | user=> foo.J |
| 11:25 | kodis | java.lang.ClassNotFoundException: foo.J (NO_SOURCE_FILE:0) |
| 11:25 | raek | hrm, maybe the -jat options throws away the -cp args |
| 11:26 | raek | try "java -cp '.:/usr/share/java/clojure.jar' clojure.main" |
| 11:26 | raek | (use semicolon instead of a colon if you are on windows) |
| 11:26 | raek | *the -jar option |
| 11:27 | kodis | Well, at least that produces a different error: |
| 11:27 | kodis | user=> foo.J |
| 11:27 | kodis | java.lang.NoClassDefFoundError: foo/J (wrong name: J) (NO_SOURCE_FILE:0) |
| 11:28 | raek | ah, try adding "package foo;" in the .java file |
| 11:28 | raek | now the class is in the foo package |
| 11:29 | raek | (the directry structure has to match) |
| 11:29 | raek | if this works, you could try to revert all the "foo" stuff |
| 11:29 | raek | it was probably just the classpath that was the problem |
| 11:31 | kodis | Progress! foo/J still throws an exception, but an import now works! |
| 11:32 | raek | and typing foo.J returns foo.J? |
| 11:32 | raek | if so, clojure can at least find the class |
| 11:33 | kodis | Solved! foo.J returns foo.J, and (J/j) evals to 42 as expected. Thanks for walking me through this. |
| 11:34 | kodis | I'm surprised that it's not a bit more straight forward. It seems that classes can't be imported, only packages. Can that be correct? |
| 11:35 | raek | "importing" is just a matter of not having to type the full name of the class |
| 11:36 | raek | so, after running (import 'java.util.contrib.BlockingQueue), one can use the name BlockingQueue |
| 11:36 | raek | instead of having to type java.util.contrib.BlockingQueue every time |
| 11:37 | raek | I think it should work to have the class file in the root directory, remove the package line from the .java file and use the class under the name J |
| 11:37 | raek | since "J" would be its full name then |
| 11:38 | raek | but classes in the "default package" (those without a package prefix) are handled specially by the JVM |
| 11:38 | raek | i'm not aware of the details, just that "usage of the default package is discouraged" |
| 11:39 | kodis | Raek: Yes, that's what I thought, but I still don't see how to access a class without a package. |
| 11:39 | raek | wait a sec, and I'll try something |
| 11:40 | kodis | Yes, I can see how failing to work would provide some discouragement! |
| 11:41 | raek | "You can’t use classes in the default package from a named package." |
| 11:41 | raek | right. |
| 11:42 | raek | here's the issue on StackOverflow: http://stackoverflow.com/questions/283816/how-to-access-java-classes-in-the-default-package |
| 11:42 | kodis | Ah, okay -- unfortunate, but at least now I can stop trying to get that to work and just put the code in a proper package to begin with. |
| 11:44 | raek | yes, putting everything in a directory named as the project will do |
| 11:47 | kodis | raek, you mean 'in a project named...', right? Just moving the class file into the foo directory doesn't seem sufficient. |
| 11:48 | raek | i meant that if your project is called, say, myproj all files (including the .clj files) should be in myproj/ |
| 11:49 | raek | java classes has to be declared to be in the package using the "package xx.yy.zz;" statement |
| 11:49 | aedon | kodis: there's really no magic here. if you have a directory named 'x' and you put that dir in the classpath, then files in the default package should go in x, files in the foo package should go in x/foo and files in the foo.bar.baz package should go in x/foo/bar/baz |
| 11:50 | raek | clojure files should have namespace declarations reflecting the directory structure: (ns myproj.main) |
| 11:51 | raek | if you have a file with the path myproj/main.clj |
| 11:52 | raek | http://clojure.org/libs |
| 11:55 | kodis | Right, so the usual java name mappings are still in effect. It still seems that the 'package foo;' line is required though -- just a bare Class won't do. |
| 11:57 | raek | yes, the package declaration must match the directory structure too |
| 11:57 | raek | you could say that clojure namespaces and java packages are the same thing |
| 11:57 | raek | at least when considering the classpath |
| 11:58 | kodis | Yup. Organizing classes into packages seems like it's the best practice anyway. |
| 12:00 | kodis | It's a bit surprising that I can't directly access a simple, unpackaged class, but I guess I understand the rational. |
| 13:16 | LauJensen | Good morning (UGT) :) |
| 14:07 | cais2002 | good night every one |
| 16:04 | cmcclell | quick question |
| 16:05 | cmcclell | What is the best syntax highlighting offered in emacs23/linux? clojure-mode only seems to highlight known fns. User defined macros/fns do not get highlighted at all |
| 16:08 | LauJensen | cmcclell: Most, if not all, use Clojure-mode, but you can add something like idle-highlight (IIRC the name correctly) if you want more highlighting |
| 16:08 | LauJensen | technomancy should have the details :) |
| 16:09 | cmcclell | thanks. For some reason, aquamacs + clojure-mode seems to do more (like highlight macros, even user defined ones, in green). Not sure why ubuntu + emacs23 seems to do less |
| 16:11 | hiredman | it depends on the color scheme you use, and if you are using console emacs, your TERM |
| 16:13 | LauJensen | There are actually 2 colors themes out there, by etate whos a Clojurian. |
| 16:23 | arohner | what's the best way to tell which dependency causes lein to download an artifact? |
| 16:23 | arohner | lein pom && mvn dependency:tree appears to be lying to me |
| 16:29 | arohner | ah. It appears lein exclusions aren't transitive |
| 16:33 | neotyk | Hi, is it possible to compile java with new lein? |
| 16:34 | arohner | neotyk: I haven't tried this, but it might be useful: http://github.com/antoniogarrote/lein-javac |
| 16:34 | raek | there is this, but I haven't tried it myself: http://github.com/antoniogarrote/lein-javac |
| 16:34 | raek | whoa |
| 16:34 | neotyk | I have tried it :( |
| 16:36 | neotyk | lein doesn't find compile-java |
| 16:40 | the-kenny | Why isn't clojure.contrib.graph/lazy-walk checking if n is in the set of nodes? I just experienced some very strange behaviour when passing a node not in the nodes-set. |
| 16:48 | technomancy | cmcclell: I can't remember ever making clojure-mode highlight user-defined macros. |
| 16:48 | technomancy | neotyk: did you add lein-javac as a :dev-dependency instead of a regular dependency? |
| 16:48 | technomancy | and run "lein deps" after adding it? |
| 16:48 | neotyk | technomancy: yes |
| 16:49 | neotyk | both |
| 16:49 | technomancy | neotyk: hmm; possibly a bug in the plugin then; I haven't used it myself. |
| 16:49 | neotyk | technomancy: not true, didn't run lein deps |
| 16:49 | technomancy | aha |
| 16:52 | neotyk | technomancy: now it compiles |
| 16:52 | technomancy | cools |
| 16:52 | neotyk | is there a hook to make compile-java be executed with compile? |
| 16:53 | technomancy | neotyk: hooks are a pretty new feature; I don't know if lein-javac has been updated to use them yet. |
| 16:54 | neotyk | I want to update it, but don't know how to use a hook |
| 16:56 | technomancy | neotyk: you would need to add robert-hooke as a dependency to lein-javac and add a leiningen.hooks.javac namespace that calls add-hook to wrap #'leiningen.compile/compile |
| 16:56 | technomancy | more details here: http://github.com/technomancy/robert-hooke |
| 16:56 | technomancy | if you have trouble go ahead and ask on the leiningen mailing list; I'm taking off for a while. |
| 16:56 | neotyk | technomancy: great, will give it a try, thanks |
| 16:56 | arohner | is there any metadata on an AOT classfile that identifies which version it was compiled with? |
| 16:57 | arohner | I've got that stupid java.lang.NoSuchMethodError: clojure.lang.RestFn.(I)V error, and I want to make it easier to identify |
| 17:56 | thunk | Compojure noob question: When I reevaluate a defroutes form, jetty doesn't serve the modified form. How do I get the repl development cycle going with compojure? |
| 18:02 | thunk | nm, stuarth set me straight. |
| 18:14 | itistoday | what is the purpose of :as in destructuring? |
| 18:14 | itistoday | here's an example from The Joy of Clojure: (loop [[part & parts :as work] work] |
| 18:15 | itistoday | if they already have 'work'.... why are they doing :as work? |
| 18:16 | hiredman | itistoday: what is the point of a loop? |
| 18:17 | hiredman | if you rewrote the loop as a function, how would it look? |
| 18:17 | itistoday | one sec... let me take a screenshot |
| 18:17 | hiredman | … |
| 18:17 | hiredman | why? |
| 18:17 | clojurebot | why not? |
| 18:17 | itistoday | or are you already answering my question |
| 18:17 | hiredman | clojurebot: buzz off |
| 18:18 | clojurebot | No entiendo |
| 18:18 | hiredman | itistoday: I am asking you a question |
| 18:18 | itistoday | hiredman: it's sometimes hard to tell with you :-p |
| 18:18 | hiredman | itistoday: what is the purpose of loop? |
| 18:18 | itistoday | to provide a point to jump back into for recur? |
| 18:19 | hiredman | so when writing binding forms for a loop you have to keep in mind the recur |
| 18:20 | hiredman | if you don't rebind work in the loop's binding form it will always be bound to value it had outside of the loop |
| 18:21 | itistoday | hiredman: oh ok, i see, i thought that wouldn't happen, that work would be bound to the modified version... |
| 18:21 | hiredman | (fn [{part & parts :as work}] ...) |
| 18:21 | hiredman | why would it? |
| 18:21 | itistoday | no, rather: (fn [{part & parts] work] .. ) |
| 18:21 | hiredman | er |
| 18:21 | hiredman | nope |
| 18:22 | hiredman | (fn [[part & parts :as work]] ...) |
| 18:22 | itistoday | (ok, messed up on the closing bracket) |
| 18:22 | itistoday | oh ok |
| 18:22 | itistoday | i see, you're redefning loop as a function |
| 18:22 | hiredman | 15:25 < hiredman> if you rewrote the loop as a function, how would it look? |
| 18:23 | itistoday | heh |
| 18:23 | itistoday | ok well i'm still shaky on all the syntax |
| 18:23 | itistoday | it hasn't become second nature yet |
| 18:23 | hiredman | the point is parameter names are rebound to new values for each call |
| 18:23 | hiredman | just like loop bindings are rebound for each iteration |
| 18:24 | itistoday | ok, i see, it's because the 'work' on the right is only "listened to" once |
| 18:24 | itistoday | on the first call |
| 18:24 | itistoday | from then on it's as if it wasn't there and loop were a function definition |
| 18:24 | hiredman | more or less |
| 18:24 | mudge | hello |
| 18:25 | hiredman | the binding form at the top of a loop is for establishing the initial bindings for the first iteration |
| 18:25 | itistoday | right |
| 18:25 | mudge | I am using :methods in the gen-class function, how do I specify a method signature that returns void? |
| 18:25 | itistoday | it should stick this time hopefully :-p thanks hiredman |
| 18:26 | itistoday | mudge: i've seen other people ask that question, and i think the answer was don't worry about it |
| 18:26 | itistoday | mudge: (i could be wrong, but just try it and see if it works) |
| 18:27 | mudge | itistoday: thanks, what am I supposed to try? |
| 18:28 | itistoday | mudge: i don't know. :-) I thought you might. :-p |
| 18:28 | technomancy | mudge: just return nil |
| 18:28 | mudge | can't put nil inside :methods |
| 18:28 | mudge | I just tried this: :methods [[appleFun [] void]] |
| 18:28 | mudge | and that worked |
| 18:29 | mudge | so using void as the return type in :methods worked |
| 18:29 | technomancy | any other JoC reviewers here? I think I was missed on the latest review round email. |
| 18:30 | itistoday | technomancy: you mean the link to the latest copy? |
| 18:30 | mudge | this is pretty sweet, I'm using a class generated with clojure inside my java code |
| 18:30 | technomancy | itistoday: I have it; I'm just wondering when the reviews are supposed to be in. |
| 18:31 | itistoday | technomancy: ah, yeah i'm probably not a reviewer then cause i don't know what you're talking about :-p |
| 18:32 | itistoday | technomancy: happen to have any guess on when the next chapter's going to be out? |
| 18:32 | itistoday | i'm wondering whether i'll get to it before it comes out or not... |
| 18:33 | technomancy | itistoday: I think the final review rounds were 3 or 4 weeks ago, but I don't know beyond that. |
| 18:34 | itistoday | k |
| 18:39 | mudge | is JoC pretty good? |
| 18:42 | technomancy | it's very good. |
| 18:42 | technomancy | but not terribly introductory. |
| 18:42 | itistoday | how does the lazy-seq macro work? |
| 18:43 | itistoday | i don't get this: (list 'new 'clojure.lang.LazySeq (list* '^{:once true} fn* [] body)) |
| 18:43 | itistoday | err, i should be more specific |
| 18:43 | itistoday | i don't get: '^{:once true} |
| 18:43 | hiredman | don't worry about it |
| 18:43 | itistoday | hehe |
| 18:44 | itistoday | ,'^{:once true} |
| 18:44 | clojurebot | EOF while reading |
| 18:44 | technomancy | it's a hint to the compiler that the function's body should be cached and not re-run. |
| 18:44 | hiredman | the implementation is not something you need to worry about |
| 18:44 | technomancy | pretty low-level obscure stuff. |
| 18:44 | hiredman | you just want to know what ^ is? |
| 18:44 | itistoday | hiredman: i know i don't *need* to. |
| 18:45 | itistoday | yeah |
| 18:45 | itistoday | and what's the deal with the quote |
| 18:45 | itistoday | i read that as: "don't evaluate something" |
| 18:45 | hiredman | itistoday: http://clojure.org/reader |
| 18:46 | itistoday | ok, so "don't evaluate some metadata"? |
| 18:46 | itistoday | (i'm guessing that in 1.2 ^{} is #^{}) |
| 18:46 | technomancy | the quote is a no-op there as far as I can tell |
| 18:46 | technomancy | since the thing that's quoted is a literal anyway |
| 18:46 | technomancy | itistoday: yes |
| 18:47 | hiredman | technomancy: well, it quotes the fn form |
| 18:47 | technomancy | hiredman: ooooh... the reader passes the quote on... interesting. |
| 18:48 | hiredman | right |
| 18:48 | hiredman | quote is a reader macro |
| 18:48 | technomancy | that's almost an operator precedence issue |
| 18:48 | hiredman | the reader only deals with transforming it to a s-exp |
| 18:48 | hiredman | it is |
| 18:48 | itistoday | ok, so it's not quoting the metadata |
| 18:48 | itistoday | but what follows it? |
| 18:49 | hiredman | right |
| 18:49 | itistoday | i see |
| 18:49 | hiredman | the reader attaches that metadata to the symbol fn* |
| 18:49 | hiredman | and then you get (quote fn*) |
| 18:49 | itistoday | so my understanding of this thing has gone from completely opaque to the transparency of those glass blocks people put as walls in their bathrooms |
| 18:50 | itistoday | thanks though, i'll save it for another day |
| 18:50 | itistoday | it's just a really weird way of doing laziness |
| 18:50 | itistoday | *lazyness |
| 18:50 | itistoday | (i think) |
| 18:50 | itistoday | streams in scheme are understandable to me, this is still magic :-p |
| 18:51 | hiredman | not reallyy |
| 18:51 | hiredman | it jsut generates a thunk |
| 18:51 | hiredman | and the thunk generates the first part of the lazy-seq |
| 18:51 | hiredman | the next part has it's own thunk |
| 18:52 | hiredman | etc etc |
| 18:57 | itistoday | ok, i might understand it now after looking at LazySeq.java, at least it's become a bit more clear |
| 18:58 | itistoday | btw, is it inefficient to setup try/catch blocks in java? |
| 18:58 | itistoday | i know that's a java question, not a clojure question... but they're currently closely tied together so maybe someone here knows the answer |
| 18:58 | itistoday | i just see them all over the place and i thought they were inefficient |
| 19:03 | itistoday | ooo, looks like this is the answer: http://stackoverflow.com/questions/141560/should-try-catch-go-inside-or-outside-a-loop |
| 19:03 | itistoday | seems like they're really cheap, ... err.. don't affect performance at all unless something goes wrong |
| 19:08 | itistoday | i really have to thank rich for getting rid of that # in 1.2's syntax. |
| 19:26 | itistoday | what is that part of speech where a word represents a larger whole? |
| 19:27 | itistoday | like America representing the government or something? |
| 19:28 | itistoday | #languagearts was empty :-p |
| 19:33 | bortreb | Synecdoche -- like saying "the pen of the president" to refer to his power or some law that was made |
| 19:37 | itistoday | bortreb: thanks! you know that word was bouncing around in my head, i should've looked it up, something's obviously wrong with me. :-p |
| 19:39 | itistoday | i'm glad i finally got to use that word: "The Government" is also not an individual entity with a single consciousness that's out to get you. It's a synecdoche that refers to a large group of _elected_ officials. If there's something wrong, the entire country shares the blame. |
| 19:54 | bortreb | yep Synecdoche drives our computers crazy... it's so hard to figure out what it refers to in NLP. |
| 19:56 | itistoday | bortreb: cool! |
| 19:57 | itistoday | bortreb: anything i can google that you're working on? |
| 19:58 | thunk | Unrelatedly: "Synecdoche, New York" was an amazing movie |
| 20:10 | bortreb | isittoday: http://groups.csail.mit.edu/genesis/ |
| 20:12 | bortreb | , (+ 1 2) |
| 20:12 | clojurebot | 3 |
| 20:20 | itistoday | bortreb: cool, thanks for the link! looking at the video now |
| 20:24 | itistoday | bortreb: have you looked at jmonkeyengine? java3d is really out of date |
| 20:26 | itistoday | bortreb: (admittedly that probably doesn't matter for your purposes :-p) |
| 20:32 | bortreb | I'm actually working on porting Jake2 to clojure so we can use that environment as a hime for the AIs |
| 20:39 | itistoday | bortreb: why not use jME? |
| 20:41 | bortreb | never heard of it? |
| 20:42 | bortreb | itistoday: have you used it for stuff in the past? is it awesome? |
| 20:42 | itistoday | bortreb: yes. it is awesome, and actively being developed, and has a large community. |
| 20:43 | itistoday | bortreb: it's really the best 3d java engine that i know of |
| 20:44 | itistoday | bortreb: and unlike jake2, it's not outdated. ;-) |
| 20:48 | bortreb | itistoday: that's really cool. I looked at goldsrc but I wanted to go with something simple that I could use with java. I missed jmonkeyengine |
| 20:50 | bortreb | itistoday: know any clojure related projects using this / a good starting point? |
| 20:50 | itistoday | bortreb: google the two |
| 20:51 | itistoday | bortreb: i personally don't, but google showed some stuff |
| 20:51 | itistoday | bortreb: like this: http://nakkaya.com/2010/05/25/jmonkeyengine-hello-world-in-clojure/ |
| 21:00 | itistoday | technomancy|away: why? http://paste.pocoo.org/show/233242/ |
| 21:28 | technomancy | itistoday: sounds like the plugin may not be designed to work with that leiningen version |
| 21:28 | technomancy | ping dnolen; he wrote it |
| 21:29 | itistoday | technomancy: thanks, how do i ping him? |
| 21:29 | itistoday | you mean contact him when he's online? |
| 21:29 | itistoday | (using the rc2 btw of lein) |
| 21:35 | dabd | is it possible launch a standalone swank server (i.e., one that is not |
| 21:35 | dabd | associated to a leiningen project) and connect to it with |
| 21:35 | dabd | slime-connect? |
| 21:36 | itistoday | technomancy: now lein won't uberjar: http://paste.pocoo.org/show/233244/ |
| 21:36 | itistoday | technomancy: and it deletes everything in the lib/ folder |
| 21:37 | thunk | dabd: (swank/start-repl) |
| 21:37 | thunk | w/ optional port argument |
| 21:38 | dabd | thunk: swank/start-repl is a clojure function right? |
| 21:40 | thunk | dabd: Correct. swank-clojure has to be on your classpath, and you have to (use :swank) or equivalent. |
| 21:42 | mudge | I noticed that when clojure.jar is not on the class path, this error occurs: java.lang.NoClassDefFoundError: clojure/lang/IFn |
| 21:42 | dabd | my current setup does not allow me to start a repl from emacs. I can start a swank server with 'lein swank' and then slime-connect from emacs. |
| 21:43 | mudge | I have a problem where I have an application written in Java that uses a class compiled from clojure that give an error that clojure core is not on the classpath |
| 21:43 | mudge | it seems to recognize that clojure.jar is on the classpath though |
| 21:44 | mudge | it seems to recognize clojure code, just not stuff that uses clojure core |
| 21:45 | hiredman | do you have clojure.jar on the classpath? |
| 21:45 | mudge | yes, i think it is because it is not giving me this error which occurs when clojure.jar is not on the classpath: java.lang.NoClassDefFoundError: clojure/lang/IFn |
| 21:46 | mudge | so i think clojure.jar is on the classpath, and is being recognized by java |
| 21:46 | hiredman | why not just look at the classpath? |
| 21:46 | hiredman | what is on the classpath? |
| 21:48 | mudge | I can't see it for sure because my clojure code is loaded by an external Java application that I don't have access to |
| 21:53 | hiredman | mudge: if you don't know, then you can't fix |
| 21:55 | mudge | but I do know I am changing the classpath and I am pretty sure that clojure.jar is on the classpath |
| 21:55 | mudge | because I can change the configuration so that the java.lang.NoClassDefFoundError: clojure/lang/IFn error occurs |
| 21:55 | mudge | and then add in clojure.jar and that error goes away |
| 21:56 | mudge | and instead I get a clojare core error, that clojure core cannot be found on the classpath |
| 21:56 | mudge | so, is it possible that clojure.jar can be on the classpath without clojure core being on the classpath? |
| 21:57 | mudge | clojure core is in clojure.jar so it doesn't make sense to me |
| 21:57 | mudge | does clojure have its own class loader? |
| 22:02 | mudge | this is the exact error I'm getting: java.io.FileNotFoundException: Could not locate clojure/core__init.class or clojure/core.clj on classpath |
| 22:02 | mudge | clojure.jar is on the classpath though |
| 22:04 | mudge | i'm thinking that my problem is similar to the problem here: http://stackoverflow.com/questions/2352242/how-can-i-embed-clojure-in-an-rcp-application |
| 22:15 | mudge | anyone seen this error: Could not locate clojure/core__init.class or clojure/core.clj on classpath |
| 22:15 | mudge | clojure.jar is in the classpath |
| 22:17 | itistoday | mudge: how are you running and what are you running? |
| 22:20 | mudge | I generate java classes from my clojure source code, which is one file, and put it in a jar. Then my jar and clojure.jar are sent to an external java application that tries to run my clojure code and spits out that error |
| 22:20 | mudge | my clojure program is a 3rd party module for an existing java program that uses java webstart |
| 22:21 | itistoday | mudge: you mean it tries to load them at runtime? |
| 22:22 | mudge | yes |
| 22:22 | itistoday | mudge: ah, well, i have zero experience with that, sorry, can't help :-\ |
| 22:23 | mudge | okay, thanks for your willingness |
| 22:24 | itistoday | np |
| 22:33 | bortreb | mudge: in the worst case, you might consider unjaring all the clojure files from clojure.jar and repackaging them in your own jar |
| 23:32 | unlink | Are macros vogue for designing event-driven API libraries? |
| 23:33 | unlink | (defhandler client (event-one [x y z] blah) (event-two [] ...)) |
| 23:53 | Bahman | Hi all! |