I think of Clojure configuration expressions as being human
editable/readable, testable in a few seconds (cut&paste in the REPL) and 
concise,
However, I do agree that anything is better than XML :)

Bad choice of words maybe ?

Luc
It's a holiday here I have some time to tease you a bit :)


> Hi Jay,
> > Thanks!  As far as JSON vs YAML, I think of these as generally human-edited
> configuration files, and I don't think it is controversial to claim that
> YAML is much better suited to human editing than JSON or XML.  As far as
> using the Clojure/Clojurescript reader instead of YAML, the way I see it is
> that it's just a choice between whether "everything is in Clojure" matters
> more, or whether making config files more readily manipulable by
> non-Clojure devs and non-devs is more the goal (say for example for an
> operations team working with a polyglot deployment).
> > That said, if there is interest in also supporting config files using
> native reader syntax it would be an easy addition to make, and wouldn't
> affect any other functionality.  You would simply expose the internal
> representation, which is just nested hash-maps e.g. {:dev {:some-config
> {:something "foo"} :other "bar"} :test {...}} and have a function to load
> clj files in in that format directly.  When loading in files with the
> reader, it would probably be a good idea to bind the dynamic var that
> disables the #=() reader macro.
> > Actually, a better idea might be to enable passing the config data as
> Clojure data as an optional alternative to specifying a YAML file.  The
> motivation would be to make it possible to load from any file format you
> choose in your own code and pass it in the data (so long as it can be made
> into a nested hash-map).
> > However I do think it makes sense for YAML file to remain the default way
> of loading data in any scenario, for reasons stated above.
> > On Sun, Jun 24, 2012 at 10:12 AM, Jay Fields <j...@jayfields.com> wrote:
> > > Hi Robert,
> >
> > Everything looks good, thanks for sharing the library. A philosophical
> > question, why YAML and not JSON or raw clj?
> >
> > Cheers, Jay
> >
> > On Jun 22, 2012, at 7:30 PM, Robert Levy wrote:
> >
> > It is my pleasure to announce the 0.5.0 release of milieu, a library for
> > environment-based application configuration that I have developed and
> > actively maintain at Draker <http://www.drakerenergy.com/> in Burlington,
> > Vermont.  Having made use of it in our day-to-day work for several months
> > now, we have found this library to be very useful for managing
> > configuration in our proprietary time-series data acquisition back-end
> > systems (also all written in Clojure of course).  I think this library will
> > add value to applications in any domain.
> >
> > The source can be found at https://github.com/drakerlabs/milieu and the
> > leiningen / maven dependency information is at http://clojars.org/milieu.
> > Issues/feedback and pull requests are of course welcome!
> >
> > milieu
> >
> > The environmentally friendly configuration tool.
> > ------------------------------
> >
> > *Build status:* [image: Build 
> > Status]<http://travis-ci.org/drakerlabs/milieu>
> >  <https://github.com/drakerlabs/milieu#features>Features:
> >
> >    -
> >
> >    Set up environment-specific configuration for your Clojure
> >    application, using the popular YAML file format.
> >    -
> >
> >    Access config values:
> >
> >    Specifying config values:
> >
> >    (config/value :my :config :value)
> >
> >    This will access the value in
> >
> >    dev|test|...:my:
> >      config:
> >        value:
> >
> >    Specifying config values as optional:
> >
> >    (config/value| :my :config :value) ; same as config/value except doesn’t 
> > warn if it’s not found(config/value| [:my :config :value] "alternate 
> > value") ; provide alternate value
> >
> >    -
> >
> >    Optionally auto-load config file.
> >    - using the default filename of "configure.yml" enables autoload
> >       - any other config file name can be specified by calling load-config
> >    -
> >
> >    Bind the environment within a calling context using with-env.
> >
> >    (config/with-env env
> >      (when (config/value :some :setting) ... ))
> >
> >    -
> >
> >    Specify the default environment using the MILIEU_ENV system variable.
> >    -
> >
> >    Override environment-specific settings using arguments to your
> >    command-line application.
> >
> >    (config/commandline-overrides! args)
> >      (config/with-env env
> >        ... )
> >
> >    -
> >
> >    In cases where the environment can be variable, code evaluation can by
> >    restricted in with-env or only-env, or more generally conditional using
> >    if-env and when-env.
> >
> >    ;; If env is prod, the code in the body will not be exercised,;; an 
> > exception is thrown instead:(defn -main [env & args]
> >      (config/with-env [env :only [:test :dev]] ,,,))
> >
> >    Alternatively (for example if you aren't in the context of a
> >    with-env)...
> >
> >    ;; If env is prod, the code in the body will not be exercised,;; an 
> > exception is thrown instead:(config/only-env [:test :dev] ,,,)
> >
> >    The following forms are general purpose conditionals (not assertions
> >    of environment restrictions).
> >
> >    (config/if-env :test "hello" "goodbye")
> >
> >    (config/when-env :dev ,,,)
> >
> >
> > Helpful info / warnings that can be turned off with MILIEU_QUIET system
> > variable:
> >
> >    -
> >
> >    WARNING: system variable MILIEU_ENV was not set. Default value will be
> >    "dev"
> >    -
> >
> >    WARNING: requested config setting [:fou :barre] not found!
> >    -
> >
> >    INFO: to enable auto-load, name your config-file configure.yml.
> >
> >  <https://github.com/drakerlabs/milieu#use>Use 
> > <https://github.com/drakerlabs/milieu#installation>
> > Installation
> >
> > http://clojars.org/milieu
> >  <https://github.com/drakerlabs/milieu#getting-started>Getting Started
> >
> > (ns example.core
> >   (:require [milieu.config :as config]))
> >
> >  <https://github.com/drakerlabs/milieu#example>Example
> >
> > (defn -main [env & args]
> >   (config/commandline-overrides! args)
> >   (config/with-env env
> >     (when (config/value| :some :setting) ,,,
> >
> >  <https://github.com/drakerlabs/milieu#command-line-override>Command-line
> > Override
> >
> > $ myprogram prod --fou.barre Fred --some.setting 127.0.0.1
> >
> >  <https://github.com/drakerlabs/milieu#license>License
> >
> > Author: Robert Levy / @rplevy-draker
> >
> > Acknowledgments: @alanpeabody, @S11001001, @AlexBaranosky
> >
> > Copyright © 2012 Draker Labs
> >
> > Distributed under the Eclipse Public License, the same as Clojure.
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> >
> >
> >  --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > -- > You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad!

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to