[ClojureScript] ANN: remote - DSL for clj-http/cljs-http

2015-06-26 Thread Joel Holdbrooks
Are you tired of writing the same clj-http/cljs-https boilerplate? Looking for 
an easy way to express an endpoint or a service API? Then remote is the 
library for you!

Github: https://github.com/outpace/remote
Leiningen: [com.outpace/remote 0.3.1]

This library has been closed source up until now and by popular demand has been 
made available to the public. On behalf of the Outpace staff and myself we hope 
you or your team find this library useful.

Thanks!

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN phalanges 0.1.5

2015-03-02 Thread Joel Holdbrooks
Phalanges, library for working with JavaScript keyboard events is now 0.1.5. 
This release fixes a small problem under advanced mode compilation.

https://github.com/spellhouse/phalanges

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: [ANN] clairvoyant 0.0-43-ga703f4e

2014-11-20 Thread Joel Holdbrooks
On Monday, November 10, 2014 5:43:50 AM UTC-8, Yehonathan Sharvit wrote:
 Clairvoyant is really great Joel!
 I'd like to use the trace-forms inside my project. 
 
 My thought is to have a macro named: dbgfn that will replace defn in the 
 places where I need to investigate my function calls.
 
 Like this:
 
 (defmacro dbgfn[ args]
   `(trace-forms {:tracer clairvoyant.core/default-tracer}
 (defn ~@args)))
 
 
 and then:
 (dbgfn foo [a b] 
 (+ a b))
 
 
 But I am not able to write correctly my dbgfn macro.
 At run-time, I get the following error:
 ReferenceError: clairvoyant is not defined 
 
 I found a workaround by adding to to each namespace that uses dbgfn the 
 following:
 (:require  [clairvoyant.core :as trace :include-macros true])
 But it is not convenient.
  
 
 Could you help, please?
 
 On Thursday, 23 October 2014 18:37:27 UTC+3, Joel Holdbrooks  wrote:
  On Wednesday, October 22, 2014 10:15:13 PM UTC-7, Joel Holdbrooks wrote:
   Clairvoyant, a flexible tracing library for ClojureScript is now version 
   0.0-43-ga703f4e. Included in this release:
   
   * Fixed bug which caused anonymous functions to thrown an exception
   * Fixed bug with IPrintWithWriter protocol causing maximum call stack 
   exceeded exceptions
   * Improved display of exit values and function values (you only see the 
   noise when you want to)
   * Basic tracing for deftype and defrecord
   * trace-forms can be called without the options map
   
   I hope these features improve your debugging experience.
   
   Leiningen dependency: [spellhouse/clairvoyant 0.0-43-ga703f4e]
   
   Project homepage: https://github.com/spellhouse/clairvoyant
  
  Just noticed there were a few problems with the last release. Please use: 
  [spellhouse/clairvoyant 0.0-46-g876ac46] instead. Sorry!

My apologies for the late reply. Here's the code:

;; trace.clj

(ns foo.trace
  (:require [clairvoyant.core]))

(defmacro defntraced [ defn-body]
  `(clairvoyant.core/trace-forms
(defn ~@defn-body)))


;; trace.cljs

(ns foo.trace
  (:require-macros
   (foo.trace :refer [defntraced])))

(defntraced foo [x y]
  (+ x y))


;; foo.cljs

(ns foo
  (:require
   (foo.trace :include-macros true
  :refer-macros [defntraced])))

(defntraced foo [x y]
  (+ x y))


Here's a gist for reference: 
https://gist.github.com/noprompt/7894676fdf6218dd806c

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: (def foo 1) (set! foo 2) ;; this works on ClojureScript?

2014-10-25 Thread Joel Holdbrooks
On Saturday, October 25, 2014 2:46:20 PM UTC-7, Marcus Lewis wrote:
 So... I've been using Clojure wrong, because I primarily use ClojureScript.
 
 Clojure
 my.clj.ns= (def foo 1)
 #'my.clj.ns/foo
 my.clj.ns= (set! foo 2)
 IllegalStateException Can't change/establish root binding of: foo with set  
 clojure.lang.Var.set (Var.java:221)
 
  ClojureScript
 my.cljs.ns= (def foo 1)
 1
 my.cljs.ns= (set! foo 2)
 2
 
 
 I'm somewhat of a beginner, and I've always been confused by the need for 
 vars *and* atoms. Now it's clear -- I've been misusing vars, via def and set!.
 
 
 Thoughts? Sorry if I'm overlooking old mail threads on this topic.
 
 
 Could the compiler throw an error when you try to set! a var that's in a cljs 
 namespace?

The best the ClojureScript analyzer could do in this case would be to issue a 
warning, however, I suspect this would add a fair bit overhead since it would 
require checking every call to set!.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: Newbie advice on cljs + om?

2014-10-24 Thread Joel Holdbrooks
On Sunday, October 19, 2014 12:29:01 PM UTC-7, Colin Yates wrote:
 Any advice for a newbie about to embark on a new non-trivial SPA using cljs, 
 om and (om-)bootstrap. 
 
 I am not a newbie in terms of CSS, JS (coffeescript for the win!) or Clojure 
 (despite the evidence :)).
 
 The app itself will live on an internal LAN with a small number of clients, 
 heavyish logic but low load. It will be heavily influenced by CQRS and event 
 sourcing, with the server transmitting domain events since you last checked 
 in to the client.
 
 In particular, what do you wish you had done differently, specifically in 
 regard to:
  - using JS from cljs (which unfortunately still makes my eyes bleed :))
  - integrating 3rd party components (e.g. jquery ui) with om
  - unit testing (previously used midge work but I think I will stick with 
 core.test with the humane plugin)
  - cross browser javascript (I assume the google closure library helps here)
  - hooking up a browser to the REPL (IE8 unfortunately!)
  - web sockets/polling (again IE8)
 
 I am close to finalising on (but counter-arguments welcome!):
  - Cursive clojure (falling back to emacs if necessary - so far it isn't)
  - lein-cljsbuild
  - garden for CSS (but happy to hear stories around asset management)
  - core.typed
  - core.test or midje
  - transmit for encoding data
 
 (I have had a look at luminus and it seems great. However, I get om 
 architecturally more than reagent and I have already settled on a number of 
 other libraries. I have also looked at pedestal but it needs to be deployed 
 on Windows which they don't support.)
 
 Anything you wish somebody had told you before you started?
 
 Thanks a bunch!

Regarding Garden, what are your concerns around asset management? Garden 
supports :preamble much like ClojureScript so you're able to include other flat 
CSS files and has built-in minification. There are several other nice features 
such as automatic prefixing as well. 

I won't deny that Sass has much better library support than Garden (because 
virtually no one is sharing them) but on the flip-side you're exchanging, as I 
mention in the README, a _preprocessor_ for a _programming language_. Although 
Garden is still young it's extraordinarily powerful but if you're not a serious 
CSS author this power may not be useful to you. Garden is also capable of being 
used both from Clojure and ClojureScript which can be a nice to have.

We use Garden in production at Outpace and Prismatic also uses it for their 
stylesheets as well.

Anyway, this is just my opinion.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: Newbie advice on cljs + om?

2014-10-24 Thread Joel Holdbrooks
On Sunday, October 19, 2014 12:29:01 PM UTC-7, Colin Yates wrote:
 Any advice for a newbie about to embark on a new non-trivial SPA using cljs, 
 om and (om-)bootstrap. 
 
 I am not a newbie in terms of CSS, JS (coffeescript for the win!) or Clojure 
 (despite the evidence :)).
 
 The app itself will live on an internal LAN with a small number of clients, 
 heavyish logic but low load. It will be heavily influenced by CQRS and event 
 sourcing, with the server transmitting domain events since you last checked 
 in to the client.
 
 In particular, what do you wish you had done differently, specifically in 
 regard to:
  - using JS from cljs (which unfortunately still makes my eyes bleed :))
  - integrating 3rd party components (e.g. jquery ui) with om
  - unit testing (previously used midge work but I think I will stick with 
 core.test with the humane plugin)
  - cross browser javascript (I assume the google closure library helps here)
  - hooking up a browser to the REPL (IE8 unfortunately!)
  - web sockets/polling (again IE8)
 
 I am close to finalising on (but counter-arguments welcome!):
  - Cursive clojure (falling back to emacs if necessary - so far it isn't)
  - lein-cljsbuild
  - garden for CSS (but happy to hear stories around asset management)
  - core.typed
  - core.test or midje
  - transmit for encoding data
 
 (I have had a look at luminus and it seems great. However, I get om 
 architecturally more than reagent and I have already settled on a number of 
 other libraries. I have also looked at pedestal but it needs to be deployed 
 on Windows which they don't support.)
 
 Anything you wish somebody had told you before you started?
 
 Thanks a bunch!

One more thing regarding library support in Sass. Many of the frameworks you'll 
find out there which give you a responsive grid, button helpers, etc. are 
trivial to implement in Clojure. Many times it's just simple arithmetic or map 
manipulation. Some frameworks like Compass have no answer but unless you need 
that level of sophistication (many times you don't) you should be fine.

Here is a responsive grid system and modular scale: 
https://github.com/noprompt/noprompt.github.io/blob/master/clojure/blog/src/blog/util.clj

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Re: Newbie advice on cljs + om?

2014-10-24 Thread Joel Holdbrooks
On Friday, October 24, 2014 3:56:58 PM UTC-7, Kyle Cordes wrote:
 On Friday, October 24, 2014 at 3:32 PM, Joel Holdbrooks wrote:
  One more thing regarding library support in Sass. Many of the frameworks 
  you'll find out there which give you a responsive grid, button helpers, 
  etc. are trivial to implement in Clojure. Many times it's just simple 
  arithmetic or map manipulation. Some frameworks like 
  
 
 It seems pretty slick to use one strong programming language (Clojure) rather 
 than a collection of ad hoc programming languages. I wonder if it is feasible 
 to convert Sass code to Clojure code that uses Garden to emit CSS - rather 
 than starting from scratch, this would make it possible to pick up an 
 already-polished Sass-CSS starting point then run with it leaving Sass behind.
 
 
 -- 
 Kyle Cordes
 http://kylecordes.com

Well said. There has been some initial work on trying to extract the good parts 
of something like Compass or other Sass libraries but nothing has surfaced yet. 
On my behalf, this has been more an issue of time and where my energies are 
currently focused. My hope is that fairly soon I should be able to dedicate 
more energy into improving Garden across the board so that it is a stronger 
candidate when folks have to make these sorts of decisions.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Extending a clojurescript protocol inside a macro

2014-10-24 Thread Joel Holdbrooks
On Saturday, October 18, 2014 7:37:54 PM UTC-7, Dom Kiva-Meyer wrote:
 You are resolving the protocol method symbol.
 
 `(-invoke ...) expands to (your.namespace/-invoke ...)
 
 
 To fix this, you need to quote (not syntax-quote) and unquote the symbol.
 `(~'-invoke ...) expands to (-invoke ...)
 
 
 Make liberal use of clojure.core/macroexpand, clojure.core/macroexpand-1, and 
 clojure.walk/macroexpand-all when writing macros.
 
 
 
 
 On Sat, Oct 18, 2014 at 4:58 PM, Russell Dunphy rus...@russelldunphy.com 
 wrote:
 I'm having real difficulty trying to write a macro that creates a defrecord 
 which implements certain protocols in Clojurescript.
 
 
 
 I've created a minimal example project that shows the problem I'm having at 
 https://github.com/rsslldnphy/cljs-protocols-in-macros
 
 
 
 The example has two records, one created with a plain defrecord that 
 implements IFn, the other that does exactly the same but in a macro. The 
 plain defrecord works as expected, but the one created in a macro doesn't - 
 it's not callable as a function.
 
 
 
 Weirdly it returns true for (ifn?) however. Looking at the js console 
 (screenshot in the repository) the macro created record seems to have a value 
 of `true` in its __proto__ map for cljs.core.IFn (whereas all the other 
 entries in the __proto__ map are functions, and the plain defrecord has 
 function entries for the different arities of `invoke`).
 
 
 
 I'm lost at this point (and new to Clojurescript). Am I doing something 
 wrong? Is this even possible?
 
 
 
 Thanks,
 
 
 
 Russell
 
 
 
 --
 
 Note that posts from new members are moderated - please be patient with your 
 first post.
 
 ---
 
 You received this message because you are subscribed to the Google Groups 
 ClojureScript group.
 
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojurescrip...@googlegroups.com.
 
 To post to this group, send email to clojur...@googlegroups.com.
 
 Visit this group at http://groups.google.com/group/clojurescript.

Be aware that if you rely on clojure.core/macroexpand-1, etc. you may run into 
issues with certain forms. To be on the safe side I recommend keeping 
cljs.analyzer/macroexpand-1 in mind too as it will give you the ClojureScript 
expansion which, in some cases, is different.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: [ANN] clairvoyant 0.0-43-ga703f4e

2014-10-23 Thread Joel Holdbrooks
On Wednesday, October 22, 2014 10:15:13 PM UTC-7, Joel Holdbrooks wrote:
 Clairvoyant, a flexible tracing library for ClojureScript is now version 
 0.0-43-ga703f4e. Included in this release:
 
 * Fixed bug which caused anonymous functions to thrown an exception
 * Fixed bug with IPrintWithWriter protocol causing maximum call stack 
 exceeded exceptions
 * Improved display of exit values and function values (you only see the 
 noise when you want to)
 * Basic tracing for deftype and defrecord
 * trace-forms can be called without the options map
 
 I hope these features improve your debugging experience.
 
 Leiningen dependency: [spellhouse/clairvoyant 0.0-43-ga703f4e]
 
 Project homepage: https://github.com/spellhouse/clairvoyant

Just noticed there were a few problems with the last release. Please use: 
[spellhouse/clairvoyant 0.0-46-g876ac46] instead. Sorry!

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] [ANN] Phalanges 0.1.4 (Keyboard Events)

2014-09-23 Thread Joel Holdbrooks
Phalanges, a library providing utilities for working with JavaScript 
KeyboardEvents, is now version 0.1.4.

Leiningen dependency:  [spellhouse/phalanges 0.1.4]
Project URL: https://github.com/spellhouse/phalanges

I forgot to mention this library earlier (sorry!). The library is fairly small 
and well documented forgive the slim README.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] FYI Secretary 2.0.0 coming soon

2014-09-22 Thread Joel Holdbrooks
Secretary v2.0.0 is in the works. I felt like it would be a good idea to notify 
the community that it's underway. Please have a look at this pull request: 

  https://github.com/gf3/secretary/pull/50 

for more information.

tl;dr several breaking changes are on the horizon. This is mostly a result of 
moving in the direction of immutability as was requested by several people and 
pointed out as a flaw in the design. We apologize for it taking so long to 
address but we're busy people. :-)

Comments and suggestions are welcome.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: accessing cljs code from inside a macro

2014-09-05 Thread Joel Holdbrooks
On Sunday, August 31, 2014 7:47:29 AM UTC-7, Yehonathan Sharvit wrote:
 I am trying to write a macro that calls cljs code.
 How can I use the ClojureScript analyzer to  resolve ClojureScript symbols 
 from Clojure?
 
 
 
 
 For example I have:
 
 
 a cljs namespace 
 
 (ns user.my-cljs)
 
 
 (defn foo [] 4)
 
 a clj namespace
 
 (ns my-macros)
 
 (defmacro my-macro [] my-cljs/foo)
 
 
 
 What is the best way to access my-cljs/foo from inside the macro?
 
 
 
 On Saturday, 30 August 2014 20:33:50 UTC+3, Joel Holdbrooks  wrote:
  On Monday, August 25, 2014 1:15:51 PM UTC-7, Yehonathan Sharvit wrote:
   I would like to write  a macro that calls a cljs function.
   The problem is that the macro is defined inside a clj file and when I 
   require the namespace that contains the cljs code I receive the following 
   compilation error:
   
   
   
   
   Caused by: java.io.FileNotFoundException: Could not locate 
   user__init.class or user.clj on classpath:
   
   
   This is my code snippet:
   
   
   (ns cljs_explore.macros
 (:require  [user :as user]))
  
  Can you be a little more clear as to what you are doing? If you are 
  literally trying to call a ClojureScript function from Clojure, it will not 
  work. However, it is possible to resolve ClojureScript symbols from Clojure 
  for the purposes of macro code generation but you'll need to use the 
  ClojureScript analyzer to do this.

What do you mean by access? Do you mean the actual source code for the symbol?

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: accessing cljs code from inside a macro

2014-08-30 Thread Joel Holdbrooks
On Monday, August 25, 2014 1:15:51 PM UTC-7, Yehonathan Sharvit wrote:
 I would like to write  a macro that calls a cljs function.
 The problem is that the macro is defined inside a clj file and when I require 
 the namespace that contains the cljs code I receive the following compilation 
 error:
 
 
 
 
 Caused by: java.io.FileNotFoundException: Could not locate user__init.class 
 or user.clj on classpath:
 
 
 This is my code snippet:
 
 
 (ns cljs_explore.macros
   (:require  [user :as user]))

Can you be a little more clear as to what you are doing? If you are literally 
trying to call a ClojureScript function from Clojure, it will not work. 
However, it is possible to resolve ClojureScript symbols from Clojure for the 
purposes of macro code generation but you'll need to use the ClojureScript 
analyzer to do this.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: Om/Ankha and defrecord problem

2014-08-27 Thread Joel Holdbrooks
On Friday, August 22, 2014 7:03:08 PM UTC-7, Taylor Sando wrote:
 I looked through the source code of om and found out that there is a call to 
 to-cursor in om/root.
 
 Seems that you have to override IToCursor if you want something custom.
 
 (defrecord RecordTest [x y]
   om/IToCursor
   (-to-cursor [value state path]
 value))
 
 For my purposes, this is fine.  The defrecord type, as it relates to my tree 
 state, is a leaf, so nothing really needs to look into it.

Hi Taylor. I'm sorry I missed this post, I haven't looked at the ML for a 
little while. There is an open issue regarding this problem but I haven't made 
the time to look into a solution for it. This bit of information might be 
useful on that issue (https://github.com/noprompt/ankha/issues/13) and perhaps 
the README.

If you have the cycles to submit a patch, README or otherwise, send it my way. 
:-)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: [ANN] Silk, an isomorphic routing library for Clojure and ClojureScript

2014-08-07 Thread Joel Holdbrooks
I'm in agreement that Silk is a step in the right direction. I've reached out 
to Dom and I think we can learn a lot from each other and work together to 
improve the routing story in Clojure overall.

 There are some really good things in secretary. What do you think about them? 
 Splat, regex, format matchers. 
 protocol based render function for multiple arity unmatching. this is 
 really great. 

These are definitely nice things and I'm willing to bet Silk would be capable 
of supporting some of them.

It's obvious to me to that if we can iron out the details with Silk, Secretary 
could built on top of it as a higher level interface while at the same time 
taking advantage of what Silk has to offer. It might mean some breaking changes 
in Secretary but those were already slated anyway.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: [ANN] Silk, an isomorphic routing library for Clojure and ClojureScript

2014-08-06 Thread Joel Holdbrooks
 Bidirectional routes are indeed especially important to render and dispatch 
 routes in Om etc. In secretary its a bit awkward since you have to write 
 stuff like (defroute front-page / [] :front-page) and then a separate 
 thingie for matching the keywords back to the routes.

We have written several Om applications at work and this style of routing has 
never been a source of problems. The `defroute` macros does , perhaps 
unfortunately, provide the dual concern of adding a route to the global routes 
(which we plan to remove) and, optionally, giving you a route generator 
function if you name it (which we'll probably keep). We added this additional 
option because we felt that these two concerns came up frequently enough in the 
same context that it should just be convenient to do them at the same time. 
That is to say, every time we created a route we would have a function for 
generating a url to go with it.

 On the other hand secretary will probably serve non-React apps well with its 
 dispatch actions when you dont have React lifecycle methods.

I think this observation is a bit misguided. We have actually found Secretary 
to be solid in practice and that it works *very* well with Om and React. If you 
interpret route changes as a top level state transition this becomes easy to 
recognize.

Each of our routing functions returns all of the data necessary to transition 
the app to the next state such as route parameters, view name, etc. Since 
secretary/dispatch! returns the result of the routing function, we can pass 
that data to a transition function which handles the actual mutation of the 
global application state. Each view name is mapped to a component which then 
receives the application state, so and so forth. This allows us to treat each 
of our main views as if they were pages (except much better, of course).

This actually fits in with the lifecycle perfectly because the 
mounting/unmounting for a view component can be thought of as visiting and 
leaving a page. It works out nicely for situations like route and query 
parameter changes.

tl;dr an Om and Secretary combination does work. In fact, our routes.cljs 
(where we defroute) and history.cljs (where we dispatch!) are files we rarely 
edit because this design works without much fuss. To recap the pattern for this 
looks like:

(Google History) hash change token → dispatch! → data → transition! (Om)

In conclusion, I would argue that the choices you make about how you manipulate 
your application state will have more consequences than the routing library you 
choose.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: [ANN] Silk, an isomorphic routing library for Clojure and ClojureScript

2014-08-05 Thread Joel Holdbrooks
Awesome work. It's fantastic to see a library that's interested in targeting 
both the front-end and the back-end. This is the type of attitude I would love 
to see more often in the Clojure community.

OTOH, it would have been awesome to have heard your thoughts WRT the concept of 
isomorphic routing on the Secretary issue tracker.

You said you couldn't find something suitable, why didn't you complain or 
suggest a patch? We would have been happy to have supported your endeavor in 
making that possible and your ideas. In fact, we would have been willing to 
make breaking changes for them! 

Many of us want this!

Originally, several people - myself included - were interested in seeing Clout 
be the library that everyone used both on the client and on the server. 
Unfortunately, James never merged the pull requests (two of them) for 
ClojureScript support. AFAICT it was because he wasn't clear on the role it 
would serve. James is also a busy man. :-)

I'm not trying to call you out; the work you have done is fantastic (there's 
already a few things I'd like to steal!). Rather, I am trying to bring up a 
more important issue within our community WRT this topic: routing. We now have 
at least 4 libraries designed for this task (most of them targeting the server).

We should not burden the community with dozens of choices. Instead we should 
enrich the community by working together to improve it. Fewer, well designed 
choices surely outweigh many okay solutions.

So enough talk. Personally, I would love to work together on the issue of an 
isomorphic router. Secretary is a well known choice for the client and I think 
together we could make it better by supporting the server. We have three core 
team members on Secretary, and speaking for the team, I think we would love to 
bring an end to this saturation of routers in the ClojureScript world. Would 
you be interested in joining our team and help us work toward this goal?

I don't mean to put you on the spot publicly but this is, partly, a public NIH 
issue and a tweet won't hold this. 

Email me privately if you desire. :-)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] [ANN] Secretary 1.2.0

2014-06-27 Thread Joel Holdbrooks
Secretary, the client-side router for ClojureScript, is now version 1.2.0

FIXED - bug with empty route triggering a match on first available route (GH 
33, 39)
ADDED - vector routes with regex validation (GH 37)

Thanks to Travis Vachon and Joel Friedman for their work on these.

https://github.com/gf3/secretary

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: templating for clojurescript react libraries

2014-06-25 Thread Joel Holdbrooks
+1 Designers aren't stupid. I'd throw in Sass, Less, etc. into the pile of 
evidence to support this as well. Stop treating these people as idiots. 

BTW I *used* to be a designer.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ClojureScript with om on IE8 and IE9

2014-06-24 Thread Joel Holdbrooks
On Wednesday, June 11, 2014 4:23:30 PM UTC-7, tal giat wrote:
 Can't seem to get those working with IE8/IE9.
 
 I've created a project on github to demonstrate that: 
 https://github.com/talgiat/om-tutorial which is basically the very first 
 example (Hello world) in the om tutorial. 
 This version displays Hello world! in a web-page. 
 It doesn't work in IE8 or IE9 even after adding the react IE shims 
 (http://facebook.github.io/react/docs/working-with-the-browser.html#browser-support-and-polyfills)
 React itself DOES work on IE8 with those shims, as we have a production 
 system that we wrote that uses it and works fine on all IE versions 8 and up. 
 IE8 complains about goog.string.hashCode not existing. With more complex 
 examples I've seen it complain about other methods in goog.string like 
 contains.
 
 Not sure what causes the problem, but wanted to know did anyone encountered 
 it before and what are possible solutions.
 
 We just started using clojurescript and Om for a major b2b web-based product 
 we have here, unfortunately we must support IE8 and up since we have major 
 customers using it. I'd really hate to revert back to JavaScript. 
 
 Thanks

Are you including all of the necessary shims and shams Facebook recommends to 
get IE8 support? We've written two non-trivial Om applications that *must* 
support IE8 and have done so with great success.

One thing you definitely need to be aware of WRT IE8 is not exceeding the 
number of instructions limit AKA Slow Script alert (which is easy to do with 
ClojureScript). Make sure you test the application in IE8 heavily. My 
recommendation is to use a VM or have a dedicated machine which you can use to 
test the application. If your application is sufficiently complicated you 
*will* run in to this and your users *will* too.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: Om: Using a zipper cursor

2014-06-24 Thread Joel Holdbrooks
On Saturday, May 24, 2014 1:21:48 PM UTC-7, Scott Thompson wrote:
 The problem I've been thinking about is that Om manages a path in a vector 
 format for use with functions like get-in whereas zippers use a location to 
 represent a path. So its not yet clear to me if that will translate well into 
 Om. Additionally, zippers allow easy traversal of a tree which might go 
 against some of Om's data flow. Unless you rely on the root component to 
 manage movement and edits across the entire state (which seems to defeat the 
 purpose of modularity).

Just an update here. One thing I've had some luck with, to avoid writing a 
ZipperCursor, is to compose a zipper function from an `om/path` operate on the 
atom's data directly, typically using `reset!`. So, for example, say you have 
something that works with zip/xml-zip ie. {:content [{:content []}]} and you 
have an `om/path` such as [:content 2 :content 0], you can easily compose a 
function which will get you to that loc in the tree to make your edits.

Here's a gist: https://gist.github.com/noprompt/6aa96a10f430a0f48de3

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] [ANN] Ankha 1.0.3

2014-05-27 Thread Joel Holdbrooks
Ankha, a generic data inspection component for Om, is version 1.0.3.

ADDED: New ankha.core/IInspect protocol.

https://github.com/noprompt/ankha

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Foolproof Emacs + Browser Repl instructions?

2014-05-27 Thread Joel Holdbrooks
On Tuesday, May 20, 2014 3:41:31 PM UTC-7, Daniel Kersten wrote:
 I've personally found weasel to be slightly faster to eval code with and also 
 less brittle overall. It was also slightly easier to set up than austin. 
 Basically, while my experience with austin was alright, my weasel experience 
 has been great. (in the sense that I forget its there - because its not 
 causing any issues :D)
 
 
 
 
 
 On 20 May 2014 23:30, Jamie Orchard-Hays jami...@gmail.com wrote:
 
 
 
 I'll have a look at weasel. Thanks for the responses.
 
 
 Cheers,
 
 
 Jamie
 
 
 
 
 
 On May 20, 2014, at 4:53 PM, Gary Trakhman gary.t...@gmail.com wrote:
 
 
 
 Ah, yes! Weasel is great, I use it for node-webkit.
 
 
 The key thing is piggieback, which both both Weasel and Austin manage.
 
 
 
 
 
 
 On Tue, May 20, 2014 at 4:48 PM, Achint Sandhu achint...@gmail.com wrote:
 
 
 
 I'll add that the emacs side of the solution is available at:
 
 https://github.com/sandhu/emacs.d/blob/master/config/clojure-setup.el
 
 https://github.com/sandhu/emacs.d/blob/master/profiles.clj
 
 
 
 Cheers,
 
 Achint
 
 
 
 
 
 On May 20, 2014, at 16:41 , Achint Sandhu achint...@gmail.com wrote:
 
 
 
  Hi,
 
 
 
        I've had great luck with Weasel and have created a lein template that 
  creates projects with the proper stuff.
 
 
 
        You can find it at: https://github.com/sandhu/om-weasel
 
 
 
        Hope it helps. Feedback welcome.
 
 
 
        If you'd prefer to use an austin based repl, I'd highly recommend 
  om-start (https://github.com/magomimmo/om-start-template).
 
 
 
 
 
 
  Cheers,
 
  Achint
 
 
 
  On May 20, 2014, at 16:30 , Jamie Orchard-Hays jami...@gmail.com wrote:
 
 
 
  If anyone can point me at some, I'll be most obliged. Too much ditzing 
  around with stuff that doesn't quite get me there the past couple hours.
 
 
 
  Cheers,
 
 
 
  Jamie
 
 
 
  --
 
  Note that posts from new members are moderated - please be patient with 
  your first post.
 
  ---
 
  You received this message because you are subscribed to the Google Groups 
  ClojureScript group.
 
  To unsubscribe from this group and stop receiving emails from it, send an 
  email to clojurescrip...@googlegroups.com.
 
 
 
  To post to this group, send email to clojur...@googlegroups.com.
 
  Visit this group at http://groups.google.com/group/clojurescript.
 
 
 
 
 
 --
 
 Note that posts from new members are moderated - please be patient with your 
 first post.
 
 ---
 
 You received this message because you are subscribed to the Google Groups 
 ClojureScript group.
 
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojurescrip...@googlegroups.com.
 
 To post to this group, send email to clojur...@googlegroups.com.
 
 Visit this group at http://groups.google.com/group/clojurescript.
 
 
 
 
 
 
 -- 
 
 Note that posts from new members are moderated - please be patient with your 
 first post.
 
 --- 
 
 You received this message because you are subscribed to the Google Groups 
 ClojureScript group.
 
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojurescrip...@googlegroups.com.
 
 To post to this group, send email to clojur...@googlegroups.com.
 
 Visit this group at http://groups.google.com/group/clojurescript.
 
 
 
 
 
 
 
 
 
 -- 
 
 Note that posts from new members are moderated - please be patient with your 
 first post.
 
 --- 
 
 You received this message because you are subscribed to the Google Groups 
 ClojureScript group.
 
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojurescrip...@googlegroups.com.
 
 To post to this group, send email to clojur...@googlegroups.com.
 
 Visit this group at http://groups.google.com/group/clojurescript.

I definitely agree. Weasel is pretty stellar. Figwheel is also another good 
tool to throw in the mix. So far I've been using both together and the 
development experience is *really* good.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] [ANN] Garden 1.1.7

2014-05-24 Thread Joel Holdbrooks
Garden, a library for authoring stylesheets in Clojure and ClojureScript, is 
now 1.1.7.

ADDED: Support for :preamble
IMPROVED: Support for meta data in garden.def/* macros

https://github.com/noprompt/garden

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] [ANN] Secretary 1.1.1

2014-05-24 Thread Joel Holdbrooks
Secretary, a client-side routing library for ClojureScript, is now 1.1.1

FIXED: bug when passed a record as route-params (Thanks Mortiz Ulrich!)

https://github.com/gf3/secretary

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: Om: Using a zipper cursor

2014-05-24 Thread Joel Holdbrooks
On Monday, May 19, 2014 8:10:14 PM UTC-7, Scott Thompson wrote:
 I've been thinking about using a clojure zipper 
 (http://richhickey.github.io/clojure/clojure.zip-api.html) as input to 
 om/root. This would give some convenient properties like being able to 
 traverse my data and make edits. My data is tree like in structure already so 
 using a zipper seems like a good fit.
 
 To do something like this I don't think will work out of the box though 
 (since cursors are only implemented for map and vector structures in the core 
 package). I haven't looked much at the Om internals to know if implementing a 
 'ZipperCursor' would be challenging or not... but thought I would ask here if 
 anyone has any thoughts?

I've been thinking about exactly this. Haven't had a chance to experiment with 
it yet though. If you get something working you should DEFINITELY consider 
posting your findings here.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Om and contentEditable - there be dragons?

2014-05-24 Thread Joel Holdbrooks
On Friday, May 23, 2014 4:17:45 AM UTC-7, Chas Emerick wrote:
 Bit of a stale thread here, but I thought I'd say a couple of things
 since I was mentioned. :-)
 
 
 
 contentEditable is absolutely a cluster, through and through. (All
 the best that the web standards processes has to offer, but that's
 an OT rant for another day.)
 
 
 
 As you gleaned from my React ML posts (as as David speculated
 nearby), working with contentEditable via React *adds* to the
 challenges. While React's virtual DOM is a simplifying abstraction
 elsewhere, it simply cannot represent all of the state associated
 with an editable region, because that state isn't represented in the
 DOM in the first place. So, caret position, selection ranges, scroll
 position, etc. are all inevitable casualties of React's particular
 immediate-mode rendering strategy. You can manage these things out
 of band, but at a certain point (very much dependent upon your
 objectives and requirements) React becomes an obstacle rather than
 an aid.
 
 
 
 That said, if you are looking to use contentEditable for fairly
 lightweight stuff — e.g. you just want the user to be able to
 provide some styled content — you can hook into an onChange or
 onBlur event to update your model and using React/Om should pan out
 just fine after the requisite contentEditable difficulty.
 
 
 
 Good luck,
 
 
 
 - Chas
 
 
 
 
 On 04/22/2014 06:58 AM, Paul Butcher
   wrote:
 
 
 
   
   
 After working
 my way through the various samples and tutorials out there, I’m
 about to start on my first Om app (yay!).
   
 
 
   
   
 Possibly
 foolishly, I’m planning to make heavy use of contentEditable. In
 essence, what I need to do is replicate something similar to
 Word’s “track changes” functionality. Ideally, I’d like to get
 this to play nicely with Om’s undo - the complication being that
 as well as changes made by the app, I’d also need to undo
 changes made by the user (ideally wrapping changes made by both
 into a single logical undo).
   
 
 
   
   
 I’ve done
 quite a bit of searching, and getting React to play nicely with
 contentEditable seems to be a largely unexplored area? Chas
 Emerick’s message on the React mailing list seems to capture the
 current state of the art:
   
 
 
   
   
 https://groups.google.com/d/msg/reactjs/ff5YlPKiqmc/ngDTsk_i2mYJ
   
 
 
   
   
 Although this
 looks promising:
   
 
 
   
   
 http://stackoverflow.com/a/22678516/268371
   
 
 
   
   
 Is there
 anything else that I should be aware of? Any words of wisdom or
 advice before I dive into this (including “don’t use Om for this
 - it’s the wrong tool for the job” :-)?
   
 
 
 
   
  
 
   
   
 
   
 
 
 
   
 --
 
 paul.butcher-msgCount++
 
 
 
 Silverstone, Brands Hatch, Donington Park...
 
 Who says I have a one track mind?
 
 
 
 http://www.paulbutcher.com/
 
 LinkedIn: http://www.linkedin.com/in/paulbutcher
 
 Skype: paulrabutcher
   
 
 
   
   
 Author of Seven Concurrency
 Models in Seven Weeks: When Threads Unravel
   
 http://pragprog.com/book/pb7con
 
   
   -- 
 
   Note that posts from new members are moderated - please be patient
   with your first post.
 
   --- 
 
   You received this message because you are subscribed to the Google
   Groups ClojureScript group.
 
   To unsubscribe from this group and stop receiving emails from it,
   send an email to clojurescrip...@googlegroups.com.
 
   To post to this group, send email to clojur...@googlegroups.com.
 
   Visit this group at http://groups.google.com/group/clojurescript.

I'd like to echo this and say that my experiments with contentEditable spans 
proven fruitful because I am managing the more difficult tasks (e.g. tracking 
cursor position) out of band as Chas recommends. My opinion is that it isn't 
necessarily a cluster; it just requires a bit of effort. Again, this all 
depends on what you are trying to achieve.

In my case I *do not* hook into onChange but I *do* hook into onBlur, onFocus, 
onClick, and onKey* events. onFocus/onClick is primarily for setting up caret 
tracking. onKey* events handle caret tracking and logic around specific keys. 
onBlur does the actual updating of the application state.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from 

[ClojureScript] Re: [ANN] lein-figwheel a live coding plugin for leinigen

2014-05-02 Thread Joel Holdbrooks
This is so awesome! Nice work!

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: cljs-time 0.1.3

2014-04-23 Thread Joel Holdbrooks
It would be mega awesome if this clj-time was just a CLJX project so we could 
just depend on one library instead of two. Have you thought about asking the 
maintainers of clj-time their thoughts wrt to that?

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] OM: Interesting mismatch between app-state and passed-in data

2014-03-17 Thread Joel Holdbrooks
On Monday, March 17, 2014 11:51:32 AM UTC-7, Scott Nelson wrote:
 Thanks David!  That works great. I made a root component that simply builds a 
 new component based on the current route (updated the Gist).

One thing I might suggest is to avoid mutating app-state in your route actions. 
Our team has found this can lead to code that becomes difficult to reason about 
and test, especially when you start involving actions that need to hit the 
network.

To get around this we either a) return a map of the next-state from the action 
and pass that to reset! in the navigate listener or b) use pub/sub with topic 
strictly for updating app-state outside of components.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN: Secretary 1.0.3

2014-03-17 Thread Joel Holdbrooks
Secretary, the client-side router for ClojureScript is 1.0.3

FIXES

* Encoding/decoding of data structures in query-strings [gh-27] 

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: Secretary 1.0.3

2014-03-17 Thread Joel Holdbrooks
On Monday, March 17, 2014 5:01:10 PM UTC-7, Joel Holdbrooks wrote:
 Secretary, the client-side router for ClojureScript is 1.0.3
 
 FIXES
 
 * Encoding/decoding of data structures in query-strings [gh-27]

Forgot the URL: https://github.com/gf3/secretary

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN: lein-garden 0.1.7

2014-03-02 Thread Joel Holdbrooks
lein-garden, the plugin for automatically compiling Garden stylesheets is now 
0.1.7

https://github.com/noprompt/lein-garden

FIXES:

* Auto compiling doesn't work right away (#8)
* Auto compiling only compiles the first build (#10)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: lein-garden 0.1.7

2014-03-02 Thread Joel Holdbrooks
On Sunday, March 2, 2014 12:12:20 PM UTC-8, Joel Holdbrooks wrote:
 lein-garden, the plugin for automatically compiling Garden stylesheets is now 
 0.1.7
 
 https://github.com/noprompt/lein-garden
 
 FIXES:
 
 * Auto compiling doesn't work right away (#8)
 * Auto compiling only compiles the first build (#10)

This is actually now 0.1.8 thanks to a bug that was pointed out.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN: Secretary 1.0.2

2014-03-01 Thread Joel Holdbrooks
Secretary, the client side router for ClojureScript, is now version 1.0.2

https://github.com/gf3/secretary

FIXES:

* Decoding of parameters [https://github.com/gf3/secretary/pull/19]

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN: Secretary 1.0.1

2014-02-26 Thread Joel Holdbrooks
Secretary the client side router for ClojureScript is now 1.0.1

https://github.com/gf3/secretary

* FIXES bug in route encoding

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: ankha (Om data inspector)

2014-02-24 Thread Joel Holdbrooks
On Sunday, February 23, 2014 7:09:03 PM UTC-8, Conrad Barski wrote:
 On Saturday, February 22, 2014 7:55:10 PM UTC-6, Joel Holdbrooks wrote:
  Ankha is a generic data inspector for use with Om. You can use it to 
  interactively view your application's state or any other supported data 
  structure (see README).
  
  Learn more here: https://github.com/noprompt/ankha
  
  Comments, suggestions, and patches welcome. Expect more features to come.
 
 One more suggestion: It would be cool if clicking on an entire item could 
 collapse/expand it, not just the +/- symbols. Then the size of the +/- would 
 no longer be an issue.

These are great suggestions Conrad. Would you mind creating a new issue for 
this on Github so I don't forget? I'll do an audit of the inline styling and 
see if I can trim some of the fat.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] ANN: Secretary 1.0.0

2014-02-16 Thread Joel Holdbrooks
Secretary, the client side router for ClojureScript is now 1.0.0!

https://github.com/gf3/secretary

Many exciting new features have been added:

  - String route matchers now recognize splats (globs) and named splats!
  - Regular expression route matchers!
  - Protocols!
  - Bug fixes!
  - A detailed README with examples!

What's with all the bang? Why? Because this is exciting! :-)

Please feel free to provide feedback or don't! It's totally your call. :-)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


[ClojureScript] Re: ANN: Om 0.4.0

2014-02-14 Thread Joel Holdbrooks
On Friday, February 14, 2014 5:00:10 AM UTC-8, Tatu Tarvainen wrote:
 Btw, I seem to get the following compiler errors after upgrading om from 
 0.3.6 to 0.4.0
 
 
 (clojurescript version is 0.0-2138)
 
 
 WARNING: Use of undeclared Var om.core/specify! at line 570 out\om\core.cljs
 WARNING: Use of undeclared Var om.core/_ at line 572 out\om\core.cljs
 WARNING: Use of undeclared Var om.core/tx-data at line 572 out\om\core.cljs
 WARNING: Use of undeclared Var om.core/root-cursor at line 572 
 out\om\core.cljs
 WARNING: Use of undeclared Var om.core/tx-data at line 574 out\om\core.cljs
 WARNING: Use of undeclared Var om.core/root-cursor at line 574 
 out\om\core.cljs
 WARNING: Wrong number of args (2) passed to om.core/-notify at line 572 
 out\om\core.cljs

You might want to try running lein cljsbuild clean. Normally, those sorts of 
messages appear whenever I forget to clean and rebuild after upgrading 
dependencies.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Trying to get PhantomJs and ClojureScript.test working

2014-02-14 Thread Joel Holdbrooks
On Friday, February 14, 2014 12:54:41 PM UTC-8, Chris Zheng wrote:
 Is there a way of doing autotesting of clojurescript code?
 
 I'm using 0.2.2 and when I run lein cljsbuild test, it only seems to test 
 once.
 
 My settings are:
 
   :cljsbuild {:builds [{:source-paths [src test]
:compiler {:output-to target/cljs/testable.js
   :optimizations :whitespace
   :pretty-print true}}]
  :test-commands {unit-tests [phantomjs :runner

 this.literal_js_was_evaluated=true
target/cljs/testable.js]}}

I wrote a short blog post on a technique I use to get auto testing for 
ClojureScript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.


Re: [ClojureScript] Trying to get PhantomJs and ClojureScript.test working

2014-02-14 Thread Joel Holdbrooks
On Friday, February 14, 2014 12:54:41 PM UTC-8, Chris Zheng wrote:
 Is there a way of doing autotesting of clojurescript code?
 
 I'm using 0.2.2 and when I run lein cljsbuild test, it only seems to test 
 once.
 
 My settings are:
 
   :cljsbuild {:builds [{:source-paths [src test]
:compiler {:output-to target/cljs/testable.js
   :optimizations :whitespace
   :pretty-print true}}]
  :test-commands {unit-tests [phantomjs :runner

 this.literal_js_was_evaluated=true
target/cljs/testable.js]}}

Forgot the link, whoops! Here it is: 
http://noprompt.github.io/clojurescript/testing/ruby/2014/01/25/autotesting-clojurescript.html

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
ClojureScript group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.