2011-05-29
| 02:17 | sid3k | hi all. I'm having trouble to run this example code: https://github.com/zkim/xmpp-clj |
| 02:18 | amalloy | sid3k: the instructions in that readme look really old |
| 02:18 | sid3k | I compiled the module but still can't managed to execute the client |
| 02:19 | sid3k | amalloy: is there any better xmpp library for clojure, with documentation? |
| 02:20 | sid3k | what should I put on the main function to run the client? |
| 02:20 | amalloy | sid3k: what i mean is, they're asking you to use clojure 1.1 (a year out of date), and a version of lein-swank that's got to be older than god |
| 02:20 | sid3k | amalloy: yeah but still I wonder, how can I run the example app? |
| 02:21 | sid3k | is it necessary to call my-bot? |
| 02:21 | sid3k | my-boot doesn't seem like callable |
| 02:21 | amalloy | *shrug* i've never used the xmpp project. i doubt it's callable |
| 02:22 | sid3k | yeah, me too |
| 02:22 | amalloy | did you give it a username/password pair that you can successfully log in with yourself? |
| 02:23 | sid3k | amalloy: of course |
| 02:23 | sid3k | then I wrote this code: (defn -main [& args] |
| 02:23 | sid3k | (println "Hello World") |
| 02:23 | sid3k | (xmpp/start-bot connect-info reload-helper)) |
| 02:24 | sid3k | when I run this module, it puts hello world and exits |
| 02:25 | sid3k | this channel was so breezy 6 months ago, what happened to this community? |
| 02:25 | amalloy | well you showed up at 2:30am east-coast time :P |
| 02:26 | sid3k | good point |
| 02:27 | sid3k | and it's saturday, I wouldn't want to be a part of community studying programming in saturday night |
| 02:28 | amalloy | anyway, i don't know how the xmpp lib works. maybe it does something crazy like not register any non-daemon threads, in which case exiting (main) would make the jvm terminate |
| 02:29 | amalloy | but if the clojure wrapper is a year old and isn't working, i'd probably look into how the java library itself works |
| 02:29 | sid3k | hmm |
| 02:29 | sid3k | arright |
| 02:31 | amalloy | sid3k: if you're not married to xmpp, you can fork sexpbot here and write an irc bot instead |
| 02:32 | amalloy | sexpbot: what do you think of irclj? |
| 02:32 | sexpbot | It's AWWWW RIGHT! |
| 02:32 | seancorfield | sid3k: in addition to being late at night, it's memorial day weekend in the US and most people are away on vacation for three days :) |
| 02:32 | seancorfield | except folks like me and amalloy :) |
| 02:32 | amalloy | seancorfield: by the way, i've confirmed that i'm moving down to LA to work with lancepantz and ninjudd |
| 02:33 | seancorfield | i guess i'd ask what you plan to do with xmpp? |
| 02:33 | seancorfield | amalloy: sorry to hear you'll have to put up with LA... |
| 02:33 | seancorfield | but working with those guys should be fun |
| 02:33 | seancorfield | and you can always drive back up for weekends (which is what my wife used to do when she lived in marina del rey) |
| 02:34 | sid3k | seancorfield: I'm planning to make a jabber client for my chess app, multiplayerchess.com |
| 02:34 | sid3k | s/jabber/gmail |
| 02:34 | sexpbot | <sid3k> seancorfield: I'm planning to make a gmail client for my chess app, multiplayerchess.com |
| 02:34 | seancorfield | a gtalk client, you mean? |
| 02:34 | sid3k | yeah, I didn't want to replace it again :) |
| 02:35 | sid3k | hmm, jabber might be the true one |
| 02:35 | amalloy | sid3k: gtalk is just jabber |
| 02:35 | seancorfield | you might want to just take the basic java library and write your own wrapper... i haven't looked at xmpp-clj but it sounds like it isn't maintained any more and you might be able to write a better wrapper for your needs anyway... |
| 02:36 | sid3k | I also want to restrucutre its backend soon. Now it sounds better to design the whole system based on xmpp |
| 02:37 | sid3k | seancorfield: yeah, make sense |
| 02:41 | seancorfield | sid3k: do you get lots of errors like this at startup: Error! A startup class specified in smack-config.xml could not be loaded: org.jivesoftware.smackx.ServiceDiscoveryManager |
| 02:41 | sid3k | seancorfield: yep |
| 02:44 | seancorfield | i just tried it from the repl and despite the errors, it worked fine |
| 02:44 | seancorfield | my bot responded: Hi mailto:seancorfield@gmail.com, you sent me 'test' |
| 02:46 | sid3k | I haven't tried it on repl yet. How would you code it if you wanted it to run as an app? |
| 02:46 | sid3k | was my -main func wrong? |
| 02:46 | seancorfield | dunno |
| 02:47 | seancorfield | i'm just saying it worked fine from the repl... |
| 02:47 | sid3k | arright |
| 02:47 | sid3k | thx |
| 02:48 | seancorfield | i guess you'd need some sort of loop that mostly just slept? |
| 02:48 | sid3k | hmm |
| 02:48 | seancorfield | and then in handle-message issue a stop-bot call if you get a shutdown message? |
| 02:48 | amalloy | seancorfield: that implies that the xmpp library does the insane thing i mentioned earlier, doesn't it? |
| 02:48 | seancorfield | it does seem a bit silly that starting a bot doesn't create a long lived process |
| 02:49 | seancorfield | but i haven't looked at the code or the xmpp library |
| 02:50 | amalloy | seancorfield: i looked at the clj wrapper and it doesn't do anything obviously persistent, just asks the java lib to do stuff |
| 02:51 | seancorfield | yeah, i concur having just read the source |
| 02:54 | seancorfield | the examples i can find all assume a long running java app |
| 02:54 | seancorfield | so, i guess the answer is main must loop / sleep until something tells the bot to shutdown |
| 02:55 | seancorfield | and on that merry note, it's midnight, my wine glass is empty and i'm off to bed! |
| 02:55 | sid3k | it works but still I couldn't understand how it works on the repl |
| 02:55 | seancorfield | well the repl is a long running process so it (the bot) stays running while the repl runs |
| 02:55 | seancorfield | anyways... 'nite |
| 02:56 | amalloy | sid3k: because the repl is still running after you call main, the process doesn't terminate |
| 02:57 | sid3k | then the documentation lacks the example of app usage |
| 02:57 | sid3k | number one reason for abandoning a library |
| 02:58 | amalloy | if that's the best reason you can find to abandon a library, you should mail the author some flowers |
| 03:00 | sid3k | amalloy: hmm |
| 03:00 | sid3k | btw I've found an example, in the src directory |
| 03:03 | seancorfield_ | And yes I have gone to bed but I figured I'd log back in from my phone and see how the XMPP chat is going :) |
| 03:04 | amalloy | hah |
| 03:04 | amalloy | seancorfield_: you need to see someone about your clojure addiction |
| 03:04 | sid3k | :) |
| 03:04 | seancorfield_ | Btw we did not go to production with clojure this week :( |
| 03:04 | seancorfield_ | We found sone bugs in the app that need fixing first |
| 03:05 | amalloy | seancorfield_: just call it a public, opt-out alpha |
| 03:06 | seancorfield_ | But that gave me time to replace our old logging module with log4j, clojure.tools.logging and a custom DB appender written in clojure :) |
| 03:07 | seancorfield_ | If business delay the production launch beyond this week, I'll add in congomongo and start logging to mongodb in the cloud! :) :) |
| 03:09 | seancorfield_ | So when do you move to LA? Where will you be based? |
| 03:10 | amalloy | seancorfield_: next week |
| 03:10 | amalloy | have a one-month rental arranged while i look for something permanent |
| 03:11 | seancorfield_ | Yeah? What part of LA? |
| 03:11 | amalloy | hoping to find a nice place in santa monica, but i'll be looking around |
| 03:11 | amalloy | since the office is in west hollywood |
| 03:12 | seancorfield_ | My wife lived on a houseboat in marina del rey. That's near Santa Monica I think? |
| 03:13 | seancorfield_ | Does the company have any telecommuting employees? What do they actually do? |
| 03:13 | amalloy | www.geni.com |
| 03:13 | amalloy | yeah, marina del rey is nearby |
| 03:14 | seancorfield_ | genealogy ... an interesting area ... all clojure? |
| 03:15 | amalloy | seancorfield_: that's what they're hiring me for. i understand they're porting a lot of ruby to clojure as well as writing some stuff from scratch |
| 03:16 | seancorfield_ | Cool. Sounds like a fun project. Next time my place has a company meeting maybe I'll swing by and see more of what you guys are up to! |
| 03:17 | amalloy | neat |
| 03:17 | seancorfield_ | World Singles is completely distributed but most of the core live in or just south of LA. |
| 03:18 | sid3k | lein is the coolest thing about clojure, except clojure itself |
| 03:19 | amalloy | sid3k: there's also cake |
| 03:19 | seancorfield_ | What IDE do you use sid3k? |
| 03:19 | sid3k | emacs |
| 03:20 | sid3k | I didn't hear cake before, going to check that out |
| 03:20 | amalloy | sid3k: it's similar to lein |
| 03:20 | sid3k | is it as common as lein? it seems many projects support lein |
| 03:20 | seancorfield_ | Hardcore :) I do so much Java-related stuff I live and die in Eclipse with CCW. |
| 03:21 | seancorfield_ | Cake has some neat features but I think lein is way more prevalent. |
| 03:22 | amalloy | sid3k: lein is more popular, largely because it's more established. they're mostly interchangeable, really; they use the same project.clj format but have different plugins |
| 03:23 | sid3k | amalloy: which one do you prefer? |
| 03:23 | amalloy | meh |
| 03:23 | sid3k | both? |
| 03:24 | amalloy | i mostly use lein at the moment, but i have many months of happy cake usage |
| 03:24 | amalloy | and i'm going to work for the cake guys soon |
| 03:24 | sid3k | sounds great |
| 03:25 | amalloy | my understanding is that cake is easier to write plugins for, and has a persistent jvm to reduce startup times for each cake command |
| 03:25 | seancorfield_ | Yeah |
| 03:25 | amalloy | currently i work with long-running apps so i don't need that much, and sometimes it gets annoying to have to keep killing jvm processes, so i use lein |
| 03:26 | seancorfield_ | But lein plugins are really easy to write too and there's a lot more of them |
| 03:27 | seancorfield_ | For persistent JVM stuff, there's also jark |
| 03:27 | amalloy | the clojure web-development libraries are really nice btw, sid3k. i love how easy it is to write some ring middleware |
| 03:29 | seancorfield_ | I'm not convinced they're good for really HTML heavy web apps. They're good enough for rest apis and small sites. |
| 03:30 | seancorfield_ | But maybe I just need to spend more time with enlive (haven't liked what I've seen so far) |
| 03:30 | sid3k | then it's better for me. I generally seperate frontend and serve the html stuff with just a static web server |
| 03:30 | amalloy | seancorfield_: yeah, i haven't really had to write huge html stuff. but coming from a no-frameworks-here php, moving to kinda-small-frameworks clojure still feels nice |
| 03:30 | seancorfield_ | World Singles sites are HTML heavy but very dynamic |
| 03:31 | seancorfield_ | So we use CFML for View-Controller and clojure for Model. Or at least we're going that way |
| 03:36 | seancorfield_ | I've been using web frameworks for nearly a decade in CFML since my time at Macromedia. I've been lead developer on three of the most popular ones (in CFML). |
| 03:37 | seancorfield_ | But I've definitely moved from large to small and I prefer multiple, composable microframeworks these days. |
| 03:37 | amalloy | seancorfield_: yes, ring is a fantastic webserver. i'm not in a position to judge re hiccup, moustache, enlive |
| 03:39 | klang | sorry to inject: isn't ring, hiccup, moustache and enlive supposed to be used in conjunction? (that's the feeling I get when I look at web programming in Clojure every 3 months ..) |
| 03:41 | seancorfield_ | Ring is the foundation. The rest are optional but are often used together I believe. |
| 03:42 | amalloy | klang: ring is the webserver. hiccup and moustache (and enlive, i think?) are libraries for generating html responses to feed to the webserver |
| 03:43 | Raynes | amalloy: Ring isn't the web server. Jetty is the web server. |
| 03:43 | seancorfield_ | Ring and enlive are now part of the new contrib libraries for 1.3.0 |
| 03:44 | seancorfield_ | Raynes, ring has a jetty-adapter, does it have support for tomcat? |
| 03:44 | amalloy | seancorfield_: i think so |
| 03:44 | Raynes | seancorfield_: I find it adorable that you assume I would actually know a lot about Ring just because I knew that one small fact. :) |
| 03:44 | klang | amalloy: yeah, I got that idea, more or less. |
| 03:44 | amalloy | $google clojure ring tomcat |
| 03:44 | sexpbot | First out of 309 results is: Jeroen Vloothuis: Deploying a Clojure web-application as a WAR file |
| 03:44 | sexpbot | http://jeroenvloothuis.blogspot.com/2010/07/deploying-clojure-web-application.html |
| 03:45 | amalloy | Raynes: the fact you know is dubious anyway |
| 03:46 | seancorfield_ | That blog post shows how immature clojure is for webapps right now |
| 03:46 | amalloy | ring is clojure's interface to the webserver. you could as easily say that jetty isn't a webserver either, just an interface to the next-lower layer |
| 03:47 | amalloy | i guess ring is the http server, and jetty is the webserver? that's not totally false |
| 03:47 | amalloy | seancorfield_: it's also a year old |
| 03:47 | seancorfield_ | lein-ring is much cleaner but I worry that ring is tied to jetty? |
| 03:48 | klang | seancorfield_: things move fast (I am starting over on web dev in clojure every time I look at it ..) |
| 03:48 | seancorfield_ | Yeah it can be hard to keep track of it all |
| 03:49 | seancorfield_ | We'll stick with a mix of CFML and clojure for the foreseeable future I expect |
| 03:53 | seancorfield_ | The anti-histamines are kicking in (we spent the afternoon wine tasting and those sulphites have us both congested) so I'm getting dozy. Time to sign off and get some sleep. |
| 04:09 | bpr | l |
| 06:03 | tufflax | Does anyone know how do make vimclojure detect java interop stuff (like .method and Class/thing)? I have the regexps but I can't get it to work. I don't fully understan the syntax file :p |
| 06:51 | kzar | I'm missing something here, any ideas? http://paste.lisp.org/display/122349 |
| 06:54 | raek | kzar: from the docs for case: "The test-constants are not evaluated. They must be compile-time literals, and need not be quoted." |
| 06:55 | raek | so you end up having the _symbol_ com.google.gdata.data.calendar.CalendarEntry as the first test constant |
| 06:58 | kzar | raek: Hmm so com.google.gdata.data.calendar.CalendarEntry in the clause isn't evaluated but is that not already the literal symbol? |
| 06:58 | kzar | raek: The expression's evaluated right? |
| 07:05 | raek | yes |
| 07:07 | raek | erhm. I meant this: a case form looks like this: (case expr constant1 result1 constant2 result2 ...). here, expr is evaluated, but the constants are not |
| 07:07 | raek | kzar: your example fails because symbols and classes are not the same (put they print the same) |
| 07:08 | raek | ,(class 'java.lang.Integer) |
| 07:08 | clojurebot | clojure.lang.Symbol |
| 07:08 | raek | ,(class java.lang.Integer) |
| 07:08 | clojurebot | java.lang.Class |
| 07:08 | raek | a symbol evaluates to a class if it contains dots |
| 07:08 | kzar | raek: Yea it just clicked heh |
| 07:08 | raek | kzar: you can work around it with a macro: https://gist.github.com/997652 |
| 07:13 | raek | updated the gist so that it accepts (case expr (constant11 constant 12) result1 ...) style forms too |
| 07:28 | kzar | raek: Heh it's little things like this that always catch me out, I'm just having a go at doing it myself |
| 07:28 | kzar | raek: Thanks for explaining it |
| 07:45 | kzar | raek: (resolve 'com.google.gdata.data.calendar.CalendarEntry) turns symbol to class, is there a way to do the opposite? |
| 07:45 | kzar | raek: (I figured instead of resolving the conditions I could make the expression a symbol) |
| 07:52 | raek | kzar: yeah, that sounds a lot simpler.. (defn class->symbol [class] (symbol (.getName class))) |
| 07:54 | kzar | raek: Ah nice, I was trying to stop the symbol from being resolved into a class but then I realised the (class) function actually returns the class not a symbol to be resolved |
| 08:57 | bOR_ | is there something obvious I am missing when aset in clojure 1.3-alpha8 won't work for shorts. aset-shorts does work, but way slower than I'd expect. There is also the odd difference in speed between aset ^ints and aset-int of about 15-fold. |
| 08:57 | bOR_ | (doing matrix summation) |
| 08:59 | bOR_ | I've looked at the source of amap (which was the first thing to give me problems with shorts), and from there came to writing the amap function out, and using aset-shorts rather than aset to get shorts working), but I'm stuck at looking at the source of aset |
| 08:59 | bOR_ | which is where my clojure-fu breaks down :-). |
| 09:00 | bOR_ | related (now that I have the floor anyway), should I still be messing with java arrays in clojure 1.3, or would a vector of primitives be as fast? |
| 09:03 | bpr | is there a more concise way to parse and integer than java.lang.Integer/parseInt ? |
| 09:05 | bpr | short of using memfn of course |
| 09:06 | mids | bpr: you could use read-string |
| 09:07 | mids | ,(+ (read-string "3") 2) |
| 09:07 | clojurebot | 5 |
| 09:08 | mids | (it isnt safe though to use on input you dont control) |
| 09:08 | bOR_ | ,(aset (into-array Short/TYPE [1 2 3]) (short 1) (short 1)) |
| 09:08 | clojurebot | java.lang.IllegalArgumentException: argument type mismatch |
| 09:08 | bpr | ah, lol nice |
| 09:08 | bOR_ | hmm. |
| 09:08 | bpr | well, i got the int string from a (re-find #"\s(\d+\)\s" string) so it's sanitised |
| 09:10 | bpr | lol, i put an extra "\" ... too much emacs in my fingers lol |
| 09:17 | mids | bpr: I dont really see what is wrong with (Integer/parseInt s) though. if you use it a low, maybe create a shorthand parse-int function for it? |
| 10:50 | markskilbeck | Hi, all. Has anybody managed to set up penumbra on Windows? |
| 10:51 | markskilbeck | The typical process of "lein deps ... etc" doesn't seem to work for me. |
| 11:15 | Kneferilis | Hello, how fantom compares to clojure? |
| 11:20 | imade | Kneferilis: I just took a quick peak at fantom, seems interesting, definitely a better java, maybe you can tell more what impression you have about it? |
| 11:22 | Kneferilis | imade: I haven't used it yet really. |
| 11:22 | imade | I haven't used clojure for long, maybe a month, so far the things I like: uniform syntax, dynamic typing (talk to the problem not to the compiler), easy to compose functions |
| 11:23 | imade | there's more I guess, just need to discover clojure further |
| 11:26 | Kneferilis | clojure seems a very interesting language really |
| 11:27 | imade | and I would say that easy to get started also, the syntax rules are so simple |
| 11:27 | markskilbeck | imade++ |
| 11:28 | Kneferilis | I just wanted to inlcude clojure in my plaform, but clojure for .net has libraries that conflict with ironpython and ironruby which my platform also supports |
| 11:28 | Kneferilis | http://sourceforge.net/projects/mlip |
| 11:34 | Kneferilis | besides I don't think that ClojureCLR (Clojure for .NET) supports Clojars, Clojure libraries for Java |
| 11:35 | Kneferilis | I tried to include Clojure for Java in my platform, but it would keep trying to emit Java Bytes codes, if it was interpreted I could include it in my platform |
| 11:45 | lnostdal | why is it emitting java byte code a problem? |
| 11:46 | Kneferilis | well, IKVM doesn't seem to accept the java byte code, I have IKVM in a .NET application |
| 11:46 | Kneferilis | IKVM is Java for .NET |
| 12:08 | lnostdal | oh |
| 15:10 | technomancy | I've run Clojure code on IKVM very briefly. seemed to work OK. |
| 15:12 | tufflax | I'm trying to make a chat server but I run it in a future to not block the repl, but something goes bad but I don't see the stack trace. Any ideas of how I can get to see the stack trace while still using a future? |
| 15:17 | tomoj | tufflax: what are you using for the io? |
| 15:17 | tomoj | oh, hmm |
| 15:17 | tufflax | Does it matter? :p |
| 15:19 | tomoj | future seems to save the exception to throw on deref |
| 15:19 | tomoj | if it's thrown by the thread that runs the future body |
| 15:19 | tufflax | oh yes, nice. thank you |
| 15:38 | raek | tufflax: while still using a future, you can either make the future thread catch the exception and then convey it to you somehow, or you can inspect the future object in the repl thread with future-done? (to not block if the thread is working) and deref |
| 15:38 | raek | the first approach could be (try ... (catch Throwable e (.printStackTrace e))), i.e. print the stacktrace to stdout |
| 15:39 | tufflax | ok, thank you |
| 15:39 | raek | to get that behaviour, you can use a bare Thread instread of an ExecutionService (what 'future' uses) |
| 15:41 | raek | future is made for executing tasks in parallel on threads that belong to a thread pool, so that's why the error handling works this way |
| 15:41 | tufflax | I noticed that the deref approach doesn't give me a stack trace, just shows what exception it was |
| 15:42 | raek | tufflax: the original exception is contained in the cause of the exception |
| 15:43 | tufflax | hmm can i get a hold of it somehow? |
| 15:43 | raek | tufflax: what repl are you using and in what IDE? |
| 15:43 | tufflax | vim with vimclojure |
| 15:43 | raek | when I develop in emacs, it shows me the whole stacktrace chain with all causes |
| 15:43 | tufflax | hm |
| 15:44 | raek | tufflax: if you only get the name of the exception, then you probably have the default clojure repl |
| 15:44 | tufflax | ok |
| 15:44 | raek | tufflax: in that case, you print the stacktrace as usual with (.printStackTrace *e) |
| 15:44 | raek | I think that should print the causes too |
| 15:45 | tufflax | oh, yes *e |
| 15:45 | raek | in any case, you can get the caus of an exception by calling .getCause on it |
| 15:45 | tufflax | ok |
| 15:46 | tufflax | hmm, that wasn't very informative... |
| 15:46 | tufflax | getCause that is |
| 15:47 | raek | it will just return another exception object, which you can call .printStackTrace on |
| 15:47 | tufflax | oh |
| 15:48 | raek | iirc, that should have the same effect as calling .printStackTrace on the original object, except that one "Caused by" section will be missing |
| 15:48 | raek | (well, the section before the first "Caused by" line) |
| 15:51 | thorwil | how do i get a <!DOCTYPE html> out of a hiccup defhtml? |
| 15:53 | amalloy | thorwil: (doctype :html5) |
| 15:53 | thorwil | Unable to resolve symbol: doctype in this contex |
| 15:53 | amalloy | it's in page-helpers |
| 15:54 | amalloy | i note with some amusement while looking for this that the hiccup jar includes .form-helpers.clj.swp |
| 15:55 | thorwil | ah, dang! thank you! |
| 16:00 | tufflax | thank you raek, now it's off to #java to ask about using sockets with nio channels and select and all that, apparently i did something wrong :p |
| 16:04 | amalloy | tufflax: ##java |
| 16:05 | tufflax | yes, /j java takes me to the right place, but thanks :) |
| 16:06 | raek | anyone know what the extra # means? |
| 16:06 | bpr | i think the server appends a # when the previous channel gets too full |
| 16:06 | bpr | ... could be wrong (that's from some distant memory) |
| 16:07 | bpr | well, it creates a new channel with a # appended to the name, is what i meant if it wasn't clear |
| 16:07 | bpr | prepended* |
| 16:08 | amalloy | it's to do with how canonical/authoritative the channel owners are re the name. you can find it in the freenode daq |
| 16:11 | amalloy | http://freenode.net/policy.shtml#channelownership |
| 16:14 | amalloy | raek: ^ |
| 16:22 | gfrlog | I can't remember the last time I was glad that (:foo {}) didn't throw an exception |
| 16:22 | gfrlog | usually I end up diagnosing some consequential problem seven functions later |
| 17:32 | TimMc | gfrlog: Yay for nil-propagation... :-/ |
| 17:33 | TimMc | Of course, it's not as bad as languages where what would normally be a NullPointerException comes out as evaluation-to-null. |
| 17:33 | gfrlog | yeah. I'm sure it's consistent with a lot of other functions...it's just what makes dynamic typing and such tiring... |
| 17:33 | gfrlog | what languages are those? |
| 17:37 | kzar | Anyone use couchdb from clojure here? Is clutch any good? |
| 17:37 | gfrlog | kzar: I have used it a small bit. I don't remember having trouble. |
| 17:48 | kzar | thanks I'll give it a shot |
| 19:30 | bpr | I'm tring to play with swank-clj, and when i execute lein swank-clj I get this exception: Exception in thread "main" java.lang.ClassNotFoundException: com.sun.jdi.VirtualMachine (jdi.clj:1) |
| 19:30 | bpr | does anyone know anything about that? |
| 19:32 | bpr | this is the jvm i'm running: https://gist.github.com/998244 |
| 20:29 | bendlas | hi |
| 20:47 | gfrlog | bendlas: hello |