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 a...@puredanger.com 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ł
lemniskata.bernoull...@gmail.com 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 rbr...@gmail.com 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 richhic...@gmail.com 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.


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 krisajenk...@gmail.com 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.


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 twash...@gmail.com 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: 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 twash...@gmail.com 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 mefo...@gmail.com 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 twash...@gmail.com
 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: [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 a...@puredanger.com 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: *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 (the actual + function 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: *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 mefo...@gmail.com wrote:
 RuntimeException EvalReader not allowed when *read-eval* is false.

 The problem is that the second eval gets (the actual + function 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: 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: 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 christo...@cgrand.net 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 b.gh...@gmail.com
 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 momeriqb...@gmail.com 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: 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: 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'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: (#({: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 kfjwhee...@gmail.com 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 ste...@obua.de 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
 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: 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: 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

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


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


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


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


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


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


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

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


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: apply func

2011-09-25 Thread Michael Fogus
 why inc can't take each element and incr it giving the result  ... 2 3 4 5
 thanks in advance

apply works as if you were calling the function with the elements of
the vector.  In other words:

  (apply inc [1 2 3 4 5) ==is like saying=== (inc 1 2 3 4 5)

Which is not what you want.

However, the following will with each individual element in the
vector, call a function and return a new sequence with the results in
each subsequent slot:

  (map inc [1 2 3 4 5]
  ;= (2 3 4 5 6)

-- 
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 closure problem?

2011-09-22 Thread Michael Fogus
 the body of loop in a function to preserve bindings if other fns are
 discovered that close over them so as to avoid introducing a perf hit.

It would be interesting to see if GClosure is smart enough to deal
with the naive implementation.  I know what I'll experiment on
tomorrow.  :-)

-- 
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: Downloadable ClojureScript demo?

2011-08-05 Thread Michael Fogus
There is nothing ClojureScript specific as a LabRepl type of learning tool;
however, there is a samples directory in the
http://github.com/clojure/clojurescript repo with a couple of projects to
play with.  The ClojureScript ecosystem is in its infacy, but more will
come. :-)
On Aug 5, 2011 12:39 PM, Base basselh...@gmail.com wrote:
 Hi All -

 When I was getting started with Clojure the labrepl was SO helpful.
 Does something like this exist for ClojureScript to help people get
 started?

 Thanks

 Base

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

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

Re: Interfacing Cljs with external libs.

2011-08-05 Thread Michael Fogus
Well, Showdown is not really a namespace right?  It's an object in the
global environment.  You should be able to grab it via js/Showdown and do
all kinds of interopey things to it.

 On Aug 5, 2011 4:27 PM, Alen Ribic alen.ri...@gmail.com wrote:
 Thanks Fogus for clearing that up.

 Would a call to a constructor function in a namespace of a third-party
 library be an exception for the time being? (I can't seem to see a
 clear way you can express that via `js` namespace.)

 Example:
 new Showdown.converter().makeHtml(~{b-txt},~{safe})
 Showdown is the namespace and the converter function is the
 constructor.

 -Al


 On Aug 5, 8:57 pm, Fogus mefo...@gmail.com wrote:
 To access global JavaScript interop thingies (a technical term) you
 should use the `js` namespace.  The use of `js*` should be considered
 a bad idea.  It's used in core, but only for very low-level
 operations.  It should be considered undocumented and therefore off-
 limits (we're working to eliminate its need).

 Look at code at the following link to see a very simple way to access
 global js functions:

 https://gist.github.com/1127895

 Let us know if that helps.

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

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

Re: Specialize collection

2011-02-17 Thread Michael Fogus
 Is there a better way to specialize an built-in Clojure collection
 except wrapping - like for example to create a fixed size queue that
 drops new elements while full ?

You can use protocols as in the example at https://gist.github.com/831830

Is this what you were looking for?

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