Re: [ANN] Clojure 1.9.0-alpha4

2016-06-01 Thread Frank Castellucci

How was this accomplished?

On Wednesday, June 1, 2016 at 10:17:14 AM UTC-4, Rich Hickey wrote:
>
> To give people an idea of the update-in and seq destructuring 
> improvements: 
>
> (let [d3 {:a {:b {:c 2}}}] 
>   (dotimes [_ 10] 
> (time (dotimes [_ 1000] 
> (update-in d3 [:a :b :c] inc) 
>
> ;;; 1.9 alpha3 ;; 
> user=> "Elapsed time: 6489.189065 msecs" 
> "Elapsed time: 6501.518961 msecs" 
> "Elapsed time: 6479.994554 msecs" 
> "Elapsed time: 6477.236659 msecs" 
> "Elapsed time: 6490.542382 msecs" 
> "Elapsed time: 6494.044657 msecs" 
> "Elapsed time: 6475.188285 msecs" 
> "Elapsed time: 6498.734628 msecs" 
> "Elapsed time: 6486.312312 msecs" 
> "Elapsed time: 6476.566904 msecs" 
> nil 
>
> ;;; 1.9 alpha4 ;; 
> user=> "Elapsed time: 1613.631053 msecs" 
> "Elapsed time: 1614.271583 msecs" 
> "Elapsed time: 1607.393994 msecs" 
> "Elapsed time: 1605.966032 msecs" 
> "Elapsed time: 1605.731867 msecs" 
> "Elapsed time: 1605.836779 msecs" 
> "Elapsed time: 1617.090363 msecs" 
> "Elapsed time: 1611.065741 msecs" 
> "Elapsed time: 1611.249945 msecs" 
> "Elapsed time: 1624.351585 msecs" 
> nil 
>
> (let [v (into [] (range 100))] 
>   (dotimes [_ 10] 
> (time (dotimes [_ 10] 
> (loop [[x & xs] v] 
>   (if xs 
> (recur xs) 
> x)) 
>
> ;;; 1.9 alpha3 ;; 
> user=> "Elapsed time: 1531.858419 msecs" 
> "Elapsed time: 1521.997662 msecs" 
> "Elapsed time: 1499.931748 msecs" 
> "Elapsed time: 1499.745901 msecs" 
> "Elapsed time: 1496.63342 msecs" 
> "Elapsed time: 1499.363234 msecs" 
> "Elapsed time: 1506.309383 msecs" 
> "Elapsed time: 1514.943316 msecs" 
> "Elapsed time: 1534.90731 msecs" 
> "Elapsed time: 1524.550125 msecs" 
> nil 
> ;;; 1.9 alpha4 ;; 
> user=> "Elapsed time: 155.544283 msecs" 
> "Elapsed time: 131.861647 msecs" 
> "Elapsed time: 141.774727 msecs" 
> "Elapsed time: 238.939786 msecs" 
> "Elapsed time: 294.832594 msecs" 
> "Elapsed time: 278.476703 msecs" 
> "Elapsed time: 133.259029 msecs" 
> "Elapsed time: 139.917267 msecs" 
> "Elapsed time: 137.444001 msecs" 
> "Elapsed time: 147.852057 msecs” 
> nil 
>
>
> The code now produced for [x & xs] style destructuring is now as good as 
> the best first/next code you could write by hand, while the code produced 
> for [x y z] destructuring of indexed items is the same (fast, indexed) as 
> always. 
>
> Rich 
>
> > On May 31, 2016, at 11:41 AM, Stuart Halloway  > wrote: 
> > 
> > Clojure 1.9.0-alpha4 is now available. 
> > 
> > Try it via 
> > 
> > - Download: 
> https://repo1.maven.org/maven3/org/clojure/clojure/1.9.0-alpha4 
> > - Leiningen: [org.clojure/clojure "1.9.0-alpha4"] 
> > 
> > 1.9.0-alpha4 includes the following changes since 1.9.0-alpha3: 
> > 
> > - fix describe empty cat 
> > - improve update-in perf 
> > - optimize seq (&) destructuring 
> > 
> > 
> > -- 
> > 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 unsubscribe from this group and stop receiving emails from it, send 
> an email to clojure+u...@googlegroups.com . 
> > For more options, visit https://groups.google.com/d/optout. 
>
>

-- 
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: [GSoC idea] Pluggable back-ends architecture for ClojureScript compiler

2016-02-23 Thread Frank Castellucci
Would not we want to "plug in" to the Clojure compiler? 

Feels weird to plug-in to ClojureScript to generate, say, python code.

On Monday, February 22, 2016 at 6:52:43 PM UTC-5, Antonin Hildebrand wrote:
>
> I like the idea.
>
> I was thinking about a similar project. The goal would be to design and 
> implement user-configurable, pluggable system for "jacking" into 
> ClojureScript compilation pipeline as discussed here[1].
>
> The first dog-fooding application could be instrumentation middleware for 
> collecting code-coverage information. I believe this could be implemented 
> by rewriting forms between reader and analyzer. Or instrumenting AST output 
> from analyzer before it gets passed to emit-phase.
>
> just my 2cents,
> Antonin
>
> [1] 
> http://blog.fogus.me/2012/04/25/the-clojurescript-compilation-pipeline/
>
>
> On Sunday, February 21, 2016 at 9:20:18 AM UTC+1, Edward Knyshov wrote:
>>
>>
>>
>> *Pluggable back-ends architecture for ClojureScript compilerBrief 
>> explanation:* There are a lot of ClojureScript script compiler forks 
>> exist to provide different compilation targets other than js. Most of them 
>> are currently stuck because of rapid ClojureScript development and 
>> difficulties with keeping fork in sync with upstream. We could consider 
>> refactoring ClojureScript to provide plugable backends architecture, 
>> specifically to allow users replace code generation stage of compiler and 
>> implement js generator as one of such backends.
>>  
>> *Expected results: *ClojureScript compiler is refactored to allow 
>> further active development of plenty other backends to bootstrap Clojure in 
>> such environments as c/c++, llvm, python, emacs lisp, lua, etc. Ability to 
>> use clojure mostly everywhere.
>>  
>> *Knowledge:* ClojureScript, Clojure, JavaScript
>>
>> Need to know, what do you think guys.
>>
>

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


[ANN] clasew 0.3.2 - Clojure Applescript Execution Wrapper

2016-02-06 Thread Frank Castellucci


https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper


*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.

Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 

*General changes in 0.3.2*

   - Refactor code (multi methods)
   - Refactor sample code
   - Documentation tweaks

*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy

Frank V. Castellucci

-- 
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: How is the emphasis of “data over code” different than the XML advocacy of the early 2000s?

2016-02-02 Thread Frank Castellucci
Josh

To assume there is/was a problem because someone said so will waste your 
time. Through all the religious zealotry and opposing opinions, my comment 
would be:

"Eschew commentary. View each technology option as a tool in your 
tool-belt, and expand it as time goes on. When the right problem comes 
along, using the right tool regardless of politics will get the job done 
right"


On Monday, February 1, 2016 at 5:02:23 PM UTC-5, Josh Tilles wrote:
>
> As I’m watching Michael Drogalis’s Clojure/Conj 2015 presentation “Onyx: 
> Distributed Computing for Clojure” 
> , I'm distracted by a 
> nagging worry that we —as a community— are somehow falling into the same 
> trap as the those advocating XML in the early 2000s. That said, it's a very 
> *vague* unease, because I don’t know much about why the industry seems to 
> have rejected XML as “bad”; by the time I started programming 
> professionally there was already a consensus that XML sucked, and that 
> libraries/frameworks that relied heavily on XML configuration files were to 
> be regarded with suspicion and/or distaste.
>
> So, am I incorrect in seeing a similarity between the “data > code” 
> mentality and the rise of XML? Or, assuming there is a legitimate 
> parallel, is it perhaps unnecessary to be alarmed? Does the tendency to use 
> edn instead of XML sidestep everything that went wrong in the 2000s? Or is 
> it the case that the widespread backlash against XML threw a baby out with 
> the bathwater, forgetting the advantages of data over code?
>
> Cheers,
> Josh
>

-- 
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: Counting nodes in two seperate subtrees

2016-02-02 Thread Frank Castellucci

On 
SO: 
http://stackoverflow.com/questions/35136560/counting-nodes-in-two-different-subtrees-in-clojure


On Monday, February 1, 2016 at 1:16:31 PM UTC-5, xCaM wrote:
>
> Hi 
>
> Im trying to write the functions for this probem
>
> https://uva.onlinejudge.org/external/116/11615.pdf
>
> as i'm new to clojure i have very very limited knowledge of the language 
> and if someone could help me i'd be so grateful
>
> Cam 
>

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


[ANN] clasew 0.3.1 - Clojure Applescript Execution Wrapper

2016-01-04 Thread Frank Castellucci


https://github.com/FrankC01/clasew


*clasew *- Clojure AppleScriptEngine Wrapper


*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.

Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 


*General changes in 0.3.1*

   - Refactor code 
   - Fixed bug in example8.clj  


*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md


Feedback (+/-) and comments (+/-) are always welcome and appreciated.


Enjoy

Frank V. Castellucci

-- 
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: Project structure when using reader conditionals

2015-12-31 Thread Frank Castellucci
Clean... very nice.

On Wednesday, December 30, 2015 at 8:54:24 AM UTC-5, James Reeves wrote:
>
> My directory structure looks like:
>
> src/foo/client/bar.cljs
> src/foo/common/bar.cljc
> src/foo/server/bar.clj
>
> So I divide code by purpose, but they're all in the same source directory.
>
> - James
>
> On 30 December 2015 at 00:56, Alan Moore  > wrote:
>
>> Yes it would be handy for small projects but IMO larger applications 
>> should be broken up into client and server code. Some might argue for 
>> breaking up client and server into separate projects altogether but that 
>> begs the question about what to do with the .cljc files that are shared 
>> (e.g. put them in shared library(ies)?) Again, this probably depends on 
>> codebase size, granularity of your deployment and other considerations 
>> beyond just the compiler.
>>
>> For now I'm sticking with keeping the .cljc files in the src/clj tree. 
>> I'd like to hear what others are doing as well.
>>
>> Did you ask this on the clojurians slack channel? It seems a lot of the 
>> more chatty/Q traffic for this list has gone over there.
>>
>> Alan
>>
>>
>> On Friday, December 25, 2015 at 1:00:58 PM UTC-8, Dru Sellers wrote:
>>>
>>> Is it fair to say that the accepted pattern now (with reader 
>>> conditionals) is to have a single src/ directory and then letting the file 
>>> extension (cljs,clj,cljc) do the heavy lifting rather than having a 
>>> directory for each?
>>>
>>> that would be handy if so. 
>>>
>>> -d
>>>
>>>
>>> On Friday, May 29, 2015 at 3:10:30 PM UTC-5, Daniel Compton wrote:

 When porting a library to reader conditionals, I found that I only 
 needed one source directory for all my cljc and .clj files. Cljsbuild just 
 picks up the ones it needs and leaves the .clj ones. 

 So in some cases it may not be necessary to have a clj/, cljs/, and 
 cljc/ folder, although in applications this structure might make more 
 sense. 
 On Fri, 29 May 2015 at 10:31 pm Robin Heggelund Hansen <
 skinn...@gmail.com> wrote:

> No, it doesn't. I update with `lein ancient update :all` and committed 
> without checking if it worked. It's fixed locally :)
>
>
> fredag 29. mai 2015 12.01.32 UTC+2 skrev Colin Yates følgende:
>
>> Thanks Robin, that was helpful. I notice that you are using garden 
>> 1.2.6 - that throws a CNF for garden.core and the garden page recommends 
>> not using it - does it work for you?
>>
> On 29 May 2015, at 10:49, Robin Heggelund Hansen  
>> wrote:
>>
>> Take a look at my project.clj file.
>>
>>
>> https://github.com/Skinney/oslo-programmene/blob/development/project.clj
>>
>> fredag 29. mai 2015 11.17.25 UTC+2 skrev Colin Yates følgende:
>>>
>>> In the vein of "there are no stupid questions" :), how does one 
>>> structure a combined clj and cljs project that uses reader 
>>> conditionals? At 
>>> the moment I am using cljx and have:
>>>  - src/clj for clojure files
>>>  - src/cljs for clojurescript files
>>>  - src/cljx for cljx 
>>>  - target/cljx/clj for clojure files compiled (transpiled?) from cljx
>>>  - target/cljx/cljs for clojurescript files compiled (transpiled?) 
>>> from clix
>>>
>>> On the source path in cljsbuild for example I have src/cljs and 
>>> /target/cljx/cljs
>>>
>>> To remove cljx and use reader conditionals is it sufficient to:
>>>  - replace src/cljx with src/cljc 
>>>  - remove target/cljx from cljsbuild source path
>>>  - add src/cljc to cljsbuild source path
>>>  - add src/cljc to leiningen source path
>>>
>>> Thanks!
>>>
>>
>> -- 
>> 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 unsubscribe from this group and stop receiving emails from it, 
>> send an email to clojure+u...@googlegroups.com.
>>
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>> -- 
> 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

[ANN] clasew 0.3.0 - Clojure Applescript Execution Wrapper

2015-12-26 Thread Frank Castellucci
https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.
Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 

*General changes in 0.3.0*

   - Added support for Apple's Mail and Microsoft Outlook email messages 
   (messages.clj) to include
   - Fetch - From high level accounts to individual mailbox email messages
  - Sends - Send email
   - More powerful filtering capability
   

*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy
Frank V. Castellucci

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


[ANN] clasew 0.2.1 - Clojure AppleScript Engine Wrapper

2015-10-12 Thread Frank Castellucci
https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.
Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 

*General changes in 0.2.1*

   - Extended support for Apple's Contacts and Microsoft Outlook identities 
   (identities.clj) to include
   - Add Individuals - Add new individual(s) records to application
  - Update Individuals - Updates primary or sub-attributes of 
  identities records in application
  - Delete Individuals - Delete one or more individuals from application
   - More powerful filtering capability
   

*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy
Frank V. Castellucci

-- 
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: Towards Greater Code Reuse

2015-10-02 Thread Frank Castellucci
Reuse is a matter of perspective.

During the OO marketing blitz of the 90's, promise of re-use (C++, etc etc) 
convinced many to jump in the pool. So today there is a tremendous amount 
of abstract and deep hierarchies build with the notions that: "Someday this 
may be useful to specialize from this Class thereby enabling 're-use'" ... 
*BS 
There is much more code that does NOTHING in the hierarchy other than 
putting a drag on the timeliness of delivery.*

True reuse emerged at the macro level (i.e.Module orientation, 
Re-provisionable services, Web Services, etc.) while the micro level 
adventure leaving bloated unmaintainable artifacts in  it's wake.

The fundamental essence of functional approach has done more for reuse at 
the micro level then all OO languages combined. IMHO.

Off peanut gallery soap-box
Frank 

On Thursday, October 1, 2015 at 9:14:34 AM UTC-4, William la Forge wrote:
>
> Code reuse is for me the holy grail of software. It is something we lost 
> in large measure with the adoption of top-down development. And OO has only 
> complicated the matter. For some time now I have advocated the use of 
> factories and interfaces as a means of decoupling, but writing reusable 
> code has continued to be a bit of a lost art. But then, I was a Java 
> developer.
>
>
> Having been exposed to Clojure, I've come to realize that a function is 
> the smallest unit of reusable code, not a class. Simply moving logic from 
> methods to functions (or to static methods, if you are still using Java) 
> opens up a lot of possibilities. Mind, I still advocate the use of 
> interfaces for method polymorphism, but limit method bodies to be little 
> more than a call to a function or a property accessor.
>
>
> Doing this allows us to avoid class extensions and mind-numbing class 
> hierarchies. The code becomes much clearer, defining new classes becomes 
> much easier, and the need to refactor the code is greatly diminished. And 
> writing reusable functions is much easier than writing reusable classes.
>
>
> from https://github.com/laforge49/aatree/wiki/Towards-Greater-Code-Reuse
>

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


[ANN] clasew 0.2.0 - Clojure Applescript Execution Wrapper

2015-09-05 Thread Frank Castellucci
https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.
Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 

*General changes in 0.2.0*

   - Added support for Apple's Contacts and Microsoft Outlook identities 
   (identities.clj)
   - Using experimental AST generation and Applescript emitter
   

*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy
Frank V. Castellucci

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


[ANN] clasew 0.1.10

2015-06-09 Thread Frank Castellucci
https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.
Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 
*General changes in 0.1.10*

   - Added support for Apple's Numbers spreadsheets (numbers.clj)
   - Refactor generic spreadsheet ops to new namespace (spreads.clj)
   

*Changes* - All changes details: 
https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy
Frank V. Castellucci

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


[ANN] clasew 0.1.9

2015-05-10 Thread Frank Castellucci
https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - clasew provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.
Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. 

*Changes* - All changes om this release were focused on clasew Excel DSL, 
details: https://github.com/FrankC01/clasew/blob/master/CHANGES.md

Feedback (+/-) and comments (+/-) are always welcome and appreciated.

Enjoy
Frank V. Castellucci

-- 
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: separation of concerns w/o encapsulation

2015-05-10 Thread Frank Castellucci
Brian

One is better off thinking that avoidance, as per your note, is a 
*discipline* of *better practices. *As the architectural concepts of 
Separation of Concerns and Minimized Surface Areas were intended.

Many languages attempt to enforce this notion in something called 
encapsulation. However; Encapsulation is buzz as it is subject to the 
pressures of the moment, including but not limited to:

   1. Market pressure for timely delivery - or *Ef it, I'm just going to 
   expose this one little thing for now...*
   2. Introspection - If I can find it, I'll figure out how to get/set it. 
   Especially easy through such things as:
   3. Byte Code Injection - In the case of Java, and,
   4. Easy work arounds - In the case of Clojure's  *(**def my-local 
   #'ns/their-privates)*

How to avoid it? Discipline and code reviews.

Frank Castellucci




On Friday, May 8, 2015 at 12:29:50 PM UTC-4, Brian Craft wrote:

 Talk on the list about encapsulation usually comes back to some variation 
 of you don't need it when you have immutable data structures. But in the 
 long term I'm finding the problem of working w/o encapsulation is not the 
 danger of data being mutated under you. Rather, it's the danger of all the 
 module boundaries blurring over time, leading to the big ball of mud: a 
 very fragile code base where everything depends on everything else.

 E.g. if you model your application with a plain data structure which you 
 pass around to different modules, each concerned with a small part of that 
 data structure, the tendency over time is for every module to become 
 concerned with every part of that data structure.  Then you have no 
 separation, nothing is reusable, and the code is very fragile.

 How do you avoid this, practically? In OO it would be enforced with 
 encapsulation, so the next developer (which might be me, six months later) 
 trying to fix a bug, or add a feature, knows Oh, I shouldn't peek in here: 
 this module isn't supposed to depend on that piece of data.


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


[ANN] clasew 0.1.18

2015-04-30 Thread Frank Castellucci

https://github.com/FrankC01/clasew

*clasew *- Clojure AppleScriptEngine Wrapper

*Intent* - classes provides an idiomatic Clojure wrapper for Java 
ScriptManager: specifically apple.AppleScriptManager, as well as providing 
scriptable applications HOF DSLs.

Realizing that the audience for such capability may be minimal, others may 
find this a useful addition to the 'niche' library. Feedback (+/-) and 
comments (+/-) are always welcome and appreciated.

Frank V. Castellucci

-- 
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: [ANN] Understanding the Persistent Vector

2015-03-04 Thread Frank Castellucci
Jean

It's been added to the must reads list.

Will you be doing this for other data types?

Again, Great Work!
Frank

On Saturday, February 28, 2015 at 11:14:17 AM UTC-5, Jean Niklas L'orange 
wrote:

 Hello fellow Clojurians,

 I am happy to announce that I have finished my blogpost series on the 
 persistent
 vector. It consists of five parts:

1. The basic algorithms 
http://hypirion.com/musings/understanding-persistent-vector-pt-1
2. Indexing 
http://hypirion.com/musings/understanding-persistent-vector-pt-2
3. The tail optimisation 
http://hypirion.com/musings/understanding-persistent-vector-pt-3
4. Transients 
http://hypirion.com/musings/understanding-clojure-transients
5. Performance 
http://hypirion.com/musings/persistent-vector-performance-summarised 
(which is a summary of this detailed blogpost 
http://hypirion.com/musings/persistent-vector-performance)

 I hope this will help you to get a good understanding of how the 
 algorithms on
 the data structure work, how the optimisations work, and how efficient it 
 is on
 the JVM.

 Constructive criticism, both positive and negative, is appreciated.

 Enjoy!

 (NB: I haven't gotten around to fix the illustrations in part 3, so
 unfortunately it will be a bit hard to read if you print it out in 
 grayscale.
 It's on my todo-list.)

 -- Jean Niklas L'orange



-- 
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: 101 on simple and flexible graph query/update?

2014-07-10 Thread Frank Castellucci
Bertrand

I've been doing a lot of Ontology (OWL) with directed graphs (with cycles) 
and DAGS. One application we went with the nested map structure however now 
that I've been working on a normalized BPMN/XPDL utility 
( https://github.com/FrankC01/tributary ) I'm becoming enamored with the in 
XML format produced by xml-parse and then zipping it up. Coupled with 
clojures 'functional' nature, zippers become your friend really quickly and 
provide a most generic way of dealing with any graph with any number of 
layers.

The next step will be a normalized DSL on top of the zippers and using 
things like hickory-parse/data.zip selector concepts.

For the Ontology work we use datomic as the persist mechanism.



On Thursday, July 10, 2014 4:26:33 AM UTC-4, Bertrand Dechoux wrote:

 Hi,

 I have various general questions about how one can perform simple and 
 flexible graph query/update.

 If we start by a structure being nested maps then I know about 
 get-in/update-in/assoc-in. The common point about these functions is that 
 they all take a path to where the data is in the superstructure and that 
 this path is only a sequence of keys, which may or not be symbols.

 1) What happens when one layer of this superstructure is not a map but a 
 sequence? For the sake of the argument, we can keep the discussion simple 
 by only arguing about the vector case.

 Typically instead of
 { :key1 { :key2 val }}

 we now have
 { :key1 [{ :key2 val }]}

 Of course, one can perform get/update/assoc using map/reduce. However, it 
 means that the code using this superstructure is taking a hit on 
 complexity/maintenance each time a non-map layer must be crossed. Of 
 course, the simplicity/beauty of the current implementation is that a path 
 can point to at most one target substructure/value. Is there a way to do 
 something similar with a more general definition of a path? One would 
 assume that it is something that might be handled by xml/html modification 
 libraries (think xpath or css selector) but this problem is more general 
 and not domain specific. Is there a clean library that handle that case 
 without being tied to html/xml?

 2) How to deal with more general superstructure like a graph?

 One could build an immutable graph but I don't believe it is something 
 that can be done by nesting immutable maps and vectors. One solution to 
 deal with 'entity'--'entity' relationships is for one of the member to own 
 only an identifier to get the other member from another reference structure.

 (from the basic OM tutorial:)

 {:people
  [{:type :student :first Ben :last Bitdiddle}
   {:type :professor :first Gerald :last Sussman :classes [:6001 
 :6946]}]
  :classes
  {:6001 The Structure and Interpretation of Computer Programs
   :6946 The Structure and Interpretation of Classical Mechanics
   :1806 Linear Algebra}}


 It is, of course, again, manually possible to get/update/assoc using 
 map/reduce.  But then, again, this is the same problematic as with the 
 first question : each time a relation needs to be crossed, the code using 
 this superstructure is taking a hit on complexity/maintenance. How do you 
 usually deal with this problematic?

 For both question 1) and 2), a more appropriate data structure might be 
 the answer like a graph/semantic-like store (Datomic or something else). 
 The questions are about intermediary solutions which would be less heavier.

 3) How does Demeter lives with graph traversal?

 This law is often heard in the OOP world but it is a bit more general than 
 that. When a long path on a superstructure is specified then if one 
 intermediary layer is introduced later, all hardcoded paths will be broken 
 ie in multiple locations in the code base. One would like to store local 
 structure knowledge in a single place. How do you usually deal with this 
 problematic?

 I have yet to take a serious look at lenses and their composition, they 
 are probably an element of answer, but they are more often seen in more 
 statically typed langage.

 Thanks for any feedback.

 Bertrand


-- 
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: OT: Github Alternatives

2014-07-01 Thread Frank Castellucci
wush.net


On Monday, June 30, 2014 6:34:56 AM UTC-4, Adrian Mowat wrote:

 Hi All,

 Sorry for the off topic thread but my company is looking at alternatives 
 to gihub that are a) hosted internally and b) cheaper (!)

 I was wondering what everyone else is using out there?  The features we 
 use most on github are easy creation and navigation of repos, commit/diff 
 browsing and user/team management facilities

 Many Thanks

 Adrian


-- 
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: Effective Clojure book?

2014-06-06 Thread Frank Castellucci

No, but there is support for just about everything Meyers so if you already 
own that you just saved yourself some money!

Frank

On Wednesday, June 4, 2014 9:30:26 PM UTC-4, Mike Fikes wrote:

 Are there any books yet that prescribe best practices for Clojure, à la 
 Meyers or Bloch?


-- 
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: Examples of aget (multi-dimensional) and make-array

2014-05-17 Thread Frank Castellucci
As per the 
documentation http://clojuredocs.org/clojure_core/clojure.core/make-array 
you use this to collect Java Class types into an array.

Remember that a make-array return is a mutable type.

For example,  a string in clojure is backed by java's String class. If you 
want to make a 3 member array of Strings:

(def _ma (make-array String 3))

= (aset _ma 0 Foo)

Foo

= _ma

#String[] [Ljava.lang.String;@2356cab0

= (aget _ma 0)

Foo


However, in your case of wanting to use a multi-dimensional you could use 
to-array-2d http://clojuredocs.org/clojure_core/clojure.core/to-array-2d 
which
has examples.



On Saturday, May 17, 2014 4:03:03 AM UTC-4, Colin Kahn wrote:

 Interested in seeing an example of how to use aget on a multi-dimensional 
 array, and how to use make-array. So far I've had no luck getting either to 
 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
--- 
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.