[ANN] New Cognitect Labs aws-api service APIs available

2021-10-15 Thread Fogus
New Cognitect Labs aws-api service APIs available!

CHANGES
- new endpoints version 1.1.12.88
- new AWS service API available (services version v814.2.1008.0): account, 
cloudcontrol, grafana, voice-id, wisdom

README: https://github.com/cognitect-labs/aws-api/

API Docs: https://cognitect-labs.github.io/aws-api/
Changelog: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md
Upgrade Notes: 
https://github.com/cognitect-labs/aws-api/blob/master/UPGRADE.md
Latest Releases of api, endpoints, and all services: 
https://github.com/cognitect-labs/aws-api/blob/master/latest-releases.edn

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/1feb54b4-72b1-4606-972f-19c9c1556c39n%40googlegroups.com.


[ANN] New Cognitect Labs aws-api service APIs available!

2021-09-10 Thread Fogus
New Cognitect Labs aws-api service APIs available!

CHANGES
new AWS service API available (services version v814.2.986.0): opensearch

README: https://github.com/cognitect-labs/aws-api/

API Docs: https://cognitect-labs.github.io/aws-api/
Changelog: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md
Upgrade Notes: 
https://github.com/cognitect-labs/aws-api/blob/master/UPGRADE.md
Latest Releases of api, endpoints, and all services: 
https://github.com/cognitect-labs/aws-api/blob/master/latest-releases.edn

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/5de6998c-b461-4fdb-bdba-0362fadb6897n%40googlegroups.com.


[ANN] New aws-api service APIs available

2021-08-20 Thread Fogus
New Cognitect Labs aws-api service APIs available!

CHANGES
new AWS service APIs available (services version v813.2.972.0): Amazon 
MemoryDB, AWS Snow Device Management

README: https://github.com/cognitect-labs/aws-api/
API Docs: https://cognitect-labs.github.io/aws-api/
Changelog: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md
Upgrade Notes: 
https://github.com/cognitect-labs/aws-api/blob/master/UPGRADE.md
Latest Releases of api, endpoints, and all services: 
https://github.com/cognitect-labs/aws-api/blob/master/latest-releases.edn

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/4c924125-18d7-45b4-b78f-2e3c1593b535n%40googlegroups.com.


[ANN] New Cognitect Labs aws-api service APIs available!

2021-08-09 Thread Fogus
New Cognitect Labs aws-api service APIs available!

CHANGES
new AWS service APIs available (services version v811.2.958 and 
v813.2.963): Route53 Recovery Cluster, AWS Route53 Recovery Control Config, 
AWS Route53 Recovery Readiness, Amazon Chime SDK Identity, and Amazon Chime 
SDK Messaging

  README: https://github.com/cognitect-labs/aws-api/

API Docs: https://cognitect-labs.github.io/aws-api/
Changelog: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md
Upgrade Notes: 
https://github.com/cognitect-labs/aws-api/blob/master/UPGRADE.md
Latest Releases of api, endpoints, and all services: 
https://github.com/cognitect-labs/aws-api/blob/master/latest-releases.edn

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/157c712c-15fa-4994-8acc-de0b2d55187cn%40googlegroups.com.


[ANN] Cognitect Labs' aws-api 0.8.515

2021-06-28 Thread Fogus
Cognitect Labs' aws-api 0.8.515 is now available!

CHANGES

   - add support for calculating TTL values based on supplied Java Instant 
   objects or Longs representing milliseconds since the epoch time #160 
   
   - new AWS service APIs available (services version 
   v811.2.934.0): AWSApplicationCostProfiler, apprunner, finspace, nimble, 
   proton, ssm-contracts, ssm-incidents

  README: https://github.com/cognitect-labs/aws-api/

API Docs: https://cognitect-labs.github.io/aws-api/
Changelog: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md
Upgrade Notes: 
https://github.com/cognitect-labs/aws-api/blob/master/UPGRADE.md
Latest Releases of api, endpoints, and all services: 
https://github.com/cognitect-labs/aws-api/blob/master/latest-releases.edn

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/f5e7efb4-c77b-4000-b59c-0518a0af4394n%40googlegroups.com.


Re: Thoughts on a curly-infix reader macro?

2014-04-04 Thread Michael Fogus
I prefer Unfix --> http://fogus.me/fun/unfix/ ;-)

On Fri, Apr 4, 2014 at 12:45 PM, Alex Miller  wrote:
> Incanter supports this with the $= prefix:
> ($= 7 + 8 - 2 * 6 / 2)
>
> http://data-sorcery.org/2010/05/14/infix-math/
>
> Might be worth looking at...
>
>
> On Thursday, April 3, 2014 11:17:32 PM UTC-5, Joshua Brulé wrote:
>>
>> Proposal:
>>
>> For an *odd* number of forms a, x, b, ...
>>
>> {a x b x c ...} => (x a b c ...)
>> {a x b y c ...} => (*nfx* a x b y c ...)
>>
>> Reasoning:
>>
>> Even after a lot of practice, prefix math is still harder (at least for
>> me...) to read than non-prefix math. The [], () and <> matching delimiters
>> are already taken, but {} is only used for an even number of forms (and, in
>> fact, throws an exception on an odd number of forms.)
>>
>> ; trumped-up examples
>> (defn harmonic-mean [x1 x2]
>>   {{2 * x1 * x2} / {x1 + x2}})
>>
>> (defn fib [n]
>>   (cond
>> {n = 0} 1
>> {n = 1} 1
>> :else {(fib {n - 1}) + (fib {n - 2})}))
>>
>> Basically, I'm claiming a solid win on readability, and no risk of
>> breaking any existing code.
>>
>> I realize there's a certain risk of mistaking curly-infix for a map
>> literal when reading code, but I think it's minimal. To me, at least, {x +
>> y} just doesn't look like a map.
>>
>> Thoughts?
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: error in website text

2014-02-26 Thread Michael Fogus
I do believe that the sentence is correct as written.  That is,
Clojure strives to solve the same kinds of problems that Java is
typically used to solve.

On Wed, Feb 26, 2014 at 8:58 AM, Janek Warchoł
 wrote:
> Hello,
>
> On clojure.org/rationale there is a sentence
>
>> It endeavors to be a general-purpose language suitable in those areas
>> where Java is suitable
>
>
> It seems that a "not" is missing at the end.
>
> best,
> Janek Warchoł
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [ANN] clara-rules 0.4 released

2014-02-07 Thread Michael Fogus
> The theme of this release is "rules as data"

Yay!

Great job Ryan.  I look forward to checking out your changes.


On Thu, Feb 6, 2014 at 10:15 PM, Ryan Brush  wrote:
> The 0.4.0 release of Clara is up on Clojars. The github page is at [1].
>
> The theme of this release is "rules as data", which I wrote about at [2]. In
> a nutshell, all rules and the Rete network itself are defined by
> well-defined data structures (via Prismatic Schema), which opens a lot of
> doors:
>
> * Alternate front ends to Clara can now be written, generating rules in the
> schema-compliant format. If the "defrule"-style DSL isn't your thing, you
> can generate rules via any mechanism you want.
> * Tooling can now be written to inspect the rules and their relationships,
> with some examples in the blog at [2].
> * The Rete network itself is also a schema-defined data structure, opening
> the door for visualizing the working memory itself.
>
> There are some breaking changes for the ClojureScript support: I moved the
> logic to generate a Rete network in ClojureScript to be driven at compile
> time...meaning we can assemble an optimized network on the server, rather
> than having the client do that computation every time it loads. Details and
> an example are linked at [3]. I haven't yet used the ClojureScript version
> "in anger", but am maintaining it because there is interest and it's cool to
> see this running in a browser. ;)
>
> I expect future releases to be smaller and more frequent. Getting Clara on a
> solid basis of well-defined structures was a significant effort, but I think
> it puts it in a stronger position with a number of advantages over existing
> rule engines.
>
> [1]
> https://github.com/rbrush/clara-rules
> [2]
> http://www.toomuchcode.org/blog/2014/01/19/rules-as-data/
> [3]
> https://github.com/rbrush/clara-rules/wiki/ClojureScript
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [ANN] Cognitect

2013-09-16 Thread Michael Fogus
Rich and Relevance,

This is very exciting news for the Clojure community (and yourselves
I'm sure).  I for one look forward to seeing how you rock our worlds.

On Mon, Sep 16, 2013 at 9:50 AM, Rich Hickey  wrote:
> I just wanted to let everyone know that Metadata Partners (the company behind 
> Datomic) and I have merged with Relevance, Inc., to form Cognitect, Inc. This 
> merger is great for Clojure, adding considerable resources and stability to 
> its development and support, including new enterprise support offerings and 
> reinvigorated community support. (You should read the hiring of Alex Miller 
> as the first example of the latter).
>
> I hope the availability of enterprise support for the entire platform makes 
> it easier for people to introduce Clojure into their organizations.
>
> This is a very exciting time for Clojure and the platform and ecosystem 
> surrounding it. You can find out more at:
>
> http://cognitect.com
>
> Thanks,
>
> Rich
>
> --
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


[ANN] Marginalia has a new home

2013-08-12 Thread Fogus
A few days ago I posted that I was looking for a new home for Marginalia[1] 
and today I am happy to say that I have found one.  Gary Deer 
(https://github.com/gdeer81) has graciously agreed to take the reins and 
push Marginalia in new and exciting directions.

Two projects fall under the Marginalia banner:

1. Marginalia 
2. lein-marginalia 

Both of these projects now reside in Gary's Github account and he is the 
person to contact should you have questions.  I will still help however I 
can, but Gary is the man with the plan moving forward.

Thank you Gary and thanks to everyone who has contributed and used 
Marginalia over the past few years.



[1]: http://blog.fogus.me/2013/08/07/marginalia-needs-a-home/


-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [ANN] Clojure Cheatsheet for Emacs

2013-08-12 Thread Michael Fogus
The number of cheatsheets is growing (this is a good thing IMO) and I
wonder if it would be worth aggregating them all under one location?

I have my own ClojureScript cheatsheet (
https://github.com/readevalprintlove/clojurescript-cheatsheet) and the CLJS
synonyms page (http://himera.herokuapp.com/synonym.html) that I would be
willing to add to the mix.


On Fri, Aug 9, 2013 at 4:30 PM, Kris Jenkins  wrote:

> Hi,
>
> I find the Clojure Cheatsheet <http://clojure.org/cheatsheet> really
> useful, but since I often need at those times I don't have wifi, I've
> packaged it up into an Emacs plugin:
>
>
> <https://raw.github.com/krisajenkins/clojure-cheatsheet/master/screenshot1.png>
> In the hope that someone else finds it useful too, the project's here on
> Github <https://github.com/krisajenkins/clojure-cheatsheet>, along with
> installation instructions. Any feedback is welcomed. :-)
>
> Cheers,
> Kris
>
> --
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Marginalia needs a new home

2013-08-07 Thread Fogus
As I mentioned on my blog[1], I'm looking to transfer ownership of the 
Marginalia codebase to someone interested in taking it in new and exciting 
directions.  I still value library documentation but I have long since 
become a mere user of my own software.  That is, what Marginalia does right 
now is exactly what I need it to do.  Therefore, if **you** have great 
ideas about making Marginalia something more and you're interested in 
taking over Marginalia (and lein-marginalia) development then contact me at 
me -at- fogus -dot- me.

[1]: http://blog.fogus.me/2013/08/07/marginalia-needs-a-home/

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Interest in a Full Featured Clojure Blog Engine

2013-07-18 Thread Michael Fogus
That's what I hoped you meant. Sounds fun.

On Thu, Jul 18, 2013 at 10:44 AM, Timothy Washington  wrote:
> Ah, by composable, I meant you could choose to only use a core server
> component, posting txt entries, let's say with an in-memory data store ( who
> knows.. it's your blog :). And if you want a little more, you can choose to
> add a DB adapter out to Datomic, and Import / Export support. This is all
> still within a running Clojure repl. So additionally, you might choose to
> add a Web UI (or tablet or smartphone UI), and so on.
>
>
> Tim Washington
> Interruptsoftware.ca / Bkeeping.com
>
>
> On Thu, Jul 18, 2013 at 10:36 AM, Michael Fogus  wrote:
>>
>> Quick answer: Yes.  I'd love to see a legitimate, maintained
>> Clojure-based blogging engine.  I have one question: what does
>> "composable blogging engine" mean?
>>
>>
>> On Thu, Jul 18, 2013 at 10:24 AM, Timothy Washington 
>> wrote:
>> > Hello,
>> >
>> > I'm thinking of how to build a composable blogging engine in Clojure.
>> > There
>> > have been a few attempts at this, with cow-blog and my-blog. But these
>> > seem
>> > to be abandoned, and not heavily used. Vijay Kiran, last year, even
>> > wrote a
>> > series of blog posts (see here) about building a blog engine. As far as
>> > a
>> > list of posts goes, the data structure for each record was simple:
>> >
>> > title
>> > content
>> > status
>> > created-date
>> > published-date
>> > author
>> >
>
> --
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Interest in a Full Featured Clojure Blog Engine

2013-07-18 Thread Michael Fogus
Quick answer: Yes.  I'd love to see a legitimate, maintained
Clojure-based blogging engine.  I have one question: what does
"composable blogging engine" mean?


On Thu, Jul 18, 2013 at 10:24 AM, Timothy Washington  wrote:
> Hello,
>
> I'm thinking of how to build a composable blogging engine in Clojure. There
> have been a few attempts at this, with cow-blog and my-blog. But these seem
> to be abandoned, and not heavily used. Vijay Kiran, last year, even wrote a
> series of blog posts (see here) about building a blog engine. As far as a
> list of posts goes, the data structure for each record was simple:
>
> title
> content
> status
> created-date
> published-date
> author
>
>
> I think this is the most basic thing you could do, to get running. But I'm
> thinking of approaching the feature set of Wordpress. So I'm thinking of the
> Data Structure(s) of features like:
>
> Web UI component; wyswyg editor, themes
> Server component; embeddable in Compojure or Pedestal
> Database component;
>
> raw data structures, txt, rtf, images, audio, videos, documents
> adapters for Datomic, SQL(Postgres, etc), NoSQL (Mongo, etc)
> tags / categories for content
>
> Authentication & Authorization; OpenID
> Workflow component; preview, collaboration & editor review
> Commenting component; default or an external comments service, like disqus
> or discourse
> Administration Console
> Plug-in support
> Import / Export
> Multi-lang / Internationalization
>
>
> I know that I currently wish I had a Clojure weblog engine that I could
> stick into a site I'm building. If there's already something available, I'll
> obviously just use that. But otherwise, is this something that would be
> interesting to people?
>
>
> Thanks
>
> Tim Washington
> Interruptsoftware.ca / Bkeeping.com
> 416.843.9060
>
> --
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [ANN] Clojure/conj tickets on sale at 3pm EST today!

2013-06-11 Thread Michael Fogus
Hi Lynn,

> Let me know if you have any questions/comments/concerns/ideas

I have one question.  As someone who has submitted a talk proposal
(two rather) I wonder if I should go ahead and sign up for the
conference now and work though the reimbursement details later should
my talk get accepted.

I hope that made sense.

Any guidance on this for (potential) speakers would be welcomed.

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Utility libraries and dependency hygiene

2013-05-15 Thread Michael Fogus
> take this opportunity to ask everyone to help us avoid the dependency
> mess that Common Lisp has gotten into, where there are over a dozen
> such "convenience" libraries[1].

Are Common Lispers actively suffering under this problem?  With the
emergence of QuickLisp, CL dependency problems seem to have been
smoothed over.

> adding to the dependencies of your library, you increase the
> likelihood of dependency conflicts for consumers.

Agreed.  But is the solution to strive for zero-dependencies?  That
seems extreme.  How should we view contrib libraries?  Should we avoid
depending on them too?  From my perspective, I try to minimize
dependencies, but if I need a library then I use it.

The Clojure community is very flexible, yet pragmatic.  Maybe a better
solution to zero-dependency is a "suite" of common libraries driven by
the community, that is not affiliated with Core and contrib?  I don't
know, just a thought.  It would lay somewhere between the more strict
contrib and the wild-west model of NPM and JS micro-libs.

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Clojure/West 2013 videos?

2013-03-25 Thread Michael Fogus
> You have no idea what you're talking about.

That's never stopped him before.



On Mon, Mar 25, 2013 at 9:22 AM, Alex Miller  wrote:
>
>
> On Monday, March 25, 2013 12:16:45 AM UTC-5, Sean Grove wrote:
>>
>> I'm sure that having nice videos (which have all been awesome) aren't
>> cheap, nor are they easy to produce. It's unfair to trivialize the
>> production and editing of high-quality material.
>>
>> That said, a thought I've been surprised no one has suggested is a
>> crowdtilt/kickstarter-style campaign to get the videos released immediately
>> on youtube/vimeo. If there's sufficient demand, then the costs can be
>> recovered (and the events can be in the black), and if not, then they'll go
>> on InfoQ without any complaints.
>
>
> That's a great idea and something I'll think about. Managing a kickstarter
> campaign is a lot of work from what I've heard but it might be reasonable in
> this case. It also allows the demand to be demonstrated prior to the event
> and costs being incurred.
>
>>
>> $400 would be likely too steep for me personally, but $100 is certainly
>> reasonable.
>>
> --
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: What's the point of -> ?

2013-03-11 Thread Fogus
I wrote a post about -> and ->> a few years ago that might be helpful.  
http://blog.fogus.me/2009/09/04/understanding-the-clojure-macro/

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: *read-eval* vulnerability

2013-01-30 Thread Michael Fogus
Although let me say that I agree with false being the default.  I'm
not saying that is a bad idea, only that we need to be careful if
evaling what comes over... but I guess that is obvious and if not then
we get what we deserve.  ;-)


On Wed, Jan 30, 2013 at 12:23 PM, Michael Fogus  wrote:
>> RuntimeException EvalReader not allowed when *read-eval* is false.
>
> The problem is that the second eval gets ( 1 2
> 3) which invokes the right pathway triggering the exception.  You can
> trigger the same exception by:
>
> (binding [*read-eval* false] (eval (list + 1 2 3)))
>
> People are not sending actual functions across the wire, so the only
> way to trigger this is to do some kind of pre-processing of symbols to
> functions or perhaps:
>
> (binding [*read-eval* false] (eval '(eval (quote (+ 1 2 3)
> ;;=> 6
>
> Whoops!
>
> Maybe setting *read-eval* to false is not enough.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: *read-eval* vulnerability

2013-01-30 Thread Michael Fogus
> RuntimeException EvalReader not allowed when *read-eval* is false.

The problem is that the second eval gets ( 1 2
3) which invokes the right pathway triggering the exception.  You can
trigger the same exception by:

(binding [*read-eval* false] (eval (list + 1 2 3)))

People are not sending actual functions across the wire, so the only
way to trigger this is to do some kind of pre-processing of symbols to
functions or perhaps:

(binding [*read-eval* false] (eval '(eval (quote (+ 1 2 3)
;;=> 6

Whoops!

Maybe setting *read-eval* to false is not enough.

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: Simple FIFO cache for memoize

2013-01-23 Thread Michael Fogus
Absolutely essential reading.

On Wed, Jan 23, 2013 at 6:02 AM, Christophe Grand  wrote:
> and kotka.de/blog/2010/03/memoize_done_right.html has some intersting
> discussion on memoization
>
>
> On Wed, Jan 23, 2013 at 9:12 AM, Baishampayan Ghose 
> wrote:
>>
>> Take a look at core.cache - https://github.com/clojure/core.cache ~BG
>>
>> On Wed, Jan 23, 2013 at 1:11 PM, Omer Iqbal  wrote:
>> > I've been reading a bit about the STM, and here's an implementation of a
>> > FIFO cache for producing a memoized version of a function. Is it correct
>> > to
>> > use the STM in this case, or are there any  drawbacks?
>> >
>> > (defn bounded-memoize
>> >   "Return a bounded memoized version of fn 'f'
>> >that caches the last 'k' computed values"
>> >   [f k]
>> >   (let [cache (ref {})
>> > values (ref clojure.lang.PersistentQueue/EMPTY)]
>> > (fn [& args]
>> >   (if-let [e (find @cache args)]
>> > (val e)
>> > (let [result (apply f args)]
>> >   (dosync
>> >(alter values conj args)
>> >(alter cache assoc args result)
>> >(if (> (count @values) k)
>> >  (let [evict (peek @values)]
>> >(alter values pop)
>> >(alter cache dissoc evict))
>> >  )
>> >result
>> >))
>> >
>> > )
>> >   ))
>> >   )
>> >
>> >
>> > --
>> > --
>> > 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
>> >
>> >
>>
>>
>>
>> --
>> Baishampayan Ghose
>> b.ghose at gmail.com
>>
>> --
>> --
>> 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
>>
>>
>
>
>
> --
> On Clojure http://clj-me.cgrand.net/
> Clojure Programming http://clojurebook.com
> Training, Consulting & Contracting http://lambdanext.eu/
>
> --
> --
> 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
>
>



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
-- 
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




Re: Simple FIFO cache for memoize

2013-01-23 Thread Michael Fogus
> now I'm confused, which one is the right memoize to use?

I'm not sure exactly what you mean, but if you mean which backing
cache to use the answer depends on your needs.  The core.cache wiki
has discussion about the advantages/disadvantages of using one type or
another.  You can find the discussion under each cache's detailed
information linked on the "Using" page -->
https://github.com/clojure/core.cache/wiki/Using

> and is that true about dosync? "the nesting property of dosync: a nested
> transaction merges with the surrounding one." or did it change in the past
> almost 3 years since?

It's always been that way.
:F

-- 
-- 
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




Re: Is contributing to clojurescript is intentionally made hard ?

2013-01-20 Thread Michael Fogus
> I'm sorry but given Clojure/core's track record of *actions* (or lack of
> them, rather) this
> sounds a bit offensive to people who are not Clojure/core members, Clojure
> committers or "screeners".
>

Adding source annotations to a Github project's source base and starting an
IRC channel have nothing to do with being a commiter, core member or even
having a CA.  The former reduces the friction of offering minor
changes.You'll recall that I said nothing about the speed of Core.   I
prefer to discuss things that I have control over.

The current process is broken in many ways:
>

>From your perspective perhaps.  There are others whom disagree.  Can there
be improvements?  Definitely.  I offered two.


> To make matters worse, Clojure/core consistently avoids discussing these
> issues in public
>

I would guess because their position hasn't changed since the last time.
 This is only speculation.  A page like what Anthony proposes could help,
but it wouldn't satisfy everyone.  Stuart Sierra wrote up something
related, but it doesn't cover everything discussed here
http://clojure.com/blog/2012/02/17/clojure-governance.html

Saying "we are all friends here" is a bit optimistic and does not cut it.
>

It is very optimistic.  Guilty as charged.  I would say that saying Core
doesn't care is very pessimistic.



>
>

-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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

Re: Is contributing to clojurescript is intentionally made hard ?

2013-01-20 Thread Michael Fogus
>
>
> Please don't ask people to not rehash this discussion. Don't tell them
> that it is a 'weak reason' for not contributing and 'not worth fighting
> over'.
>

Well, that's only my opinion.  I happen to think it's not worth fighting
over so I don't.  Rich has put in place a system he's happy with.  I can
either agree with it or not, but regardless I'm unlikely to change anyone's
mind.  I apologize for asking not to rehash. Rehash away.

That's ridiculous. How many people have brought this up?
>

Many. And it's been addressed by Rich numerous times as well.

 Isn't it a little arrogant to just dismiss the issue as "Meh, they're not
> as smart as I am
>

I only offered some potential solutions to a couple of nagging problems.  I
was unaware that would be taken as displaying an arrogance of intellectual
superiority. My bad.



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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

Re: Is contributing to clojurescript is intentionally made hard ?

2013-01-20 Thread Michael Fogus
I'll just add a few points:

Pull requests are not likely to happen.  It's not worth fighting over.
 However, I think that is a weak excuse for not contributing.  If you
want to contribute a complex bug fix, then the patch process is
trivial by comparison.  If you want to contribute doc fixes and think
that the patch process is too cumbersome (or in the case of the wiki,
not applicable) then there are numerous options in order of decreasing
visibility:

 - use Github's annotation capabilities to add editorial comments
(e.g. https://t.co/UXrsMk2M)
 - mailing lists
 - send a tweet
 - IRC
 - email your suggested enhancements to the maintainer

There are many ways to contribute valuable documentation and minor bug
fixes than the patch system.  In most cases a matter of rights never
comes into play because using editorial commentary and the
identification of bugs fall under the aegis of fair use (otherwise Joy
of Clojure would have 24 co-authors).  There are other advantages to
Github besides pull requests, annotations being just the one that
directly pertains to this discussion.   If you want to help then there
are numerous ways to do so.  If you want to push an agenda then by all
means continue this thread.

I would love to see a better system in place for contributing to the
wiki.  I have no solution sadly.

Likewise I would love to see a separate mailing lists and IRC for
ClojureScript -- although nothing is stopping someone from creating
them except the promise of a thankless job in moderation.  Maybe
that's why it hasn't happened yet - everyone is hoping someone else
will do the dirty work. ;-)

We're all friends here. Everyone wants to help.  There are ways to
help that do not involve endless mailing list threads and personal
distaste of process.

-- 
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


Re: (#({:a %}) :b)

2012-12-14 Thread Michael Fogus
The limitation was only on ->> but I think that is due for a fix in
the next version.


On Thu, Dec 13, 2012 at 5:48 PM, JvJ  wrote:
> Clever, but I always thought -> had to take more than one parameter.  Maybe
> that's only for ->>
>
>
> On Thursday, 13 December 2012 13:35:33 UTC-5, Gary Verhaegen wrote:
>>
>> I've found this gem in The Joy of Clojure :
>>
>> #(-> [%])
>>
>> which would work similarly for any literal, I guess : #(-> {:a %}) in
>> this case. Much nicer than identity, IMHO.
>>
>> On 4 June 2012 15:28, Steven Obua  wrote:
>> > Jay's example has convinced me that redefinition is not a good idea
>> > anyway,
>> > because #(f) is not always equivalent to f when (count [f]) is 1.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "Clojure" group.
>> > To post to this group, send email to clo...@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+u...@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



-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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


Re: Understanding clojure.core.cache TTL cache

2012-10-22 Thread Michael Fogus
> And thank you Mr. Fogus.

Don't thank me, Sean did all the hard work. :-)

-- 
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


Re: Understanding clojure.core.cache TTL cache

2012-10-22 Thread Michael Fogus
> What I'm missing?

First, thanks for trying c.c.cache! The answer to your question is
that the TTL cache implementation is non-destructive.  The `evict`
call returns the cache without the element, but does not remove it
from the original cache.

-- 
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


Re: ANN: Minderbinder v0.2.0

2012-10-17 Thread Michael Fogus
> Very nice, thanks. Is the intent for this to eventually be as complete as 
> Frink [1] or are you going to keep its scope to time, length and information?

Frink is a general purpose programming language, so by default I get
that for free via Clojure. ;-) Seriously though, this is in no way
meant to replicate the Frink experience of first-class units of
measure.  Instead the ultimate goal is to allow unit-aware syntax with
tools to ensure a common reference base.  I will likely add (and will
accept patches for) more unit types as time goes on.  I wanted to get
the core solidified before I went too far on that in the beginning.

-- 
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


Re: parallel alpha-beta pruning possible?

2012-10-16 Thread Michael Fogus
I would probably look at the work that Robert Hyatt has done around
parallel search in Crafty. He's published his findings far and wide and may
still be active online. He's a wealth of information and fairly nice guy.

-- 
-- http://blog.fogus.me
-- http://github.com/fogus
--

-- 
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

ANN: Minderbinder v0.2.0

2012-10-16 Thread Fogus
Minderbinder is a Clojure library for defining unit conversions available 
at read, compile and run time. 

More information is available on the [Minderbinder source 
repo](https://github.com/fogus/minderbinder).

Use


Include the following in your 
[Leiningen](https://github.com/technomancy/leiningen) project.clj file:

[fogus/minderbinder "0.2.0"]

Or include the following in your pom.xml file in the `dependencies` section:

    
  fogus
  minderbinder
  0.2.0


Examples


Minderbinder includes unit conversions for the following units of measure:

  * [Time][t]: via `#unit/time`, base is `:milliseconds`, ns is 
`minderbinder.time`
  * [Length][l]: via `#unit/length`, base is `:meters`, ns is 
`minderbinder.length`
  * [Information][i]: via `#unit/info`, base is `:byte`, ns is 
`minderbinder.information`

[t]: 
https://github.com/fogus/minderbinder/blob/master/src/minderbinder/time.clj
[l]: 
https://github.com/fogus/minderbinder/blob/master/src/minderbinder/length.clj
[i]: 
https://github.com/fogus/minderbinder/blob/master/src/minderbinder/information.clj

Using Minderbinder's unit reader form
--

(ns minderbinder.test.core
  (:require minderbinder.time))

(== #unit/time [1 :second]
#unit/time [1000 :ms])

;;=> true

(== #unit/time [1 :minute 30 :seconds]
#unit/time [90 :seconds])

;;=> true

Using Minderbinder's unit parse functions
-

(ns minderbinder.test.core
  (:require [minderbinder.length :as mbr]))

(mbr/parse-length-unit [1 :km])

;;=> 1000

(mbr/parse-length-unit [1 :ramsden-link])

;;=> 381/1250

Defining custom conversion rules


Defining a unit conversion is accomplished via Minderbinder's `defunits-of` 
macro.  The body of the macro expects the following structure:

(defunits-of *unit-name* *base-unit-tag* *docstring* *conversion-spec*)

The *conversion spec* part of the body currently allows pairs of mappings 
defined in reletive terms.  The pairs always start with a keyword used as 
the unit tag.  However, the right-hand side of the pair can be one of the 
following:

 1. Number  - defines the value of the unit relative to the base unit
 2. Vector  - defines the value of the unit relative to another contained 
unit
 3. Keyword - defines a single alias for a unit
 4. Set - defined one or more aliases for a unit
 
A simplified version of Minderbinder's length conversion definition serves 
as an example:

(defunits-of length :meter
  "The meter is the length of the path 
  traveled by light in vacuum during a 
  time interval of 1/299,792,458 of 
  a second."
   
  :m  :meter   ;; an alias for the base unit
  :km 1000 ;; a larger value relative to the base 
unit
  :km #{kilometer kilometers}  ;; multiple aliases for a unit
  :cm 1/100;; a smaller value relative to the base
  :mm [1/10 :cm])  ;; a value relative to another unit

### Generated vars

The `defunits-of` macro will define three things in the namespace where the 
`defunits-of` macro appears:

 1. `parse-XXX-unit` - a function that parses the unit vector according to 
the conversion spec, returning the total value relative to the base.

 2. `unit-of-XXX`- a macro that allows the for `(unit-of-XXX 1 :foo)` 
that returns the total value relative to the base.
 
 3. `XXX-table`  - a map describing the unit conversion rules.

Contributions welcomed!

-- 
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

Re: Packaging ClojureScript libraries for use with Leiningen

2012-10-12 Thread Michael Fogus
I've looked at the core.logic packaging, but it wasn't immediately
obvious what was happening.  I eventually figured it out, but it would
be nice to have a roadmap for making cross-language packaging easier,
even if the needed pieces were not yet available.

-- 
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


Re: Interest in Scribble for Clojure?

2012-10-09 Thread Michael Fogus
> Any existing solutions or interest in something like this?

There are no _public_ solutions as far as I know, although I think it
can be done fairly trivially (famous last words) using the existing
ClojureScript compiler.  I'd love to see it done as an open source
project.

-- 
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


Re: ANN: a Clojure docs site, and github organization

2012-10-04 Thread Michael Fogus
> Starting two different projects at the same time with almost the same
> purpose seems a waste of efforts...
> Wouldn't it be better for readevalprintlove and clojuredocs to join forces
> from the beginning?

All information should be freely available, so the sharing aspect is
present from the start.  As for wasted effort I would say that any
effort in this direction is a plus, but your point is valid. We're all
friends right?  It'll work out for the best for Clojure I'm sure.

-- 
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


Re: ANN: a Clojure docs site, and github organization

2012-10-04 Thread Michael Fogus
> readevalprintlove looks like a fancy playground so far.

You say that as if it's a bad thing.  I'm of the opinion that these
kinds of efforts should have a low barrier to contribution and be fun.
It's difficult to motivate people to perform a thankless task, so it
should seem like play as much as possible along the way.

-- 
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


Re: Regarding Starting Clojure

2012-10-04 Thread Michael Fogus
> Here's one approach: Make a github of the code and content that runs the 
> site. People fork and make pull requests.

You talked me into it.

https://github.com/fogus/www-readevalprintlove-org

-- 
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


Re: Some feedback on clojurescript

2012-09-19 Thread Michael Fogus
> Yep. I think ClojureScript's appeal could be much, much broader than it
> currently is but there are lots of things to iron out first.

The least of which is a plan for distribution and development workflow.

-- 
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


Re: edn

2012-09-07 Thread Michael Fogus
> Is this too Clojure specific ?

I wouldn't say so.  By definition the definitions of list,
vector/array and set encompass the behavior in question. I think
people are getting too wrapped up by the textual representations where
the forms (1 2 3) [1 2 3] and #{1 2 3} look fairly similar. By nature
however, they're not as similar as they look.

-- 
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


Re: edn

2012-09-07 Thread Michael Fogus
> Sure. Languages. This is a data format, not a language.

Data formats do not exist in a vacuum.  They are parsed by languages.
Some may have a fine-grained distinction between lists, arrays/vectors
and sets and some may not.

> Why should I not inflate a edn-list into a vector in my language?

What's stopping you? As long as you provide a way to get back to the
original formats that's up to you.  People may not use your library if
all of their (1 2 3)s become [1 2 3]s after passing through town.

> What if I don't have a random access thing handy

I would care less about true random access than the ability to
round-trip properly.

-- 
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


Re: function parameters were working, and now I suddenly get a cast error

2012-08-28 Thread Michael Fogus
The ctor call for ServerSocket should be (ServerSocket. port "localhost").

-- 
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


ANN: core.cache v0.6.2

2012-08-14 Thread Fogus


core.cache v0.6.2 Release Notes
===

Source code and README at https://github.com/clojure/core.cache

Wiki (in progress) at https://github.com/clojure/core.cache/wiki

core.cache is a Clojure contrib library providing the following features:

Overview



* An underlying `CacheProtocol` used as the base abstraction for implementing 
new synchronous caches

* A `defcache` macro for hooking your `CacheProtocol` implementations into the 
Clojure associative data capabilities.

* Immutable implementations of some basic caching strategies
  - First-in-first-out (FIFOCache)
  - Least-recently-used (LRUCache)
  - Least-used (LUCache)
  - Time-to-live (TTLCache)
  - Soft-Reference cache (SoftCache)
  - Naive cache (BasicCache)

* Implementation of an efficient buffer replacement policy based on the *low 
inter-reference recency set* algorithm (LIRSCache) described in the 
[LIRS](http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.2184) paper

* Factory functions for each existing cache type

Quick example

-


(require '[clojure.core.cache :as cache])

(def C (cache/fifo-cache-factory {:a 1, :b 2})

(if (cache/has? C :c)
  (cache/hit C :c)
  (cache/miss C :c 42))

;=> {:a 1, :b 2, :c 42}

(cache/evict C :b)

;=> {:a 1}

Absorb
--

You can use core.cache in your 
[Leiningen](https://github.com/technomancy/leiningen) and 
[Cake](https://github.com/flatland/cake) projects with the following 
`:dependencies` directive in your `project.clj` file:

[org.clojure/core.cache "0.6.2"]

For Maven-driven projects, use the following slice of XML in your `pom.xml`'s 
`` section:


  org.clojure
  core.cache
  0.6.2



Changes from v0.6.1
---

The v0.6.2 version of core.cache contains the following changes:

* Removed reflection warnings.

* Bug fix for LRU, LU and TTL caches disabling the eviction of duplicate keys 
prior to a threshold less than three.

* FIFOCache respects threshold prior to applying its eviction policy.


-- 
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

Re: core.cache 0.6.2 is not available from Central

2012-08-08 Thread Michael Fogus
For the record I do not mind (and much prefer) to list the latest
stable release in the README. No problem.  In this case I made the
change, scheduled the release, and went somewhere else.  As it turns
out the release process is wonky so 0.6.2 has not yet made it out.
The previous version is now listed until the latest version makes it
out.

-- 
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


Re: core.cache 0.6.2 is not available from Central

2012-08-07 Thread Michael Fogus
> core.cache README currently recommends installing 0.6.2:

The README predates the push to Maven Central and it looks like the
release failed.  I will try again, but it'll be a bit before it makes
it to Central.

-- 
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


Re: ClojureScript reader and timestamps

2012-08-03 Thread Michael Fogus
The revenge of octal!  I believe there is a patch for this on master
and I may have gone out in the latest CLJS push.

-- 
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


ANN: core.cache version 0.6.1 (SoftCache + bug fixes)

2012-07-13 Thread Fogus
core.cache v0.6.1 Release Notes
===

core.cache is a new Clojure contrib library providing the following 
features:

* An underlying `CacheProtocol` used as the base abstraction for 
implementing new synchronous caches

* A `defcache` macro for hooking your `CacheProtocol` implementations into 
the Clojure associative data capabilities.

* Immutable implementations of some basic caching strategies
  - First-in-first-out (FIFOCache)
  - Least-recently-used (LRUCache)
  - Least-used (LUCache)
  - Time-to-live (TTLCache)
  - Soft-Reference cache (SoftCache)
  - Naive cache (BasicCache)

* Implementation of an efficient buffer replacement policy based on the 
*low inter-reference recency set* algorithm (LIRSCache) described in the 
[LIRS](http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.116.2184) 
paper

* Factory functions for each existing cache type

Absorb
--

You can use core.cache in your 
[Leiningen](https://github.com/technomancy/leiningen) and 
[Cake](https://github.com/flatland/cake) projects with the following 
`:dependencies` directive in your `project.clj` file:

[org.clojure/core.cache "0.6.1"]

For Maven-driven projects, use the following slice of XML in your 
`pom.xml`'s `` section:


  org.clojure
  core.cache
  0.6.1


Enjoy!


Places
--

* [Source code](https://github.com/clojure/core.cache)
* [Ticket system](http://dev.clojure.org/jira/browse/CCACHE)
* 
[Announcement](http://groups.google.com/group/clojure/browse_frm/thread/69d08572ab265dc7)
* [API Reference](https://clojure.github.com/core.cache)
* [Examples and documentation](https://github.com/clojure/core.cache/wiki) 
(work in progress)

Changes from v0.5.0
---

The v0.6.1 version of core.cache contains the following changes:

* The addition of a cache built on Java soft references

* Bug fix for LRU and LU caches disabling the eviction of duplicate keys 
prior to threshold.

* The factory function optional argument named `:limit` was changed to 
`:threshold`.

* The default thresholds set by the factory functions were adjusted.

Plans
-

The following capabilities are under design, development, or consideration 
for future versions of core.cache:

* Make ClojureScript compatible
* Asynchronous caching protocol
* FunCache implementation
* `LIRSCache evict`
* Hardening of the `seed` function implementations
* test.generative usage
* Deprecation of Clache
* More documentation and examples

More planning is needed around capabilities not listed nor thought of.

Thanks
--

I would like to thank Paul Stadig for his work in fixing the `SoftCache` 
implementation.

-- 
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

Re: core cache/memoize issue?

2012-07-11 Thread Michael Fogus
Thank you for the report. I have a fix for the LRU/LU caches on my box
and will have it out in the next day or so. The core.memoize changes
will follow soon after.

-- 
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


Re: Including core.cache in clojurescript?

2012-07-05 Thread Michael Fogus
It looks like the presence of the defcache macro in the core.cache
namespace is causing mass confusion. I'm not familiar with the way
that crossovers work, so it's not apparent to me how this might be
fixed. Any suggestions?

-- 
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


Re: Including core.cache in clojurescript?

2012-07-04 Thread Michael Fogus
What are the nature of the warnings?  I suspect there will be issues
with the use of Java classes in some cache impls, but they should be
OK if you do not use them.

-- 
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


Re: Using core.logic at a lower level

2012-06-29 Thread Michael Fogus
> Of course all that machinery exists in core.logic and I think I
> identified most of it, but those interfaces don't look like they were
> meant to be used "from the outside". I certainly don't want to fix my
> code with every new release of core.logic. That's why I am looking
> for something more official.

It's not a total solution to all of your requirements, but core.unify
is meant for use as a library.  See
https://github.com/fogus/unifycle/blob/master/src/fogus/unifycle.clj
for examples.

-- 
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


Re: clojure.core.cache status?

2012-06-16 Thread Michael Fogus
Great news. Let me know what you find (or don't find).

-- 
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


Re: clojure.core.cache status?

2012-06-15 Thread Michael Fogus
Well, I've tried to cut a release today, but the Hudson build is
complaining about git connection errors. I will try again later today.

-- 
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


Re: clojure.core.cache status?

2012-06-15 Thread Michael Fogus
> and I'm wondering how stable the APIs are and how close a 0.6.0
> release might be?

Very very close. In fact, I will cut a release some time today.

-- 
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


ANN: Marginalia v0.7.1

2012-06-08 Thread Fogus
Marginalia v0.7.1 Release Notes
===

Marginalia is an ultra-lightweight literate programming tool for Clojure 
and ClojureScript inspired by [docco](http://jashkenas.github.com/docco/)*.

To get a quick look at what the output looks like, [visit the official 
Marginalia website](http://fogus.me/fun/marginalia/).

**Usage notes and examples are found on the [Marginalia Github 
page](http://github.com/fogus/marginalia).**

Places
--

* [Source code](https://github.com/fogus/marginalia)
* [Ticket system](https://github.com/fogus/marginalia/issues)
* [manifesto](http://blog.fogus.me/2011/01/05/the-marginalia-manifesto/)

Changes from v7.0.0
---

### lein-marginalia

As always, the prefered way to use Marginalia to generate your 
documentation is via the 
[lein-marginalia](http://github.com/fogus/lein-marginalia) Leiningen 
plugin, like so:

:dev-dependencies [[lein-marginalia "0.7.1"]]

To run Marginalia, simply run `lein marg  ` in your 
project's directory.

### Multidoc Generation

Marginalia has long supported the generation of documentation where each 
namespace is contained in its own HTML file. This feature is finally 
exposed via the command-line/Lein interface and executed as `lein marg 
--multi  `.

### Bug fixes

* As found in enabling `--multi`
* Minor stylistic changes in the generated documentation
* More information in the project README

Plans
-

The following capabilities are under design, development, or consideration 
for future versions of Marginalia:

* Nicer looking `toc.html` generation in `--multi` mode output.
* protocol docstring support
* Stand-alone application
* Explore the possibility of leveraging the 
[ClojureScript](http://github.com/clojure/clojurescript) analyzer.
* Explore the possibility of leveraging 
[sjacket](https://github.com/cgrand/sjacket)
* More documentation and examples

More planning is needed around capabilities not listed nor thought of.

-- 
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

Re: Alan Kay talk

2012-04-24 Thread Michael Fogus
> In relation to Clojure, are there lessons to learn from the Meta
> language he mentioned? Does anyone have references to it?

I have looked at it a bit, it's called META-II.  Some info below:

* http://en.wikipedia.org/wiki/META_II
* http://www.bayfronttechnologies.com/mc_tutorial.html
* http://www.bayfronttechnologies.com/metaii.html

Some interesting languages related to META-II include OMeta and TMG,
both worth exploring.

> Could we write the mathematics of ACID and STM and then
> derive correct, small implementations? Alan Kay makes a
> compelling argument that this could change the game.

So interesting! My brain hurts thinking about this.

-- 
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


Re: Term rewriting systems implemented in Clojure

2012-04-20 Thread Michael Fogus
I have a bit of a rewrite system built on core.unify at
https://github.com/fogus/unifycle, but it's far from comprehensive.

-- 
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


[ANN]: Trammel (contracts programming) v0.7.0

2012-04-06 Thread Fogus
What it is
--

Trammel is a [Clojure](http://clojure.org) providing contracts programming 
(sometimes called "[Design by 
Contract](http://en.wikipedia.org/wiki/Design_by_Contract)" or DbC) 
capabilities.  Features of Trammel currently include:

* Contracts on functions
* Composable contracts
* Post-definition function contract application
* defrecord and deftype invariants
* Reference type invariants (i.e. Agents, Atoms, Refs, and Vars)
* Ability to turn-off checks in a production setting
* Support for Clojure versions 1.3 and 1.4

Trammel is inspired by [Eiffel](http://www.eiffel.com/) and [Racket 
Scheme](http://docs.racket-lang.org/reference/contracts.html).

Absorb
--

You can use Trammel in your 
[Leiningen](https://github.com/technomancy/leiningen) and 
[Cake](https://github.com/flatland/cake) projects with the following 
`:dependencies` directive in your `project.clj` file:

[trammel "0.7.0]

For Maven-driven projects, use the following slice of XML in your 
`pom.xml`'s `` section:


  org.clojure
  trammel
  0.7.0


Enjoy!


Places
--

* [Source code](https://github.com/fogus/trammel)
* [Ticket system](https://github.com/fogus/trammel/issues)
* [Examples and documentation](http://fogus.github.com/trammel/) -- in 
progress
* [Dream Date](http://github.com/fogus/dream-date) - an example project 
using Trammel -- in progress

Changes from version 0.6.0
--

* Better assertion error reporting
* Ability to add constraint descriptions used in assertion reporting
* Constrained defrecords no longer support default field values
* Constrained defrecords no longer generate keyword args ctor function
* Reference type invariants

Reference type invariants work in the following ways.

### Atoms

Atoms are created directly with their invariants:



(def a (constrained-atom 0
 "only numbers allowed"
 [number?]))

@a 
;=> 0



And checked on change:



(swap! a inc)
;=> 1



Invariant violations are reported right away:



(swap! a str)
; Pre-condition failure: only numbers allowed 

(compare-and-set! a 0 "a")
; Pre-condition failure: only numbers allowed 


### Refs

Refs are created directly with their invariants:



(def r (constrained-ref 0
 "only numbers allowed"
 [number?]))



And also checked on change, within a transaction:



(dosync (alter r inc))
;=> 1

(dosync (alter r str))
; Pre-condition failure: only numbers allowed 



### Vars

Vars are created directly with their invariants:



(defconstrainedvar ^:dynamic foo 0
  "only numbers allowed in Var foo"
  [number?])



Var invariants are checked on rebinding, such as with `binding`:



(binding [foo :a] [foo])
; Pre-condition failure: only numbers allowed 



### Agents

Agents are created directly with their invariants:



(def ag (constrained-agent 0
 "only numbers allowed"
 [number?]))



And are checked on `send` and `send-off`

(send ag str)
(agent-error ag)

However, the invariant violations are reported consistently with the agent 
setup. In this case, the errors are accessible via the `agent-error` 
function.


Plans
-

The following capabilities are under design, development, or consideration 
for future versions of Trammel:

  - Contracts for higher-order functions
  - Better error messages
  - `defconstraint` -- with ability to relax requires and tighten ensures
  - Modify macros to also allow regular Clojure constraint maps
  - Allow other stand-alones: true/false, numbers, characters, regexes
  - Marrying test.generative with Trammel
  - More documentation and examples

More planning is needed around capabilities not listed nor thought of.

-- 
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

ANN: Himera

2012-03-27 Thread Fogus
ClojureScript compilation as service.

Some background and deeper 
discussion: 
http://blog.fogus.me/2012/03/27/compiling-clojure-to-javascript-pt-3-the-himera-model/

Himera itself: http://himera.herokuapp.com/

Source (patches welcomed): https://github.com/fogus/himera

Feedback welcomed.

-- 
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

Re: clojure url exception

2012-03-19 Thread Michael Fogus
Explanation/clarification added to the ticket.

-- 
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


Re: ANN: Marginalia v0.7.0

2012-03-06 Thread Fogus

>
> CORRECTION: def form should be
>
>
(def a-var "The docstring" value) 

-- 
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

ANN: Marginalia v0.7.0

2012-03-06 Thread Fogus


Marginalia v0.7.0 Release Notes
===

Marginalia is an ultra-lightweight literate programming tool for Clojure 
inspired by [docco](http://jashkenas.github.com/docco/)*.

To get a quick look at what the output looks like, [visit the official 
Marginalia website](http://fogus.me/fun/marginalia/).

**Usage notes and examples are found on the [Marginalia Github 
page](http://github.com/fogus/marginalia).**

Places
--

* [Source code](https://github.com/fogus/marginalia)
* [Ticket system](https://github.com/fogus/marginalia/issues)
* [manifesto](http://blog.fogus.me/2011/01/05/the-marginalia-manifesto/)

Changes from v6.0.1
---

### lein-marginalia

Version 0.7.0 is an attempt to move toward Marginalia as library only.  
Therefore, the Leiningen support has been pulled out and placed into its own 
plugin named [lein-marginalia](http://github.com/fogus/lein-marginalia).  To 
use Marginalia to generate documentation for your own projects you should no 
longer reference Marginalia in your `project.clj`.  Instead, use 
lein-marginalia in your `:dev-dependencies` section like so:

:dev-dependencies [[lein-marginalia "0.7.0"]]

Leiningen will pull in the proper Marginalia version.  We will attempt to keep 
the version numbers in sync.

### ClojureScript support

Marginalia will now discover and parse ClojureScript files.

### def docstrings

Clojure 1.3 allows docstrings in `def` forms that look like:

(def a-var value "The docstring")

Marginalia will recognize this pattern and generate the associate documentation.

### Wildcard arguments

Marginalia will accept wildcard arguments in place of absolute source paths.  
For example, to generate docs for all source files with an 'r' in the name, you 
could type:

lein marg src/**/*r*.clj

You can pass any number of arguments to the `marg` task.

### Bug fixes

* Prefixed keywords (#54 and #87)
* [`project.clj` requirement](https://github.com/fogus/marginalia/issues/20)
* [`^:private support`](https://github.com/fogus/marginalia/issues/49)
* [Comment code blocks](https://github.com/fogus/marginalia/issues/50)
* [`:requires` bug](https://github.com/fogus/marginalia/issues/55)


Plans
-

The following capabilities are under design, development, or consideration for 
future versions of Marginalia:

* protocol docstring support
* Stand-alone application
* Explore the possibility of leveraging the 
[ClojureScript](http://github.com/clojure/clojurescript) analyzer.
* More documentation and examples

More planning is needed around capabilities not listed nor thought of.


-- 
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

Re: [ANN] mcache 0.2.0 released

2012-02-29 Thread Michael Fogus
>  3. Added a core.cache/CacheProtocol implementation

This is great news.  Thank you for taking the time to do this.  I
would love to know how core.cache helped and hindered you.

-- 
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


ANN: ClojureScript Cheatsheet

2012-02-15 Thread Fogus
I've created a ClojureScript cheatsheet.  It's a high-level overview and 
not meant to cover every capability.

The repo is at: https://github.com/fogus/clojure-cheatsheets

The PDF is 
at: 
https://github.com/fogus/clojure-cheatsheets/blob/master/pdf/cljs-cheatsheet.pdf?raw=true

Feedback and nicer design ideas welcomed.

-- 
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

ANN: ring-clj-params

2012-02-15 Thread Fogus
# What is it?

A Ring <https://github.com/mmcgrana/ring> middleware that augments :params 
according to a parsed Clojure <http://clojure.org/> data literal request 
body.

# Where is it?

https://github.com/fogus/ring-clj-params

# Leiningen Usage

In your :dependencies section add the following:
[ring-clj-params "0.1.0"]

# More information

http://blog.fogus.me/2012/02/15/announcing-ring-clj-params/

-- 
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

Re: SoftCaching in core.cache

2012-02-01 Thread Fogus
Oddly enough it was leaking memory, but suspect it had to do with the
queue reaper.  I'd think that what's in Clache needs only a little
work.  Patches welcomed.

-- 
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


Re: Literate programming in emacs - any experience?

2012-02-01 Thread Fogus
I would love to see your .emacs setup around these tools.

-- 
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


Re: Clojurescript One: distinguishing event sources / multiple widget instances

2012-01-18 Thread Michael Fogus
> it might need something like efficient predicate dispatch to scale.

It definitely needs something like that.  I was hoping you'd be done
by now.  ;-)

-- 
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


Re: ANN: ClojureScript property access syntax

2012-01-13 Thread Fogus
FYI: You can see my changes to ClojureScript One at
https://github.com/brentonashworth/one/tree/props  and those to Domina
at 
https://github.com/fogus/domina/commit/cc2ee723b28fd3de6023156cab23b86daaa72210

-- 
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


Re: ANN: ClojureScript property access syntax

2012-01-13 Thread Fogus
Notes from the trenches.

I successfully migrated both ClojureScript One and Domina to the new
syntax in about ~35 minutes (including tests).  I had an unfair
advantage having worked on the ClojureScript change, but for your own
purposes the following techniques for migration should help:

- length and innerHTML properties are prevalent and should all change
to -length and -innerHTML outright

- Using the aforementioned warning messages displayed by the
ClojureScript compiler will help to pinpoint possible old-style
property accesses.  It will not always be accurate in identifying a
prop lookup, but it helps to double check.

- Calls to set! take a "place" as their first argument.  These are
often property slots of the form (set! (. an-obj -aprop) 42).  These
"places" should be double checked.

- As a sanity check I checked every dot macro call [1] and just made
sure that a property access was formed properly.

And that's it.
Enjoy


[1]: i.e. I searched for "(\." in Emacs and looked at the found code.

-- 
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


ANN: ClojureScript property access syntax

2012-01-13 Thread Fogus
I've just merged to ClojureScript master the new property lookup
syntax as outlined in the ticket http://dev.clojure.org/jira/browse/CLJS-89
and the design page at 
http://dev.clojure.org/display/design/Unified+ClojureScript+and+Clojure+field+access+syntax.
This is a potentially *breaking* change to existing ClojureScript
apps.  To help mitigate moving to the new syntax, the ClojureScript
compiler will print a warning any time it encounters a dot call in the
form of (.foo obj) or (. obj foo).  This is a temporary warning and
due for removal sometime before ClojureScript comes out of alpha. For
those curious, the change is summarized as follows:

 (.p o)   ;=> a method call

(.m o );=> a method call

(. o p)  ;=> a method call

(. o p )   ;=> a method call

(. o (m));=> a method call

(. o (m )) ;=> a method call

(. o -p) ;=> a property access

(.-p o)  ;=> a property access

ClojureScript will now stick strictly to these semantics.  As an added
bonus the latest Clojure alpha release (1.4.0-alpha4) contains a *non-
breaking* addition to Clojure to allow the same kind of property-
specific access syntax.  Nothing else regarding Clojure's dot interop
form has changed.

I will take it on myself to update the ClojureScript One source code
to see if there are any further complications to migration that I
might have missed.  I will report my findings in this thread.

Thanks

-- 
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


Re: Problem with :pre checks against nil in 1.3.0?

2012-01-09 Thread Michael Fogus
Try to put your :pre entries in a vector, like so:

{:pre [(not= 0 (mp k 0))]}

-- 
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


Re: ANN: core.unify v0.5.2

2012-01-09 Thread Michael Fogus
> You have to pitch people on the potential benefits of downloading your
> library *before* they click the download link for it, or they mostly
> never will.

Sold.  I've learned my lesson.

-- 
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


Re: ANN: core.unify v0.5.2

2012-01-09 Thread Michael Fogus
> unify, but I have no idea where to begin! Having short description and some
> simple use cases in announce would be great.

I do not disagree. Those elements will be in place by the 1.0.0
release (as listed in the "planned" section).  In the meantime,
patches welcomed.

-- 
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


Re: ANN: core.unify v0.5.2

2012-01-09 Thread Michael Fogus
> Not really, not with a single fairly generic word like "unification".

In the amount of time that you spent lecturing me on good library
release note practices you could have learned what unification was,
read the code, and decided if it filled any of your needs.

Hint.  My library has very little if nothing to do with Star Trek.

-- 
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


Re: ANN: core.unify v0.5.2

2012-01-09 Thread Michael Fogus
> Yes, but what exactly are these "unification binding, subst, and
> unification functions"?

This is information that seems a bit odd to include in a set of
release notes, but I suppose a link to where such information could be
found is warranted.

> In other words, I'm a developer. I have some concrete problems. Which
> of those can this library help solve, and how?

I have no idea what kinds of problems you're trying to solve.

> Unfortunately, the description you provided seems to use solution
> domain language only, not problem domain. Someone who doesn't know
> what this unification stuff is all about won't have any idea whether
> or how this library might be useful to them.

This is a 0.5.2 set of release notes meant as information for people
currently using the library.  If you want more information on
unification then you'll need to wait until a later release.  Google
also helps too. :-)

-- 
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


ANN: core.unify v0.5.2

2012-01-09 Thread Fogus
core.unify v0.5.2 Release Notes
===

core.unify is a Clojure contrib library providing the following
features:

* Factory functions for constructing unification binding, subst, and
unification functions, with or without occurs checking

* Packaged functions for unification binding, subst, and unification
functions, with or without occurs checking, recognizing variables
tagged as symbols prefixed with `?` characters

core.unify is based on a library named Unifycle, found at
http://github.com/fogus/unifycle that has been deprecated.

This is likely the last release before the performance work begins.

Absorb
--

You can use core.unify in your [Leiningen](https://github.com/
technomancy/leiningen) and [Cake](https://github.com/flatland/cake)
projects with the following `:dependencies` directive in your
`project.clj` file:

[org.clojure/core.unify "0.5.2"]

For Maven-driven projects, use the following slice of XML in your
`pom.xml`'s `` section:


  org.clojure
  core.unify
  0.5.2


Enjoy!

Places
--

* [Source code](https://github.com/clojure/core.unify)
* [Ticket system](http://dev.clojure.org/jira/browse/UNIFY)
* [Examples and documentation](http://fogus.me/fun/unifycle) -- in
progress


Changes from version 0.5.1
--

* Removed all reflection warnings in the code. (thanks goes to André
Thieme for pointing them out)
* More tests around common unification edge cases.

Plans
-

The following capabilities are under design, development, or
consideration for future versions of core.unify:

* High-performant unification based on unrolling recursive
backtracking into polymorphic calls
* Iterative unification option
* Boolean unification
* Implicit variable recognition option(s)
* More examples
* More documentation

More planning is needed around capabilities not listed nor thought of.

-- 
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


Re: Two Slightly Different Versions Using lazy-seq: One works, One doesn't. Why?

2012-01-08 Thread Michael Fogus
See my answer in the other, seemingly identical thread.

-- 
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

Re: Trying to understand variable capture

2012-01-08 Thread Michael Fogus
The names in the first let only exist at compile time and do not exist when
the expanded form eventually runs.

-- 
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

Re: Odd Behavior of lazy-seq

2012-01-08 Thread Michael Fogus
It looks like you're trying to take from the function fibseq2 itself rather
than the result of the function call.  Try taking fron the invocation of it
instead (I.e. put parens around it):

-- 
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

Re: Bug with ClojureScript keyword? function

2012-01-08 Thread Michael Fogus
In the compiled code it looks like the call to keyword? Is happening in
both cases.  Wires are definitely crossed, but it's unclear where.  Are you
certain that the ClojureScript shown is the same code that gets compiled?

-- 
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

Re: Codox: an API doc generator for Clojure

2012-01-04 Thread Fogus
> It might be an idea to figure out some standard syntax we could use,
> like Markdown, that could be used for formatting docstrings.

My vote is for Markdown as well.

-- 
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


Re: Clojure list syntax sugar: f(x) notation

2011-12-30 Thread Michael Fogus
> Lisp experts don't quite understand

It's certainly possible.   It wouldn't be the first time that Lispers
missed the forest for the trees.  However, let's turn it around for a
moment and ask another question: why is it that some newcommers year after
year think that the choice of this syntax is arbitrary?

Another question is this: can you think of anything that the Lisp syntax
facilitates -- besides simplified parsing?

-- 
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

Re: Clojure list syntax sugar: f(x) notation

2011-12-29 Thread Michael Fogus
Better yet we can say that function calls and forms always start with a
symbol and end with punctuation or some natural delimiter.  So we could
write things like:

defn f [x]
  println "hi"!
  42;
.

doseq [e range 10 20]
   f e;
.

map fn [x] Math/pow x 2.0, range 10.

if even 3?
  :even
  :odd.

No need for parens at all!

-- 
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

ANN: core.memoize v0.5.1

2011-12-14 Thread Fogus
core.memoize v0.5.1 Release Notes
=

core.memoize is a new Clojure contrib library providing the following
features:

* An underlying `PluggableMemoization` protocol that allows the use of
customizable and swappable memoization caches that adhere to the
synchronous `CacheProtocol` found in [core.cache](http://github.com/
clojure/core.cache)

* Memoization builders for implementations of common caching
strategies, including:
  - First-in-first-out (`memo-fifo`)
  - Least-recently-used (`memo-lru`)
  - Least-used (`memo-lu`)
  - Time-to-live (`memo-ttl`)
  - Naive cache (`memo`) that duplicates the functionality of
Clojure's `memoize` function

* Functions for manipulating the memoization cache of `core.memoize`
backed functions

core.memoize is based on a library named Unk, found at  that is planned for deprecation.

* [Source code](https://github.com/clojure/core.memoize)
* [Ticket system](http://dev.clojure.org/jira/browse/CMEMOIZE)

Changes from Unk
---

The v0.5.1 version of core.memoize is based almost wholly on the final
version of Unk, with the following changes:

* All cache factory functions have been moved to core.cache
* The `SoftCache` backed implementation was buggy and removed for now

Plans
-

The following capabilities are under design, development, or
consideration for future versions of core.memoize:

* LIRS backed memoization
* A [defn-memo](https://github.com/richhickey/clojure-contrib/blob/
1c805bd0e515ea57028721ea54e6db4b0c791e20/src/main/clojure/clojure/
contrib/def.clj#L143) macro
* A [MapMaker](http://google-collections.googlecode.com/svn/trunk/
javadoc/com/google/common/collect/MapMaker.html) style ctor interface
* Reimplementation of a cache based on soft references
* test.generative usage
* Deprecation of Unk
* Documentation and examples

More planning is needed around capabilities not listed nor thought of.

-- 
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


ANNOUNCEMENT: core.cache version 0.5.0

2011-12-13 Thread Fogus
core.cache v0.5.0 Release Notes
===

core.cache is a new Clojure contrib library providing the following
features:

* An underlying `CacheProtocol` used as the base abstraction for
implementing new synchronous caches

* A `defcache` macro for hooking your `CacheProtocol` implementations
into the Clojure associative data capabilities.

* Immutable implementations of some basic caching strategies
  - First-in-first-out (FIFOCache)
  - Least-recently-used (LRUCache)
  - Least-used (LUCache)
  - Time-to-live (TTLCache)
  - Naive cache (BasicCache)

* Implementation of an efficient buffer replacement policy based on
the *low inter-reference recency set* algorithm (LIRSCache)

* Factory functions for each existing cache type

core.cache is based on a library named Clache, found at 
http://github.com/fogus/clache
that is planned for deprecation.

Places
--

* [Source code](https://github.com/clojure/core.cache)
* [Ticket system](http://dev.clojure.org/jira/browse/CCACHE)
* Examples and documentation -- in progress

Changes from Clache
---

The v0.5.0 version of core.cache is based almost wholly on the final
version of Clache, with the following changes:

* An addition of an `evict` function on the `CacheProtocol` used to
explicitly remove a value from a cache based on a key.  All of the
existing cache types implement this function *except* for `LIRSCache`.

* The addition of cache factory functions for all of the existing
cache types

* The associative structure behaviors are defined solely in terms of
the underlying `CacheProtocol`

* The `SoftCache` implementation was buggy and removed for now

Plans
-

The following capabilities are under design, development, or
consideration for future versions of core.cache:

* Asynchronous caching protocol
* `LIRSCache evict`
* Removal of the `seed` function from the `CacheProtocol`
* Reimplementation of a cache based on soft references
* test.generative usage
* Deprecation of Clache
* Documentation and examples

More planning is needed around capabilities not listed nor thought of.

-- 
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


Re: Clojure Koan-Engine 0.1.1

2011-12-05 Thread Fogus
Really great.  Looking forward to boring everyone with contracts-
koans.  The next step is to have this project spit out a 4clojure-
esque site automatically.  ;-)

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-11-07 Thread Michael Fogus
> Well, despite my best efforts I'm unable to edit the spreadsheet.

I invited you to edit with the literatesoftware address but
unfortunately I do not know how that might work without a Gmail
account... apparently not at all.  Apologies.  I am certain that a BOF
schedule board will appear somehow.

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-11-07 Thread Michael Fogus
Organizers,

I've added time/room columns.  Please fill in your desired values.

There is bound to be some overlap, but we're all friends here so I
suspect that shifting can be worked out. :-)

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-11-04 Thread Michael Fogus
> Any thoughts about when / where these events can take place?

At this point it would be great if a Conj-planning heavyweight could
step in and provide some additional ideas... although solutions would
be great too.  :-)

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-10-31 Thread Fogus
I've added everyone to this thread as an editor of the spreadsheet.
Please feel free to add yourself and your sessions at your leisure.

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-10-26 Thread Michael Fogus
I've given edit rights to organizers and people on this thread, so
please feel free to make additions and modifications.  :-)

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-10-25 Thread Michael Fogus
We built quite a large list before the internet graffiti started
taking over, so if you have an addition then please post it here and
it'll be added.

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-10-25 Thread Fogus
> BTW, is this meant to be editable by anyone else? Or are you going to
> collect the ideas off this thread and enter them?

It should be editable by anyone with a Google account.  Please let me
know if that's not the case.

-- 
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


Re: Clojure Conj extracurricular activities spreadsheet

2011-10-25 Thread Fogus
Please note that nothing is too humble!  If you have a cool piece of
code or technique that you'd like to show off for 10 minutes then by
all means put it on the spreadsheet.

-- 
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


Clojure Conj extracurricular activities spreadsheet

2011-10-25 Thread Fogus
All,

We talked about the possibility of getting some ideas about
extracurricular activities during the Conj days (and possibly training
days).  I've created a spreadsheet at the link below to collect
ideas.  It is not my intention to be the organizer of these
activities.  Instead, if you have an idea then please be prepared to
own it.  The matter of space for these activities would need to be
worked out by Conj planners or activity organizers, but having a list
would help that process.

https://docs.google.com/spreadsheet/ccc?key=0Alim_jfrt24MdDFqZVZsNW0tamtQR2pPTHJZTkN6Y0E&hl=en_US

I've entered an example, feel free to add your own ideas. :-)

This should be epic.

-- 
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


Re: Rich Hickey: "Simple Made Easy" from Strange Loop 2011

2011-10-21 Thread Michael Fogus
> nil complects non-existence, false, and empty.

Let's explore that a little further:

* Non-existence
  - Accessing a local or var that has never been declared
* False
  - (if nil :never-here :but-here)
* Empty
  - (seq [])

And maybe there is another?

* Not set
  - (def x)
  - (:x {:a 1})

But which one should nil actually mean?  Given a green-field scenario that is.

I can definitely see where you're going, but I wonder if the use of
nil in Clojure is the result of a cost/benefit analysis in relation to
Java interop?

-- 
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


Re: Type hints and records

2011-10-19 Thread Michael Fogus
Another potential option is to implement a record toString method:

(defrecord Rec [^Integer i]
  Object
  (toString [_] (str i)))

(str (Rec. 42))
;=> "42"

-- 
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


Re: "ClojureScript Mobile" BOF at the Clojure/conj?

2011-10-18 Thread Michael Fogus
> Anyone from the Clojure/conj org committee

While I'm not on the organization committee, I will say that
side-events like this would be spectacular.  The logistics escape me
at the moment, but perhaps spontaneity is the best approach?

-- 
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


[ClojureScript]: Breaking change coming WRT object property access syntax

2011-10-14 Thread Fogus
The ticket http://dev.clojure.org/jira/browse/CLJS-89 and the design
page
http://www.google.com/url?sa=D&q=http://dev.clojure.org/display/design/Unified%2BClojureScript%2Band%2BClojure%2Bfield%2Baccess%2Bsyntax
describe the details of the change in ClojureScript.

I would like to make this change (and the related Clojure changes)
sooner rather than later to avoid maximal pain.  Breaking changes
stink, but I think that this particular change justifies the cost at
this stage.

Thoughts?

Thanks
:F

-- 
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


Re: NodeJS REPL

2011-10-12 Thread Michael Fogus
David's right about :nodejs. Thank you for this contribution.  I can't wait
to play around with it.  If some ideas come to mind I will provide feedback.

-- 
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

Re: docs for 1.3

2011-10-04 Thread Fogus
> (it doesn't help that this is now a child page of Release.Next
> Planning which now refers to Clojure 1.4!)

Good catch.  That was my fault.  It's now nested under the Core page
in the same space.

> Improving documentation looks to be a focus of Clojure 
> 1.4:http://dev.clojure.org/display/design/Release.Next+Planning

Indeed.
:F

-- 
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


  1   2   >