Programming Clojure in the large: libraries, frameworks, oh my

2014-09-19 Thread Dmitry Groshev
Hello, Clojurians! We all know that Clojure is *awesome* in the small — it's a pleasure to develop stuff with it on the level of a function or namespace. However, what still evades me is how to program in Clojure in the large: how to structure, say, web service in general; how should you

Re: Potential Intro clojure projects - libraries and ideas with wow factor

2014-04-18 Thread Dmitry Groshev
In theory, yes. In practice, it will not scale well. Here is why: optimal planning is, in general, a problem with at least exponential complexity. When you have complexity like this, you can choose between two approaches: 1) explore the whole search space, trying very hard to prune and discard

Composability of Clojure in math-heavy hot loops

2014-04-06 Thread Dmitry Groshev
For some time I had a suspicion that in Clojure we have a fundamental problem with efficient math and today I've tried to test it. Let's say we have a pretty simple function: (ns testapp.core (:require [criterium.core :as cr] [primitive-math :as p] [no.disassemble :as nd])) (set!

Re: Composability of Clojure in math-heavy hot loops

2014-04-06 Thread Dmitry Groshev
))) Andy On Sun, Apr 6, 2014 at 9:44 AM, Dmitry Groshev lambda...@gmail.comjavascript: wrote: For some time I had a suspicion that in Clojure we have a fundamental problem with efficient math and today I've tried to test it. Let's say we have a pretty simple function: (ns testapp.core

[GSoC] Proposal, question and possible call for menthor

2014-03-19 Thread Dmitry Groshev
Hello, Clojurians! GSoC application deadline is dangerously close and it's time to fill an application, at last. But here is a problem: I don't know what will be the best for community. I have a few ideas and I will present them here to get some feedback. Sorry for a bit late posting! First:

Re: [ANN] Stasis - not another static site framework

2014-01-23 Thread Dmitry Groshev
And here is a link to the project, just in case you've missed it like I did: https://github.com/magnars/stasis :) On Thursday, January 23, 2014 2:16:48 PM UTC+4, Magnar Sveen wrote: Stasis A Clojure library of tools for developing static web sites.

NPE in print-stack-trace

2013-12-17 Thread Dmitry Groshev
I've managed to get an NPE in print-stack-trace: https://gist.github.com/si14/e8d22913d21933d12ef1 It seems highly counter-intuitive to me that this function can throw NPEs. I thought it's intended to be used in catch clauses; does it mean that I should wrap some catches in their own

Re: Efficiently typing an argument of implementation in deftype

2013-09-24 Thread Dmitry Groshev
:01 PM, Dmitry Groshev lambda...@gmail.comjavascript: wrote: In this mail I'm talking about Clojure 1.4, however, I believe that the issue persists in later versions, too. I have quite a lot of code of the following form: (defprotocol sum-proto (sum [x y])) (deftype Pair [^long

Re: [ANN] clara-rules 0.1.0 released -- rules as a control structure

2013-09-24 Thread Dmitry Groshev
I'm curious how this relates to core.logic. If I understand correctly, Clara can be compiled to core.logic and utilize it's search, doesn't it? On Tuesday, September 24, 2013 6:16:12 AM UTC+4, Ryan Brush wrote: This is the first release of Clara, forward-chaining rules in Clojure. Details

Re: [ANN] clara-rules 0.1.0 released -- rules as a control structure

2013-09-24 Thread Dmitry Groshev
, or wiring them together. The engine then runs the rules against a set of input and ensures the working memory reaches a consistent state. I wrote about this in more depth here: https://github.com/rbrush/clara-rules/wiki/Introduction On Tuesday, September 24, 2013 5:41:01 AM UTC-5, Dmitry Groshev

GSoC Report: NDArray for core.matrix

2013-09-23 Thread Dmitry Groshev
Today Google Summer of Code finally ends. NDArray is pretty stable now and will be the default implementation used by core.matrix in the upcoming release. It was an epic journey through bugs, unexpected slowness and weird macros, but now I can proudly state that in some cases NDArray can be

Efficiently typing an argument of implementation in deftype

2013-09-20 Thread Dmitry Groshev
In this mail I'm talking about Clojure 1.4, however, I believe that the issue persists in later versions, too. I have quite a lot of code of the following form: (defprotocol sum-proto (sum [x y])) (deftype Pair [^long a ^long b] sum-proto (sum [x y] (let [^Pair y y

[GSoC] Some subtle details of type-hinted macro expansion in Clojure

2013-09-20 Thread Dmitry Groshev
I've summarized a couple of things that wasn't obvious to me when I started to work on core.matrix's macroses. Comments are appreciated: http://si14.livejournal.com/51576.html -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group,

Re: [ANN] CloCoP - constraint programming for Clojure

2013-09-13 Thread Dmitry Groshev
Great stuff! I'm wondering what's the realworld difference between JaCoP and CHOCO. Why did you choose the former? On Tuesday, September 10, 2013 5:39:46 AM UTC+4, Alex Engelberg wrote: http://github.com/aengelberg/clocop CloCoP is a Clojure wrapper of the Java library JaCoP. The acronyms

[GSoC] core.matrix NDArray: after the first half

2013-08-01 Thread Dmitry Groshev
So it's the mid-point of GSoC and a good time to review what's already done and what is yet to be done. The main focus of first half of the summer was making NDArray work. NDArray is a new implementation of core.matrix protocols, intended to become the default one. It's implemented in pure

Casting to Object[]

2013-07-02 Thread Dmitry Groshev
Hello all. I have a following deftype: (deftype NDArray [^objects data ^long ndims ^longs shape ^longs strides]) ( https://github.com/si14/matrix-api/blob/70b376f58ec3846df6622b971001c3ade32d0725/src/main/clojure/clojure/core/matrix/impl/ndarray.clj#L30 ) Then, when I use

Re: Clojure generates unnecessary and slow type-checks

2013-07-02 Thread Dmitry Groshev
Jason, can you please help me with this: I'm not sure if the protocol-based implementation can give users any help writing new core operations efficiently (say, making a new array with c[i] = a[i] + b[i]^2 / 2) -- unless there's some clever way of combining protocols with macros (hmmm).

Re: Casting to Object[]

2013-07-02 Thread Dmitry Groshev
July 2013 15:41:02 UTC+1, Dmitry Groshev wrote: Hello all. I have a following deftype: (deftype NDArray [^objects data ^long ndims ^longs shape ^longs strides]) (https://github.com/si14/**matrix-api/blob/** 70b376f58ec3846df6622b971001c3**ade32d0725/src/main/clojure

[GSoC] NDArray project: week 0 report

2013-06-16 Thread Dmitry Groshev
This message is a copy of a blog post [1]. All my GSoC posts will be available under tag gsoc [2]. As I've announced in my Twitter some time ago, I was selected to participate in Google Summer of Code of this year. My particular assignment will be to implement N-Dimensional array in Clojure so

Re: [GSoC] core.matrix NDArray project feature requests

2013-05-30 Thread Dmitry Groshev
Thank you. I've found it yesterday, too; just in time :) On Wednesday, May 29, 2013 7:42:58 AM UTC+4, Ben Mabey wrote: On Tue May 28 02:40:33 2013, Dmitry Groshev wrote: Sorry, I wasn't clear enough in my proposal. I've mentioned clojurecheck [1] in it and the possibility of extending

[GSoC] core.matrix NDArray project feature requests

2013-05-28 Thread Dmitry Groshev
Hello, Clojurians. I was selected during GSoC process to implement a core.matrix-compatible NDArray in Clojure. More info about this project can be found at [1] and [2]. However, I would be really happy to know if there are any comments, wishes or feature requests regarding that proposals

Re: [GSoC] core.matrix NDArray project feature requests

2013-05-28 Thread Dmitry Groshev
mention of QuickCheck, I couldn't find it in the proposal. Thanks, Ambrose On Tue, May 28, 2013 at 4:25 PM, Dmitry Groshev lambda...@gmail.comjavascript: wrote: Hello, Clojurians. I was selected during GSoC process to implement a core.matrix-compatible NDArray in Clojure. More info about

Re: ANN: kits 1.5.1 - some of Runa's core utilities

2013-05-12 Thread Dmitry Groshev
One more (kinda obvious): https://github.com/Prismatic/plumbing On Friday, May 10, 2013 6:26:42 PM UTC+4, John Hume wrote: On Thu, May 9, 2013 at 7:15 PM, Dave Sann dave...@gmail.com javascript: wrote: There are several projects that provide a bunch of base level/common functions and

Re: Now *there*'s a machine made for Clojure.

2013-04-29 Thread Dmitry Groshev
An Erlang fanboy here. There is very prevalent opinion that Erlang is about multicore and scalability and such. The truth is that it's completely wrong. Erlang wasn't even multithreaded until early 2000s (if I recall correctly); all it's green threads and message passing and such are designed

Re: GSOC 2013 projects?

2013-01-31 Thread Dmitry Groshev
I would really like to try to participate this year too. I was thinking about porting ClojureScript to ErlangVM (BEAM); not in fully compatible with standard JS-CLJS way, I think, but at least as an alternative language for BEAM. There is a clear lack of decent language for hard problems now

Re: Clojure web server benchmarks

2013-01-25 Thread Dmitry Groshev
It would be *really* nice to see latencies as well. Some webservers trade latency to throughput, and there is no point in throughput if your service is hardly usable due to 100ms+ responses. On Wednesday, January 16, 2013 10:56:23 AM UTC+4, Peter Taoussanis wrote: This is very interesting.

Re: Docs on standard protocols

2012-12-06 Thread Dmitry Groshev
, Dmitry Groshev lambdadmi...@gmail.com wrote: Is there any reference of standard protocols in which one can participate? When working with Java code and building bindings to complex Java classes, it's sometimes handy to define instances of Seq (for example) for them. But it's horribly

Docs on standard protocols

2012-11-26 Thread Dmitry Groshev
Is there any reference of standard protocols in which one can participate? When working with Java code and building bindings to complex Java classes, it's sometimes handy to define instances of Seq (for example) for them. But it's horribly troublesome to look up protocols in source code every

Re: New release of Domina (now with reworked eventing)

2012-05-22 Thread Dmitry Groshev
cljsbuild still screams on me when building Domina with the latest Clojurescript and cljsbuild. WARNING: Use of undeclared Var domina/.DomContent at line 459 /home/si14/repos/domina/src/cljs/domina.cljs WARNING: Use of undeclared Var domina/.nodes at line 459