Re: Real World Example

2014-04-08 Thread Sean Corfield
On Apr 8, 2014, at 12:23 PM, Anthony Ortiz  wrote:
> I'm now going through the book 'Programming Clojure'. So far I've seen a lot 
> of utility/academic examples such as fibonacci but little in the way of an 
> actual real-world example of a top-to-bottom desktop application built using 
> Clojure on either the JVM or CLR

It's been a while since I read Programming Clojure but my sense is that Clojure 
Programming from O'Reilly (Emerick, Casper, Grand) would give you more of what 
you're looking for, and possibly the 2nd Ed of Clojure in Action from Manning 
(don't buy the 1st Ed - it's very out of date and a lot of the examples won't 
run).

Welcome to Clojure!

We're using Clojure for a lot of our application model at World Singles - an 
Internet dating platform - so we're using it to interact with MySQL, MongoDB, 
third party web services, to do data transformation (mostly to/from XML, JSON), 
and so on. We're also using it for the back end of a chat server (built around 
Netty and a Socket.IO server library).

Happy to answer any questions about "real world usage" either on or off-list!

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Real World Example

2014-04-09 Thread Colin Yates
Hello back!

We are using Clojure on the JVM as the implementation language for a 
platform that will underpin our applications for the next decade.  It is 
relatively new and so far we have implemented the analysis module which is 
essentially a generic charting engine.  

So far we have 5547 lines of production code (including comments) and 2600 
lines of production code (including comments).

That doesn't sound like much but I can tell you it is replacing a similar, 
but slightly smaller in scope analysis module written in Java which was 
around 40K lines of production code.

Our architecture is Clojure on the back end exporting a number of JSON end 
points.  It is backed by MS SQL using the fantastic 
https://github.com/jkk/honeysql library.

For me, it is a dream coming from Java (and to a much lesser extent Scala), 
but it does have its costs.  Moving from an OO world to an FP world isn't 
easy, particularly in the shapes your solutions end up with.  I am also 
feeling the pain of not having types - everything is a sequence.  This is a 
joy but it also means a whole bunch of information (i.e. type information) 
is lost.  

One of the wins in OO languages is the many number of places to hang 
semantic information - the name of the class, the structure of the class, 
the names of the methods etc.  I also find many more intermediary variables 
in OO where as in Clojure it seems more idiomatic to have pipelines of 
transformation.  I am feeling the lost of static types as I refactor APIs 
particularly.

This is undoubtedly my failing not Clojure's and I just need to absorb more 
good FP paradigms.  Would I give up my emacs and Clojure and paredit 
combination?  Not a chance :).

Col

On Tuesday, 8 April 2014 20:23:06 UTC+1, Anthony Ortiz wrote:
>
> Hello world!
>
> I'm a C# developer who recently went to an interview at a major bank here 
> in NYC and found that they've been using Clojure for their business logic 
> for over a year already and that got me curious, so I find myself on 
> unfamiliar territory learning how to program in a functional language. So 
> far so good, Moxley Stratton's online tutorial combined with Try Clojure 
> (the online interpreter) has been very helpful (kudos to you guys!) and I'm 
> now going through the book 'Programming Clojure'. So far I've seen a lot of 
> utility/academic examples such as fibonacci but little in the way of an 
> actual real-world example of a top-to-bottom desktop application built 
> using Clojure on either the JVM or CLR, something simple that would 
> demonstrate how Clojure fits into the event-driven model on the client-side 
> behind, let's say, WPF, and how it would interact with more Clojure on the 
> service-side via, let's say, WCF. Does anyone know of an example they can 
> direct me to?
>
> Many thanks!
>
> Anthony
>

-- 
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: Real World Example

2014-04-09 Thread Colin Yates
Gah - 5547 production, 2600 of tests.  A lot of that discrepancy is down to 
the very extensive documentation that https://github.com/gdeer81/marginalia 
allows you to write.

Please forgive any other mistakes, working on less than an hours sleep due 
to my lovely kids.

On Wednesday, 9 April 2014 09:14:38 UTC+1, Colin Yates wrote:
>
> Hello back!
>
> We are using Clojure on the JVM as the implementation language for a 
> platform that will underpin our applications for the next decade.  It is 
> relatively new and so far we have implemented the analysis module which is 
> essentially a generic charting engine.  
>
> So far we have 5547 lines of production code (including comments) and 2600 
> lines of production code (including comments).
>
> That doesn't sound like much but I can tell you it is replacing a similar, 
> but slightly smaller in scope analysis module written in Java which was 
> around 40K lines of production code.
>
> Our architecture is Clojure on the back end exporting a number of JSON end 
> points.  It is backed by MS SQL using the fantastic 
> https://github.com/jkk/honeysql library.
>
> For me, it is a dream coming from Java (and to a much lesser extent 
> Scala), but it does have its costs.  Moving from an OO world to an FP world 
> isn't easy, particularly in the shapes your solutions end up with.  I am 
> also feeling the pain of not having types - everything is a sequence.  This 
> is a joy but it also means a whole bunch of information (i.e. type 
> information) is lost.  
>
> One of the wins in OO languages is the many number of places to hang 
> semantic information - the name of the class, the structure of the class, 
> the names of the methods etc.  I also find many more intermediary variables 
> in OO where as in Clojure it seems more idiomatic to have pipelines of 
> transformation.  I am feeling the lost of static types as I refactor APIs 
> particularly.
>
> This is undoubtedly my failing not Clojure's and I just need to absorb 
> more good FP paradigms.  Would I give up my emacs and Clojure and paredit 
> combination?  Not a chance :).
>
> Col
>
> On Tuesday, 8 April 2014 20:23:06 UTC+1, Anthony Ortiz wrote:
>>
>> Hello world!
>>
>> I'm a C# developer who recently went to an interview at a major bank here 
>> in NYC and found that they've been using Clojure for their business logic 
>> for over a year already and that got me curious, so I find myself on 
>> unfamiliar territory learning how to program in a functional language. So 
>> far so good, Moxley Stratton's online tutorial combined with Try Clojure 
>> (the online interpreter) has been very helpful (kudos to you guys!) and I'm 
>> now going through the book 'Programming Clojure'. So far I've seen a lot of 
>> utility/academic examples such as fibonacci but little in the way of an 
>> actual real-world example of a top-to-bottom desktop application built 
>> using Clojure on either the JVM or CLR, something simple that would 
>> demonstrate how Clojure fits into the event-driven model on the client-side 
>> behind, let's say, WPF, and how it would interact with more Clojure on the 
>> service-side via, let's say, WCF. Does anyone know of an example they can 
>> direct me to?
>>
>> Many thanks!
>>
>> Anthony
>>
>

-- 
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: Real World Example

2014-04-09 Thread Aditya Athalye
Welcome, Anthony. 

I'm not aware of complete applications that fit your requirement, 
however I think you'll find value in the newly-minted Clojure Cookbook 
http://clojure-cookbook.com/ ... many, many examples of real-world 
problems, 
across domains, solved by Clojure practitioners.

All the examples and solutions are available here:
https://github.com/clojure-cookbook/clojure-cookbook

Cheers, and once again, welcome!



On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:
>
> Hello world!
>
> I'm a C# developer who recently went to an interview at a major bank here 
> in NYC and found that they've been using Clojure for their business logic 
> for over a year already and that got me curious, so I find myself on 
> unfamiliar territory learning how to program in a functional language. So 
> far so good, Moxley Stratton's online tutorial combined with Try Clojure 
> (the online interpreter) has been very helpful (kudos to you guys!) and I'm 
> now going through the book 'Programming Clojure'. So far I've seen a lot of 
> utility/academic examples such as fibonacci but little in the way of an 
> actual real-world example of a top-to-bottom desktop application built 
> using Clojure on either the JVM or CLR, something simple that would 
> demonstrate how Clojure fits into the event-driven model on the client-side 
> behind, let's say, WPF, and how it would interact with more Clojure on the 
> service-side via, let's say, WCF. Does anyone know of an example they can 
> direct me to?
>
> Many thanks!
>
> Anthony
>

-- 
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: Real World Example

2014-04-09 Thread Fergal Byrne
Hi Anthony,

I'm building a fairly large real-world system called Clortex [1], which is
a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2]. As
it's a greenfield project, I've chosen to use Clojure components all the
way through instead of fitting in with Java-based or .Net-based frameworks.
There are good reasons why you should do this if you can, but obviously
that doesn't help you directly with your question.

There are many people introducing Clojure as a component in an existing
ecosystem, as Colin explains, but usually this is done deep inside a big
Java or .Net shop, and they're not showing the world the code. One possible
route would be to see if any of the big Java or CLR Open Source apps are
looking at doing some subsystems in Clojure.

Colin,

Great to hear your experiences. I'm no expert, but it's likely that you
could ease much of the pain using protocols, type hints and deftypes or
records. Also, Typed Clojure [3] is definitely worth looking at.

[1] Clortex will be public on Github shortly, see
http://fergalbyrne.github.io for docs, http://inbits.com for blog.
[2] http://numenta.org
[3] https://github.com/clojure/core.typed

Regards,

Fergal Byrne




On Wed, Apr 9, 2014 at 10:18 AM, Aditya Athalye wrote:

> Welcome, Anthony.
>
> I'm not aware of complete applications that fit your requirement,
> however I think you'll find value in the newly-minted Clojure Cookbook
> http://clojure-cookbook.com/ ... many, many examples of real-world
> problems,
> across domains, solved by Clojure practitioners.
>
> All the examples and solutions are available here:
> https://github.com/clojure-cookbook/clojure-cookbook
>
> Cheers, and once again, welcome!
>
>
>
> On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:
>>
>> Hello world!
>>
>> I'm a C# developer who recently went to an interview at a major bank here
>> in NYC and found that they've been using Clojure for their business logic
>> for over a year already and that got me curious, so I find myself on
>> unfamiliar territory learning how to program in a functional language. So
>> far so good, Moxley Stratton's online tutorial combined with Try Clojure
>> (the online interpreter) has been very helpful (kudos to you guys!) and I'm
>> now going through the book 'Programming Clojure'. So far I've seen a lot of
>> utility/academic examples such as fibonacci but little in the way of an
>> actual real-world example of a top-to-bottom desktop application built
>> using Clojure on either the JVM or CLR, something simple that would
>> demonstrate how Clojure fits into the event-driven model on the client-side
>> behind, let's say, WPF, and how it would interact with more Clojure on the
>> service-side via, let's say, WCF. Does anyone know of an example they can
>> direct me to?
>>
>> Many thanks!
>>
>> Anthony
>>
>  --
> 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.
>



-- 

Fergal Byrne, Brenter IT

Author, Real Machine Intelligence with Clortex and NuPIC
https://leanpub.com/realsmartmachines

http://inbits.com - Better Living through
Thoughtful Technology
http://ie.linkedin.com/in/fergbyrne/
https://github.com/fergalbyrne

e:fergalbyrnedub...@gmail.com t:+353 83 4214179
Formerly of Adnet edi...@adnet.ie http://www.adnet.ie

-- 
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: Real World Example

2014-04-09 Thread Colin Yates
Hi Fergal,

Thanks for those links.  I started using protocols and defrecords but I 
(maybe mistakenly) got the impression that they were "frowned upon".  As it 
turns out, maps (typically with a :type key) and multi methods go a long 
long way, but I still end up with fairly deep nesting of maps.  

Maybe that is the key - deep nesting of maps maybe cries out "one object 
[data model] to rule them all" and I need to decompose it further.  

Without types almost all the type hints would be either the map of sequence 
interface.  It isn't so much the structure that is obscure, but the 
semantics of what that structure is modelling.

As I hinted at, I am sure it is because my implementation model is still 
influenced too much by my OO background.

Onwards and upwards as they say.

Col


On Wednesday, 9 April 2014 11:37:52 UTC+1, Fergal Byrne wrote:
>
> Hi Anthony,
>
> I'm building a fairly large real-world system called Clortex [1], which is 
> a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2]. As 
> it's a greenfield project, I've chosen to use Clojure components all the 
> way through instead of fitting in with Java-based or .Net-based frameworks. 
> There are good reasons why you should do this if you can, but obviously 
> that doesn't help you directly with your question.
>
> There are many people introducing Clojure as a component in an existing 
> ecosystem, as Colin explains, but usually this is done deep inside a big 
> Java or .Net shop, and they're not showing the world the code. One possible 
> route would be to see if any of the big Java or CLR Open Source apps are 
> looking at doing some subsystems in Clojure.
>
> Colin,
>
> Great to hear your experiences. I'm no expert, but it's likely that you 
> could ease much of the pain using protocols, type hints and deftypes or 
> records. Also, Typed Clojure [3] is definitely worth looking at. 
>
> [1] Clortex will be public on Github shortly, see 
> http://fergalbyrne.github.io for docs, http://inbits.com for blog.
> [2] http://numenta.org
> [3] https://github.com/clojure/core.typed
>
> Regards,
>
> Fergal Byrne
>
>
>
>
> On Wed, Apr 9, 2014 at 10:18 AM, Aditya Athalye 
> 
> > wrote:
>
>> Welcome, Anthony. 
>>
>> I'm not aware of complete applications that fit your requirement, 
>> however I think you'll find value in the newly-minted Clojure Cookbook 
>> http://clojure-cookbook.com/ ... many, many examples of real-world 
>> problems, 
>> across domains, solved by Clojure practitioners.
>>
>> All the examples and solutions are available here:
>> https://github.com/clojure-cookbook/clojure-cookbook
>>
>> Cheers, and once again, welcome!
>>
>>
>>
>> On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:
>>>
>>> Hello world!
>>>
>>> I'm a C# developer who recently went to an interview at a major bank 
>>> here in NYC and found that they've been using Clojure for their business 
>>> logic for over a year already and that got me curious, so I find myself on 
>>> unfamiliar territory learning how to program in a functional language. So 
>>> far so good, Moxley Stratton's online tutorial combined with Try Clojure 
>>> (the online interpreter) has been very helpful (kudos to you guys!) and I'm 
>>> now going through the book 'Programming Clojure'. So far I've seen a lot of 
>>> utility/academic examples such as fibonacci but little in the way of an 
>>> actual real-world example of a top-to-bottom desktop application built 
>>> using Clojure on either the JVM or CLR, something simple that would 
>>> demonstrate how Clojure fits into the event-driven model on the client-side 
>>> behind, let's say, WPF, and how it would interact with more Clojure on the 
>>> service-side via, let's say, WCF. Does anyone know of an example they can 
>>> direct me to?
>>>
>>> Many thanks!
>>>
>>> Anthony
>>>
>>  -- 
>> 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.
>>
>
>
>
> -- 
>
> Fergal Byrne, Brenter IT
>
> Author, Real Machine Intelligence with Clortex and NuPIC 
> https://leanpub.com/realsmartmachines
>
> http://inbits.com - Better Living through 
> Thoughtful Technology
> http://ie.linkedin.com/in/fergbyrne/
> https://github.com/fergalbyrne
>
> e:fergalby...@gmail.com  t:+353 83 4214179
> Formerly of Adnet edi...@adnet.ie  http://www.adnet.ie
>  

--

Re: Real World Example

2014-04-09 Thread Fergal Byrne
Hi Colin,

Cheers. I had exactly the same problem, so I've been trying out a few other
ideas. One is to use datalog (or cascalog etc) and represent "objects" with
entities and relationships between objects with refs (for datalog). I have
some enormous data structures (2-300m synapses per layer, for example) but
I find that Datomic and datalog are great for modelling really big and
complex structures.

There's a datomic wrapper library called adi [1] which adds a nice map-like
interface on top of datalog. It's perfect for getting your schema right
(you start off with a big map and it automagically does the schema), and
you can do some really long link-following, but I'm not using it
extensively yet (because everything is data, you can use adi for schema
design and some queries, and raw datomic for the rest).

I'll be writing extensively about each library or tool I've used on my blog
(see sig). I'm writing about lein-midje-doc (also by zcaudate) at the
moment, it's just wonderful.

[1] https://github.com/zcaudate/adi

Regards,

Fergal Byrne


On Wed, Apr 9, 2014 at 12:22 PM, Colin Yates  wrote:

> Hi Fergal,
>
> Thanks for those links.  I started using protocols and defrecords but I
> (maybe mistakenly) got the impression that they were "frowned upon".  As it
> turns out, maps (typically with a :type key) and multi methods go a long
> long way, but I still end up with fairly deep nesting of maps.
>
> Maybe that is the key - deep nesting of maps maybe cries out "one object
> [data model] to rule them all" and I need to decompose it further.
>
> Without types almost all the type hints would be either the map of
> sequence interface.  It isn't so much the structure that is obscure, but
> the semantics of what that structure is modelling.
>
> As I hinted at, I am sure it is because my implementation model is still
> influenced too much by my OO background.
>
> Onwards and upwards as they say.
>
> Col
>
>
> On Wednesday, 9 April 2014 11:37:52 UTC+1, Fergal Byrne wrote:
>
>> Hi Anthony,
>>
>> I'm building a fairly large real-world system called Clortex [1], which
>> is a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2].
>> As it's a greenfield project, I've chosen to use Clojure components all the
>> way through instead of fitting in with Java-based or .Net-based frameworks.
>> There are good reasons why you should do this if you can, but obviously
>> that doesn't help you directly with your question.
>>
>> There are many people introducing Clojure as a component in an existing
>> ecosystem, as Colin explains, but usually this is done deep inside a big
>> Java or .Net shop, and they're not showing the world the code. One possible
>> route would be to see if any of the big Java or CLR Open Source apps are
>> looking at doing some subsystems in Clojure.
>>
>> Colin,
>>
>> Great to hear your experiences. I'm no expert, but it's likely that you
>> could ease much of the pain using protocols, type hints and deftypes or
>> records. Also, Typed Clojure [3] is definitely worth looking at.
>>
>> [1] Clortex will be public on Github shortly, see
>> http://fergalbyrne.github.io for docs, http://inbits.com for blog.
>>  [2] http://numenta.org
>> [3] https://github.com/clojure/core.typed
>>
>> Regards,
>>
>> Fergal Byrne
>>
>>
>>
>>
>> On Wed, Apr 9, 2014 at 10:18 AM, Aditya Athalye wrote:
>>
>>> Welcome, Anthony.
>>>
>>> I'm not aware of complete applications that fit your requirement,
>>> however I think you'll find value in the newly-minted Clojure Cookbook
>>> http://clojure-cookbook.com/ ... many, many examples of real-world
>>> problems,
>>> across domains, solved by Clojure practitioners.
>>>
>>> All the examples and solutions are available here:
>>> https://github.com/clojure-cookbook/clojure-cookbook
>>>
>>> Cheers, and once again, welcome!
>>>
>>>
>>>
>>> On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:

 Hello world!

 I'm a C# developer who recently went to an interview at a major bank
 here in NYC and found that they've been using Clojure for their business
 logic for over a year already and that got me curious, so I find myself on
 unfamiliar territory learning how to program in a functional language. So
 far so good, Moxley Stratton's online tutorial combined with Try Clojure
 (the online interpreter) has been very helpful (kudos to you guys!) and I'm
 now going through the book 'Programming Clojure'. So far I've seen a lot of
 utility/academic examples such as fibonacci but little in the way of an
 actual real-world example of a top-to-bottom desktop application built
 using Clojure on either the JVM or CLR, something simple that would
 demonstrate how Clojure fits into the event-driven model on the client-side
 behind, let's say, WPF, and how it would interact with more Clojure on the
 service-side via, let's say, WCF. Does anyone know of an example they can
 direct me to?

 Many thanks!

Re: Real World Example

2014-04-09 Thread Colin Yates
lein-midje-doc really does look excellent.  I went with marginalia but if 
that had been around at the time I would have jumped on it without a doubt.

On Wednesday, 9 April 2014 13:20:51 UTC+1, Fergal Byrne wrote:
>
> Hi Colin,
>
> Cheers. I had exactly the same problem, so I've been trying out a few 
> other ideas. One is to use datalog (or cascalog etc) and represent 
> "objects" with entities and relationships between objects with refs (for 
> datalog). I have some enormous data structures (2-300m synapses per layer, 
> for example) but I find that Datomic and datalog are great for modelling 
> really big and complex structures.
>
> There's a datomic wrapper library called adi [1] which adds a nice 
> map-like interface on top of datalog. It's perfect for getting your schema 
> right (you start off with a big map and it automagically does the schema), 
> and you can do some really long link-following, but I'm not using it 
> extensively yet (because everything is data, you can use adi for schema 
> design and some queries, and raw datomic for the rest).
>
> I'll be writing extensively about each library or tool I've used on my 
> blog (see sig). I'm writing about lein-midje-doc (also by zcaudate) at the 
> moment, it's just wonderful.
>
> [1] https://github.com/zcaudate/adi
>
> Regards,
>
> Fergal Byrne
>
>
> On Wed, Apr 9, 2014 at 12:22 PM, Colin Yates 
> > wrote:
>
>> Hi Fergal,
>>
>> Thanks for those links.  I started using protocols and defrecords but I 
>> (maybe mistakenly) got the impression that they were "frowned upon".  As it 
>> turns out, maps (typically with a :type key) and multi methods go a long 
>> long way, but I still end up with fairly deep nesting of maps.  
>>
>> Maybe that is the key - deep nesting of maps maybe cries out "one object 
>> [data model] to rule them all" and I need to decompose it further.  
>>
>> Without types almost all the type hints would be either the map of 
>> sequence interface.  It isn't so much the structure that is obscure, but 
>> the semantics of what that structure is modelling.
>>
>> As I hinted at, I am sure it is because my implementation model is still 
>> influenced too much by my OO background.
>>
>> Onwards and upwards as they say.
>>
>> Col
>>
>>
>> On Wednesday, 9 April 2014 11:37:52 UTC+1, Fergal Byrne wrote:
>>
>>> Hi Anthony,
>>>
>>> I'm building a fairly large real-world system called Clortex [1], which 
>>> is a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2]. 
>>> As it's a greenfield project, I've chosen to use Clojure components all the 
>>> way through instead of fitting in with Java-based or .Net-based frameworks. 
>>> There are good reasons why you should do this if you can, but obviously 
>>> that doesn't help you directly with your question.
>>>
>>> There are many people introducing Clojure as a component in an existing 
>>> ecosystem, as Colin explains, but usually this is done deep inside a big 
>>> Java or .Net shop, and they're not showing the world the code. One possible 
>>> route would be to see if any of the big Java or CLR Open Source apps are 
>>> looking at doing some subsystems in Clojure.
>>>
>>> Colin,
>>>
>>> Great to hear your experiences. I'm no expert, but it's likely that you 
>>> could ease much of the pain using protocols, type hints and deftypes or 
>>> records. Also, Typed Clojure [3] is definitely worth looking at. 
>>>
>>> [1] Clortex will be public on Github shortly, see 
>>> http://fergalbyrne.github.io for docs, http://inbits.com for blog.
>>>  [2] http://numenta.org
>>> [3] https://github.com/clojure/core.typed
>>>
>>> Regards,
>>>
>>> Fergal Byrne
>>>
>>>
>>>
>>>
>>> On Wed, Apr 9, 2014 at 10:18 AM, Aditya Athalye wrote:
>>>
 Welcome, Anthony. 

 I'm not aware of complete applications that fit your requirement, 
 however I think you'll find value in the newly-minted Clojure Cookbook 
 http://clojure-cookbook.com/ ... many, many examples of real-world 
 problems, 
 across domains, solved by Clojure practitioners.

 All the examples and solutions are available here:
 https://github.com/clojure-cookbook/clojure-cookbook

 Cheers, and once again, welcome!



 On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:
>
> Hello world!
>
> I'm a C# developer who recently went to an interview at a major bank 
> here in NYC and found that they've been using Clojure for their business 
> logic for over a year already and that got me curious, so I find myself 
> on 
> unfamiliar territory learning how to program in a functional language. So 
> far so good, Moxley Stratton's online tutorial combined with Try Clojure 
> (the online interpreter) has been very helpful (kudos to you guys!) and 
> I'm 
> now going through the book 'Programming Clojure'. So far I've seen a lot 
> of 
> utility/academic examples such as fibonacci but little in the way of an 
> act

Re: Real World Example

2014-04-09 Thread Fergal Byrne
I'm using both: Marginalia for straight docstrings in the source code [1],
lein-midje-doc for TDD in a literate style [2]. Some of the components I
wanted to discuss with others, for example a new design for a Scalar
Encoder [3] (I found and fixed a bug in the algorithm using this approach).

[1] http://fergalbyrne.github.io/uberdoc.html
[2] http://fergalbyrne.github.io/
[3] http://fergalbyrne.github.io/rdse.html

Regards,

Fergal Byrne


On Wed, Apr 9, 2014 at 2:20 PM, Colin Yates  wrote:

> lein-midje-doc really does look excellent.  I went with marginalia but if
> that had been around at the time I would have jumped on it without a doubt.
>
>
> On Wednesday, 9 April 2014 13:20:51 UTC+1, Fergal Byrne wrote:
>
>> Hi Colin,
>>
>> Cheers. I had exactly the same problem, so I've been trying out a few
>> other ideas. One is to use datalog (or cascalog etc) and represent
>> "objects" with entities and relationships between objects with refs (for
>> datalog). I have some enormous data structures (2-300m synapses per layer,
>> for example) but I find that Datomic and datalog are great for modelling
>> really big and complex structures.
>>
>> There's a datomic wrapper library called adi [1] which adds a nice
>> map-like interface on top of datalog. It's perfect for getting your schema
>> right (you start off with a big map and it automagically does the schema),
>> and you can do some really long link-following, but I'm not using it
>> extensively yet (because everything is data, you can use adi for schema
>> design and some queries, and raw datomic for the rest).
>>
>> I'll be writing extensively about each library or tool I've used on my
>> blog (see sig). I'm writing about lein-midje-doc (also by zcaudate) at the
>> moment, it's just wonderful.
>>
>> [1] https://github.com/zcaudate/adi
>>
>> Regards,
>>
>> Fergal Byrne
>>
>>
>> On Wed, Apr 9, 2014 at 12:22 PM, Colin Yates  wrote:
>>
>>> Hi Fergal,
>>>
>>> Thanks for those links.  I started using protocols and defrecords but I
>>> (maybe mistakenly) got the impression that they were "frowned upon".  As it
>>> turns out, maps (typically with a :type key) and multi methods go a long
>>> long way, but I still end up with fairly deep nesting of maps.
>>>
>>> Maybe that is the key - deep nesting of maps maybe cries out "one object
>>> [data model] to rule them all" and I need to decompose it further.
>>>
>>> Without types almost all the type hints would be either the map of
>>> sequence interface.  It isn't so much the structure that is obscure, but
>>> the semantics of what that structure is modelling.
>>>
>>> As I hinted at, I am sure it is because my implementation model is still
>>> influenced too much by my OO background.
>>>
>>> Onwards and upwards as they say.
>>>
>>> Col
>>>
>>>
>>> On Wednesday, 9 April 2014 11:37:52 UTC+1, Fergal Byrne wrote:
>>>
 Hi Anthony,

 I'm building a fairly large real-world system called Clortex [1], which
 is a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2].
 As it's a greenfield project, I've chosen to use Clojure components all the
 way through instead of fitting in with Java-based or .Net-based frameworks.
 There are good reasons why you should do this if you can, but obviously
 that doesn't help you directly with your question.

 There are many people introducing Clojure as a component in an existing
 ecosystem, as Colin explains, but usually this is done deep inside a big
 Java or .Net shop, and they're not showing the world the code. One possible
 route would be to see if any of the big Java or CLR Open Source apps are
 looking at doing some subsystems in Clojure.

 Colin,

 Great to hear your experiences. I'm no expert, but it's likely that you
 could ease much of the pain using protocols, type hints and deftypes or
 records. Also, Typed Clojure [3] is definitely worth looking at.

 [1] Clortex will be public on Github shortly, see
 http://fergalbyrne.github.io for docs, http://inbits.com for blog.
  [2] http://numenta.org
 [3] https://github.com/clojure/core.typed

  Regards,

 Fergal Byrne




 On Wed, Apr 9, 2014 at 10:18 AM, Aditya Athalye 
 wrote:

> Welcome, Anthony.
>
> I'm not aware of complete applications that fit your requirement,
> however I think you'll find value in the newly-minted Clojure Cookbook
> http://clojure-cookbook.com/ ... many, many examples of real-world
> problems,
> across domains, solved by Clojure practitioners.
>
> All the examples and solutions are available here:
> https://github.com/clojure-cookbook/clojure-cookbook
>
> Cheers, and once again, welcome!
>
>
>
> On Wednesday, April 9, 2014 12:53:06 AM UTC+5:30, Anthony Ortiz wrote:
>>
>> Hello world!
>>
>> I'm a C# developer who recently went to an interview at a major bank
>> here in NYC and fo

Re: Real World Example

2014-04-09 Thread Sean Corfield
And for comparison at World Singles:

Clojure source 101 files 17952 total loc,
1321 fns, 666 of which are private,
203 vars, 8 macros, 29 atoms
Clojure tests 43 files 3790 total loc
Clojure WebDriver tests 14 files 560 total loc

(includes comments / whitespace etc - this is just the output of a simple 
script we run every week to track where we are on migration from our legacy 
code base and growth of our Clojure code)

The atoms are nearly all just caches. We're moving away from private functions.

Sean

On Apr 9, 2014, at 1:17 AM, Colin Yates  wrote:

> Gah - 5547 production, 2600 of tests.  A lot of that discrepancy is down to 
> the very extensive documentation that https://github.com/gdeer81/marginalia 
> allows you to write.
> 
> Please forgive any other mistakes, working on less than an hours sleep due to 
> my lovely kids.
> 
> On Wednesday, 9 April 2014 09:14:38 UTC+1, Colin Yates wrote:
> Hello back!
> 
> We are using Clojure on the JVM as the implementation language for a platform 
> that will underpin our applications for the next decade.  It is relatively 
> new and so far we have implemented the analysis module which is essentially a 
> generic charting engine.  
> 
> So far we have 5547 lines of production code (including comments) and 2600 
> lines of production code (including comments).
> 
> That doesn't sound like much but I can tell you it is replacing a similar, 
> but slightly smaller in scope analysis module written in Java which was 
> around 40K lines of production code.
> 
> Our architecture is Clojure on the back end exporting a number of JSON end 
> points.  It is backed by MS SQL using the fantastic 
> https://github.com/jkk/honeysql library.
> 
> For me, it is a dream coming from Java (and to a much lesser extent Scala), 
> but it does have its costs.  Moving from an OO world to an FP world isn't 
> easy, particularly in the shapes your solutions end up with.  I am also 
> feeling the pain of not having types - everything is a sequence.  This is a 
> joy but it also means a whole bunch of information (i.e. type information) is 
> lost.  
> 
> One of the wins in OO languages is the many number of places to hang semantic 
> information - the name of the class, the structure of the class, the names of 
> the methods etc.  I also find many more intermediary variables in OO where as 
> in Clojure it seems more idiomatic to have pipelines of transformation.  I am 
> feeling the lost of static types as I refactor APIs particularly.
> 
> This is undoubtedly my failing not Clojure's and I just need to absorb more 
> good FP paradigms.  Would I give up my emacs and Clojure and paredit 
> combination?  Not a chance :).
> 
> Col
> 
> On Tuesday, 8 April 2014 20:23:06 UTC+1, Anthony Ortiz wrote:
> Hello world!
> 
> I'm a C# developer who recently went to an interview at a major bank here in 
> NYC and found that they've been using Clojure for their business logic for 
> over a year already and that got me curious, so I find myself on unfamiliar 
> territory learning how to program in a functional language. So far so good, 
> Moxley Stratton's online tutorial combined with Try Clojure (the online 
> interpreter) has been very helpful (kudos to you guys!) and I'm now going 
> through the book 'Programming Clojure'. So far I've seen a lot of 
> utility/academic examples such as fibonacci but little in the way of an 
> actual real-world example of a top-to-bottom desktop application built using 
> Clojure on either the JVM or CLR, something simple that would demonstrate how 
> Clojure fits into the event-driven model on the client-side behind, let's 
> say, WPF, and how it would interact with more Clojure on the service-side 
> via, let's say, WCF. Does anyone know of an example they can direct me to?
> 
> Many thanks!
> 
> Anthony




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Real World Example

2014-04-10 Thread Mike Haney
I'm in the early stages of developing a real-world app for a customer that will 
use a full clojure stack.  It's maybe not as sexy as all the social networking 
examples you see, but I think it's more representative of the types of apps 
most people write to satisfy real business needs.

The app is for a service company doing industrial electrical work, and will be 
used to manage jobs, schedule crews, order parts, tie into the accounting 
system for invoicing - typical stuff that every business needs to manage.  It 
will have a web interface as well as mobile, since one of main goals is to 
equip the crews with tablets to use in the field.

It's a big project that I wouldn't even attempt as a side project if it weren't 
for the leverage clojure gives me.

One thing I would like to do is blog about the project as I work on it.  I 
think this would not only be valuable for the community at large, but also 
would help me to vet my design choices based on feedback.

I'm meeting with the customer tomorrow and will bring this up.  I know him 
well, and I expect to get his approval, so hopefully I'll have the blog up in 
the next week or so.

-- 
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: Real World Example

2014-04-10 Thread Anthony Ortiz
Oh that would be very nice!

On Thursday, April 10, 2014 9:22:35 AM UTC-4, Mike Haney wrote:
>
> I'm in the early stages of developing a real-world app for a customer that 
> will use a full clojure stack.  It's maybe not as sexy as all the social 
> networking examples you see, but I think it's more representative of the 
> types of apps most people write to satisfy real business needs.
>
> The app is for a service company doing industrial electrical work, and 
> will be used to manage jobs, schedule crews, order parts, tie into the 
> accounting system for invoicing - typical stuff that every business needs 
> to manage.  It will have a web interface as well as mobile, since one of 
> main goals is to equip the crews with tablets to use in the field.
>
> It's a big project that I wouldn't even attempt as a side project if it 
> weren't for the leverage clojure gives me.
>
> One thing I would like to do is blog about the project as I work on it.  I 
> think this would not only be valuable for the community at large, but also 
> would help me to vet my design choices based on feedback.
>
> I'm meeting with the customer tomorrow and will bring this up.  I know him 
> well, and I expect to get his approval, so hopefully I'll have the blog up 
> in the next week or so.
>
>

-- 
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: Real World Example

2014-04-10 Thread Marcus Blankenship
Hey Mike, are you doing this as a one-man-show?

On Apr 10, 2014, at 6:22 AM, Mike Haney  wrote:

> I'm in the early stages of developing a real-world app for a customer that 
> will use a full clojure stack.  It's maybe not as sexy as all the social 
> networking examples you see, but I think it's more representative of the 
> types of apps most people write to satisfy real business needs.
> 
> The app is for a service company doing industrial electrical work, and will 
> be used to manage jobs, schedule crews, order parts, tie into the accounting 
> system for invoicing - typical stuff that every business needs to manage.  It 
> will have a web interface as well as mobile, since one of main goals is to 
> equip the crews with tablets to use in the field.
> 
> It's a big project that I wouldn't even attempt as a side project if it 
> weren't for the leverage clojure gives me.
> 
> One thing I would like to do is blog about the project as I work on it.  I 
> think this would not only be valuable for the community at large, but also 
> would help me to vet my design choices based on feedback.
> 
> I'm meeting with the customer tomorrow and will bring this up.  I know him 
> well, and I expect to get his approval, so hopefully I'll have the blog up in 
> the next week or so.
> 
> -- 
> 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.

Best,
Marcus

Marcus Blankenship
\\\ Problem Solver, Linear Thinker
\\\ 541.805.2736 \ @justzeros \ skype:marcuscreo

-- 
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: Real World Example

2014-04-10 Thread Timothy Washington
I've also had a lot of success with Prismatic's
Schemalibrary. I've found it to
be a good middle ground between type hints,
Protocols, etc, and a full blown type system, such as
core.typed
.


Hth

Tim Washington
Interruptsoftware.com 


On Wed, Apr 9, 2014 at 7:22 AM, Colin Yates  wrote:

> Hi Fergal,
>
> Thanks for those links.  I started using protocols and defrecords but I
> (maybe mistakenly) got the impression that they were "frowned upon".  As it
> turns out, maps (typically with a :type key) and multi methods go a long
> long way, but I still end up with fairly deep nesting of maps.
>
> Maybe that is the key - deep nesting of maps maybe cries out "one object
> [data model] to rule them all" and I need to decompose it further.
>
> Without types almost all the type hints would be either the map of
> sequence interface.  It isn't so much the structure that is obscure, but
> the semantics of what that structure is modelling.
>
> As I hinted at, I am sure it is because my implementation model is still
> influenced too much by my OO background.
>
> Onwards and upwards as they say.
>
> Col
>
>
> On Wednesday, 9 April 2014 11:37:52 UTC+1, Fergal Byrne wrote:
>
>> Hi Anthony,
>>
>>
>>

-- 
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: Real World Example

2014-04-10 Thread Mike Haney
Yes, it's just me.  Crazy, right?  Like I said, I wouldn't even have attempted 
it without the productivity gains I've seen since I've started using clojure.

Fortunately, the customer isn't in "we need this yesterday" mode (a refreshing, 
but rare, circumstance).

-- 
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: Real World Example

2014-04-10 Thread Karsten Schmidt
Hi Anthony, unfortunately I can't point you to actual code examples
(since this was work for a client), but I've got some screenshots &
screenrecordings of a few OpenGL/CL desktop apps written in Clojure.
Both of them don't use Swing for UI, but a custom widget system
sitting straight on OpenGL2+ (each control implemented as VBO):

http://flickr.com/toxi/sets/72157630719227308/

This video gives a brief overview of the web application/cloud
component of this project and was completely developed w/ Clojure (and
some minor JS sprinkling):
https://www.youtube.com/watch?v=WyVI5vnp570

Some more details how this was build (and libs used) are discussed in
this old thread:
https://groups.google.com/d/msg/clojure/Z995K48BZGA/IDSAEm-PKFkJ

So far I haven't been able to properly document the project below yet,
but that too is using the same desktop app setup as the prev project
and am working hard to make time to prepare an open source release of
this (incl. all libs):

https://secure.flickr.com/photos/toxi/sets/72157636665658583/

An animated version of that physics based logo can be seen here
(reload for different letters)
http://resonate.io

Hth! K.

-- 
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: Real World Example

2014-04-10 Thread Anthony Ortiz
Wow, this is awesome! Thanks for posting this, I'm going through it as soon 
as I'm done with dinner!

On Thursday, April 10, 2014 5:00:07 PM UTC-4, Karsten Schmidt wrote:
>
> Hi Anthony, unfortunately I can't point you to actual code examples 
> (since this was work for a client), but I've got some screenshots & 
> screenrecordings of a few OpenGL/CL desktop apps written in Clojure. 
> Both of them don't use Swing for UI, but a custom widget system 
> sitting straight on OpenGL2+ (each control implemented as VBO): 
>
> http://flickr.com/toxi/sets/72157630719227308/ 
>
> This video gives a brief overview of the web application/cloud 
> component of this project and was completely developed w/ Clojure (and 
> some minor JS sprinkling): 
> https://www.youtube.com/watch?v=WyVI5vnp570 
>
> Some more details how this was build (and libs used) are discussed in 
> this old thread: 
> https://groups.google.com/d/msg/clojure/Z995K48BZGA/IDSAEm-PKFkJ 
>
> So far I haven't been able to properly document the project below yet, 
> but that too is using the same desktop app setup as the prev project 
> and am working hard to make time to prepare an open source release of 
> this (incl. all libs): 
>
> https://secure.flickr.com/photos/toxi/sets/72157636665658583/ 
>
> An animated version of that physics based logo can be seen here 
> (reload for different letters) 
> http://resonate.io 
>
> Hth! K. 
>

-- 
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: Real World Example

2014-04-11 Thread Alan Moore

>
> I'm building a fairly large real-world system called Clortex [1], which is 
> a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2]. As 
> it's a greenfield project, I've chosen to use Clojure components all the 
> way through instead of fitting in with Java-based or .Net-based frameworks. 
> There are good reasons why you should do this if you can, but obviously 
> that doesn't help you directly with your question.
>

[off topic]

Wow... good thing I read your post... I was just about to do the same thing 
having followed the development of HTM for some time now and finding their 
reference implementation to be somewhat convoluted. I thought Clojure would 
be a better language for it... TBD.

Let me know if/how I can help.

Alan

-- 
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: Real World Example

2014-04-11 Thread Fergal Byrne
Hi Alan,

Thanks for your interest - everywhere I mention this in the Clojure world I
get the same reaction! This is one of the reasons why I settled on Clojure
a couple of months back (Erlang and Elixir were also good choices, but the
Clojure movement has so much energy it was a no-brainer).

I'm in the middle of developing the key algorithms for Clortex, and
exploring a number of approaches at the same time, so the code is a bit of
a tangle in places right now. Once it's a little more stable I'll make it
public.

In the meantime, if you're interested (and know HTM/CLA to some extent),
please send me your github handle offlist and I'll add you as a contributor.

Regards,

Fergal


On Fri, Apr 11, 2014 at 10:03 AM, Alan Moore  wrote:

> I'm building a fairly large real-world system called Clortex [1], which is
>> a rewrite of the Numenta Platform for Intelligent Computing (NuPIC) [2]. As
>> it's a greenfield project, I've chosen to use Clojure components all the
>> way through instead of fitting in with Java-based or .Net-based frameworks.
>> There are good reasons why you should do this if you can, but obviously
>> that doesn't help you directly with your question.
>>
>
> [off topic]
>
> Wow... good thing I read your post... I was just about to do the same
> thing having followed the development of HTM for some time now and finding
> their reference implementation to be somewhat convoluted. I thought Clojure
> would be a better language for it... TBD.
>
> Let me know if/how I can help.
>
> Alan
>
>  --
> 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.
>



-- 

Fergal Byrne, Brenter IT

Author, Real Machine Intelligence with Clortex and NuPIC
https://leanpub.com/realsmartmachines

http://inbits.com - Better Living through
Thoughtful Technology
http://ie.linkedin.com/in/fergbyrne/
https://github.com/fergalbyrne

e:fergalbyrnedub...@gmail.com t:+353 83 4214179
Formerly of Adnet edi...@adnet.ie http://www.adnet.ie

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