Re: [ANN] Clojure 1.10.0-RC1 (please test!)

2018-10-17 Thread Ken Restivo
On Thu, Oct 11, 2018 at 08:11:45AM -0700, Alex Miller wrote:
> 1.10.0-RC1 is now available. You can try it with clj using:
> 
>   clj -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.10.0-RC1"}}}'
> 
> 1.10.0-RC1 is the same code as beta2 (only change are some changelog 
> fixes). 
> You can read the full 1.10 changelog here: 
> https://github.com/clojure/clojure/blob/master/changes.md
> 
> *Note: This is a release candidate! Please try this release candidate with 
> your project and provide feedback (both whether it works as expected and 
> any issues).* If there are issues we will assess, otherwise we intend to 
> move towards a final release of 1.10. 
> 

I ran the 3 projects at work that use 1.9.0 in production, and they passed
unit tests with 1.10.0 RC1.

-ken

-- 
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: Version control at the function level - a la Rich

2017-03-04 Thread Ken Restivo
On Fri, Feb 17, 2017 at 01:56:04PM -0800, Josh Tilles wrote:
> I’m pretty sure you’re looking for codeq: 
> http://blog.datomic.com/2012/10/codeq.html
> 
> On Friday, February 17, 2017 at 4:39:12 PM UTC-5, Terje Dahl wrote:
> >
> > I recall Rich Hickey talking about this a few years back, but can't find 
> > anything about it.  
> > Am I just imaging it?
> > Or could someone point me in the right direction
> >
> 

I also remember him making some good points about this in his
"Spec-ulation" keynote recently.

https://www.youtube.com/watch?v=oyLBGkS5ICk

-ken

-- 
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: RIP Anthony Grimes (Raynes)

2016-12-07 Thread Ken Restivo
Many people who have been here a while know what a bright, talented, and 
promising young programmer he was, and of his impressive list of contributions 
to the Clojure community. He seemed relentlessly curious, and worked 
professionally in Clojure, Haskell, NodeJS, CoffeeScript, Python, and last week 
was selling me on the virtues of some new javascript thing called 
Svelte.technology.

My project.clj's-- and I'm sure many other people's as well-- are filled with 
calls to his fine libraries.

What a lot of people might not know about Anthony is how much his first love 
(perhaps even more than programming) appeared to have been music. He regularly 
made videos of his singing and rapping covers. He could spend hours talking 
about and playing music, and he was as fearless and eclectic in his tastes in 
music as in technology.

Only a subset of the music he loved made it into my playlist, but I will never 
again be able to hear Eminiem, Watsky, Yelawolf, twentyone pilots, George 
Jones, Adam Lambert, Panic! at the Disco, The Pretty Reckless, CHVRCHES, Fall 
Out Boy, Kitty Pryde, One Republic, Dolly Parton, Paramore, Lana del Rey, and a 
few others, without thinking of him.

If you've never heard some of these artists, and you look up their music find 
that you like it, I'd venture a guess that he'd have been happy to have been a 
motivation for your discovery.

-ken
--
-
On Wed, Dec 07, 2016 at 08:32:06AM -0500, Chas Emerick wrote:
> As some may have already seen on Twitter or other channels, our friend
> Anthony Grimes (Raynes in #clojure IRC and elsewhere, @StRaynes on Twitter)
> has passed away.
> 
> The most immediate announcement of this came via Lance Bradley, one of
> Anthony's closer friends from the Clojure community:
> 
> https://www.facebook.com/lancepantz/posts/10104155686547809?pnref=story
> 
> Anthony's family set up a fundraiser to help with his final expenses, but
> people are going well beyond the target set there; in any case, the family
> would certainly appreciate any help you can offer:
> 
> https://www.gofundme.com/32m55h4
> 
> If you don't know of Anthony, he was a constant inspiration and helping hand
> in Clojure's earlier days, especially in #clojure IRC where he tutored and
> encouraged people daily for years. He was also the creator or a significant
> contributor to dozens of Clojure projects, some of which I guarantee you
> still rely upon every day.
> 
> Anthony himself wrote about some of his history in the Clojure community,
> and also happened to recount at length the most significant memory I'll have
> of him, when we all helped to get a kind 16-year-old to the first Clojure
> Conj in 2010:
> http://blog.raynes.me/blog/2011/11/27/the-clojure-community-and-me/
> 
> I have other memories of and about Anthony that I'd like to share, but not
> now, not yet. Of course, the family will be having a local service for him
> in their time and way. ABecause so many people around the world knew, worked
> with, and called Anthony a friend, I'm hoping we can all have an
> online/remote memorial (maybe an any-comers Hangout or something). That's
> just an idea at the moment, details TBD.
> 
> If you'd like to talk a bit about how Anthony influenced or inspired you,
> please feel free to, here. Some people are also using the #RIPRaynes
> hashtag, if that's your game.
> 
> Rest easy, dude.
> 
> love,
> 
> - Chas
> 
> -- 
> 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.

-- 
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: core.async top use cases

2016-09-19 Thread Ken Restivo
On Sat, Sep 17, 2016 at 11:37:38PM -0700, Matan Safriel wrote:
> Hi,
> 
> It's very easy to see how core.async solves callback hell for front-end 
> development with clojurescript.
> In what use cases would you use it for server-side? we already have 
> non-blocking IO from Java, and we have clojure agents. So what's a bunch of 
> salient use cases?
> Are there prominent clojure http server implementations which rely on it 
> for transcending the threaded web service paradigm?
> 

Decoupling components within a system, similar to what one would use queues or 
a messaging architecture for.

Used it extensively in two projects (one open source, one for a client) some 
years ago.

Rather than coupling the components via namespace dependencies and a call API, 
I just had the components passing data via async channels (queues), including 
pub/sub and topic subscription.

Worked great for its intended purpose.

-ken

-- 
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: clojars down?

2016-01-01 Thread Ken Restivo
For deploys, I use uberjars. They don't need any dependencies. It's also 
arguably more secure to have a jar that I know has everything in it, rather 
than trusting lein to fetch it from somewhere that might have been DNS spoofed, 
maliciously proxied, etc.

Of course, builds can be broken by clojars going down, but most everything I'd 
need at build time is in ~/.m2/repository anyway.

-ken
--

On Fri, Jan 01, 2016 at 07:10:36PM -0800, Alex Miller wrote:
> I agree with Kyle - I've usually run a company proxy which gives you a lot of 
> options (it's good to publish company forks of libs too).
> 
> I believe one of the items the Clojars maintainers are working on with their 
> new funding is support for mirrors.
> 
> -- 
> 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.

-- 
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: Reducing the pain of a clojars outage

2016-01-01 Thread Ken Restivo
Any tooling would also have to upgrade to clj-http 2.0.0 and/or HttpClient 4.5, 
because before that SNI was broken even on Java 8:

https://issues.apache.org/jira/browse/HTTPCLIENT-1613?devStatusDetailDialog=repository

Supposedly fixed in 4.5 of HttpClient, which 2.0.0 of clj-http pulls in, but I 
haven't tested to confirm.

-ken
--
-
On Fri, Jan 01, 2016 at 10:49:13PM -0500, Toby Crawley wrote:
> One potential issue with the mirrors is java 6 and HTTPS - the mirrors
> couldn't use 2048-bit dhparams[1] or SNI[2], since neither are
> supported in java 6. Yes, we all should be on java 7 or 8 at this
> point, but I believe Intellij still uses java 6 on MacOS, which would
> mean Cursive couldn't download from the mirrors.
> 
> [1]: https://weakdh.org/sysadmin.html
> [2]: https://en.wikipedia.org/wiki/Server_Name_Indication
> 
> On Fri, Jan 1, 2016 at 10:31 PM, Toby Crawley  wrote:
> > Given the recent DDoS-triggered outages at linode (including the one
> > today that has been the worst yet, currently 10 hours at the time I'm
> > writing this), I've been giving some more thought to how we can make
> > future outages less painful for the community.
> >
> > I have an open issue[1] (but no code yet) to move the repository off
> > of the server and on to a block store (s3, etc), with the goal there
> > to make repo reads (which is what we use clojars for 99.9% of the
> > time) independent of the status of the server. But I'm not sure that
> > really solves the problem we are seeing today. Currently, we have two
> > points of failure for repo reads:
> >
> > (1) the server itself (hosted on linode)
> > (2) DNS for the clojars.org domain (also hosted on linode)
> >
> > moving the repo off of the server to a block store still has two
> > points of failure:
> >
> > (1) the block store (aws, rackspace, etc)
> > (2) DNS for the clojars.org domain, since we would CNAME the block
> >  store (hosted on linode)
> >
> > Though the block store provider would probably be better distributed,
> > and have more resources to withstand a DDoS (but do any block store
> > providers have 100% uptime?).
> >
> > The block store solution is complex - it introduces more moving parts
> > into clojars, and requires reworking the way we generate usage stats,
> > and how the api gets its data. It also requires reworking the way we
> > administer the repo (deletion requests, cleaning up failed/partial
> > deploys). And it may not solve the availability problem at all, since
> > we still have two points of failure.
> >
> > I think a better solution may be to have multiple mirrors of the repo,
> > either run by concerned citizens or maintained by the clojars staff. I
> > know some folks in the community already run internal caching proxies
> > or rsynced mirrors (and are probably chuckling knowingly at those of
> > us affected by the outage), but those proxies don't really help those
> > in the community that don't have that internal infrastructure. And I
> > don't want to recommend that everyone set up a private mirror - that
> > seems like a lot of wasted effort.
> >
> > Ideally, it would be nice if we had a turn-key tool for creating a
> > mirror of clojars. We currently provide a way to rsync the repo[2], so
> > the seed for a mirror could be small, and could then slurp down the
> > full repo (and could continue to do so on a schedule to remain up to
> > date). We could then publish a list of mirrors that the community
> > could turn to in times of need (or use all the time, if they are
> > closer geographically or just generally more responsive). Any deploys
> > would still need to hit the primary server, but deploys are are
> > dwarfed by reads.
> >
> > There are a few issues with using mirrors:
> >
> > (1) security - with artifacts in more places, there are more
> > opportunities to to introduce malicious versions. This could be
> > prevented if we had better tools for verifying that the artifacts
> > are signed by trusted keys, and we required that all artifacts be
> > signed, but that's not the case currently. But if we had a regular
> > process that crawled all of the mirrors and the canonical repo to
> > verify that the checksums every artifact are identical, this could
> > actually improve security, since we could detect if any checksum
> > had been changed (a malicious party would have to change the
> > checksum of a modified artifact, since maven/lein/boot all confirm
> > checksums by default).
> >
> > (2) download stats - any downloads from a mirror wouldn't get
> > reflected in the stats for the artifact unless we had some way to
> > report those stats back to clojars.org. We currently generate the
> > stats by parsing the nginx access logs, mirrors could do the same
> > and report stats back to clojars.org if we care enough about
> > this. We don't get stats from the existing private mirrors, and
> > the stats aren't critical, so this may 

San Francisco Meetup at Climate Corp still active?

2015-11-29 Thread Ken Restivo
Meetup.com sends me notices every month about "N Clojure programmers are 
attending the monthly Clojure Meetup at Climate Corp".

I've shown up at the last two on the scheduled date and time, and there are 
much less than N Clojure programmers there. In fact there's been exactly 1: me. 
Wandering around their office trying to find out if anyone knows what's going 
on.

Is Meetup posting zombie meetups? Has the meetup changed location, or is it no 
longer active?

I get notices about Zach's office hours event at Factual, but I'm not sure if 
it's the same thing renamed, or what.

-ken

-- 
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: Timbre corrupting EDN via prn-str

2015-10-07 Thread Ken Restivo
I've dug into this more, and it seems there's a third factor at work: conch.

In one of the functions called before this data is written, conch is shelling 
out to a command. Obviously it's also mucking around with stdin/stdout/stderr.

Only when conch is called, is this error generated. Not shelling out makes the 
problem go away. So it's an interaction between pr-str, conch and/or 
clojure.java.shell, and Timbre-- all three of which are manipulating *out* 
which I'm guessing is not thread-safe.

I don't know the solution yet but starting to understand the problem anyway.

-ken
--
---
On Wed, Oct 07, 2015 at 11:45:02AM +0300, Atamert Ölçgen wrote:
> So you actually want to print your data. I don't think it can be helped
> then, two threads writing to the same buffer. I would have one of them use
> a different buffer, write the logs to a file and tail it for instance.
> 
> On Wed, Oct 7, 2015 at 11:36 AM, Ken Restivo <k...@restivo.org> wrote:
> 
> > Yep. It doesn't help.
> >
> > I also tried (.flush *out*) before...  no dice.
> >
> > -ken
> > --
> > -
> > On Wed, Oct 07, 2015 at 11:31:12AM +0300, Atamert Ölçgen wrote:
> > > Hi Ken,
> > >
> > > Have you tried with-out-str?
> > >
> > > On Wed, Oct 7, 2015 at 11:18 AM, Ken Restivo <k...@restivo.org> wrote:
> > >
> > > > I was trying to save a data structure using prn-str.
> > > >
> > > > However, I'm also using Timbre for logging.
> > > >
> > > > My nice data structure is getting corrupted by INFO and DEBUG and other
> > > > log messages from Timbre.
> > > >
> > > > Is there any way to turn a Clojure data structure into EDN without
> > mucking
> > > > around with things like pr-str that use *out*, which apparently is
> > used for
> > > > logging, among other things?
> > > >
> > > > -ken
> > > >
> > > > --
> > > > 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.
> > > >
> > >
> > >
> > >
> > > --
> > > Kind Regards,
> > > Atamert Ölçgen
> > >
> > > ◻◼◻
> > > ◻◻◼
> > > ◼◼◼
> > >
> > > www.muhuk.com
> > >
> > > --
> > > You received this message because you are subscribed to the Google
> > > Groups "Clojure" group.
> > > To post to this group, send email to clojure@googlegroups.com
> > > Note that posts from new members are moderated - please be patient with
> > your first post.
> > > To unsubscribe from this group, send email to
> > > clojure+unsubscr...@googlegroups.com
> > > For more options, visit this group at
> > > http://groups.google.com/group/clojure?hl=en
> > > ---
> > > 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.
> >
> > --
> > 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" gro

Timbre corrupting EDN via prn-str

2015-10-07 Thread Ken Restivo
I was trying to save a data structure using prn-str.

However, I'm also using Timbre for logging.

My nice data structure is getting corrupted by INFO and DEBUG and other log 
messages from Timbre.

Is there any way to turn a Clojure data structure into EDN without mucking 
around with things like pr-str that use *out*, which apparently is used for 
logging, among other things?

-ken

-- 
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: Timbre corrupting EDN via prn-str

2015-10-07 Thread Ken Restivo
Yep. It doesn't help.

I also tried (.flush *out*) before...  no dice.

-ken
--
-
On Wed, Oct 07, 2015 at 11:31:12AM +0300, Atamert Ölçgen wrote:
> Hi Ken,
> 
> Have you tried with-out-str?
> 
> On Wed, Oct 7, 2015 at 11:18 AM, Ken Restivo <k...@restivo.org> wrote:
> 
> > I was trying to save a data structure using prn-str.
> >
> > However, I'm also using Timbre for logging.
> >
> > My nice data structure is getting corrupted by INFO and DEBUG and other
> > log messages from Timbre.
> >
> > Is there any way to turn a Clojure data structure into EDN without mucking
> > around with things like pr-str that use *out*, which apparently is used for
> > logging, among other things?
> >
> > -ken
> >
> > --
> > 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.
> >
> 
> 
> 
> -- 
> Kind Regards,
> Atamert Ölçgen
> 
> ◻◼◻
> ◻◻◼
> ◼◼◼
> 
> www.muhuk.com
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> 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.

-- 
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: Status of lean runtime?

2014-12-10 Thread Ken Restivo
Thanks. I wasn't expecting anything to be released soon. 

Based on replies here and elsewhere, so far it seems there is:

1) The fastload branch of Clojure 
https://github.com/clojure/clojure/tree/fastload  (status unknown)
2) Oxcart  https://github.com/oxlang/oxcart (looks abandoned?)
3) Android Clojure https://github.com/clojure-android/clojure (unclear if it 
will or is intended to work on JVM or only on Android)

It seems as though release-track development on this would be blocked waiting 
for multiple-build-profiles tooling first anyway. 

Thanks again for your reply.

-ken
--
---
On Tue, Dec 09, 2014 at 07:33:05PM -0800, Alex Miller wrote:
 We are still very interested in improving both Clojure load times and 
 pursuing multiple build profiles. That work will not be part of 1.7.
 
 Alex
 
 -- 
 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.

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


Status of lean runtime?

2014-12-06 Thread Ken Restivo
I recall that at CljWest there was a talk regarding lean Clojure JVM runtimes 
for faster startup on Android and other embedded platforms. During the QA Rich 
endorsed the effort to create one, and to integrate it into Clojure core. I 
also recall hearing that there might have been a GSoc effort towards this.

Did that effort ever get underway? If so, what would be the best place to track 
the current status of this?

Thanks.

-ken

-- 
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: Status of lean runtime?

2014-12-06 Thread Ken Restivo
Update: I'm already aware of 
http://dev.clojure.org/display/design/%27Lean%27+Runtime but it hasn't been 
updated since May, hence, I'm asking if maybe that link is not the best place 
to look for current information.

Also, context: 
http://www.youtube.com/watch?v=8NUI07y1SlQ

Thanks.

-ken
--
---
On Sat, Dec 06, 2014 at 02:38:51PM -0800, Ken Restivo wrote:
 I recall that at CljWest there was a talk regarding lean Clojure JVM runtimes 
 for faster startup on Android and other embedded platforms. During the QA 
 Rich endorsed the effort to create one, and to integrate it into Clojure 
 core. I also recall hearing that there might have been a GSoc effort towards 
 this.
 
 Did that effort ever get underway? If so, what would be the best place to 
 track the current status of this?
 
 Thanks.
 
 -ken

-- 
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: Recursive codec/frames in gloss?

2014-10-11 Thread Ken Restivo
After this is decoded, I want the the payload, and it'd be nice to have the 
length too but not necessary.

Described in clojure instead of prose:

(defn get-payload-from-recursive-header-frame
  [[hlenlen  raw-bytes]]
  (let [hlen (apply + (take hlenlen raw-bytes))]
(drop hlenlen raw-bytes)))

Alternately, if I wanted to try to preserve the headers too:

(defn get-payload-from-recursive-header-frame-with-intermediate
  [[hlenlen  raw-bytes]]
  (let [hlens (take hlenlen raw-bytes)
hlen (apply + hlens)]
{:header-length hlenlen
 :segment-lengths hlens
 :payload (drop hlenlen raw-bytes)}))


Assuming raw-bytes is the whole packet including the header. In fact, I 
tested the above on some sample data and confirmed it works... without gloss.

I'll bet there's a place where I could just slot in one of the above functions 
within the gloss framework and it'd work, but I have not been able to figure 
out exactly where.

-ken
--
-
On Fri, Oct 10, 2014 at 10:32:59AM -0700, john walker wrote:
 What information do you want after this is decoded? Do you want the sum of 
 byte0 ... byten, as well as the actual payload? Do you also want the 
 header-length?
 
 On Thursday, October 9, 2014 11:34:59 PM UTC-7, Ken Restivo wrote:
 
  I'm playing around with Gloss, trying to decode a packet, part of which 
  has the following nested struture: 
 
  header-length (1 byte, value n) 
  byte0 ... byten (count defined by that header-length byte) 
 actual payload (length of which is the sum of the values of the 
  above bytes) 
 
  So instead of a fixed-size value (uint16, uint32, uint64, etc) defining 
  the size of the payload, there's a variable-length  list of bytes (up to 
  255),  which has to be summed, to determine the length of the payload. 
 
  Pretty easy to do imperatively, but I got lost in the dense forest of 
  gloss's abstractions, and couldn't figure out if it makes sense to try to 
  handle a case like this with it. 
 
  -ken 
 
 
 -- 
 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.

-- 
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: Recursive codec/frames in gloss?

2014-10-11 Thread Ken Restivo
Correction: this actually is what I'm trying to do:

(defn get-payload-from-recursive-header-frame
  [[hlenlen  raw-bytes]]
  (let [hlen (apply + (take hlenlen raw-bytes))]
(take hlen (drop hlenlen raw-bytes

Or with the headers preserved:

(defn get-payload-from-recursive-header-frame-with-intermediate
  [[hlenlen  raw-bytes]]
  (let [hlens (take hlenlen raw-bytes)
hlen (apply + hlens)]
{:header-length hlenlen
 :segment-lengths hlens
 :payload (take hlen (drop hlenlen raw-bytes))}))

Though after playing around some more it seems the gloss.core/header function 
might be the place to put this.

-ken
--

On Fri, Oct 10, 2014 at 10:32:59AM -0700, john walker wrote:
 What information do you want after this is decoded? Do you want the sum of 
 byte0 ... byten, as well as the actual payload? Do you also want the 
 header-length?
 
 On Thursday, October 9, 2014 11:34:59 PM UTC-7, Ken Restivo wrote:
 
  I'm playing around with Gloss, trying to decode a packet, part of which 
  has the following nested struture: 
 
  header-length (1 byte, value n) 
  byte0 ... byten (count defined by that header-length byte) 
 actual payload (length of which is the sum of the values of the 
  above bytes) 
 
  So instead of a fixed-size value (uint16, uint32, uint64, etc) defining 
  the size of the payload, there's a variable-length  list of bytes (up to 
  255),  which has to be summed, to determine the length of the payload. 
 
  Pretty easy to do imperatively, but I got lost in the dense forest of 
  gloss's abstractions, and couldn't figure out if it makes sense to try to 
  handle a case like this with it. 
 
  -ken 
 
 
 -- 
 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.

-- 
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: Recursive codec/frames in gloss? -- SOLVED

2014-10-11 Thread Ken Restivo
Solved:

(g/header
 (g/repeated :ubyte :prefix :ubyte)
 (fn [h]
   (g/finite-block (apply + h)))
 (fn [b]
...))

That did it.
 
On Fri, Oct 10, 2014 at 10:32:59AM -0700, john walker wrote:
 What information do you want after this is decoded? Do you want the sum of 
 byte0 ... byten, as well as the actual payload? Do you also want the 
 header-length?
 
 On Thursday, October 9, 2014 11:34:59 PM UTC-7, Ken Restivo wrote:
 
  I'm playing around with Gloss, trying to decode a packet, part of which 
  has the following nested struture: 
 
  header-length (1 byte, value n) 
  byte0 ... byten (count defined by that header-length byte) 
 actual payload (length of which is the sum of the values of the 
  above bytes) 
 
  So instead of a fixed-size value (uint16, uint32, uint64, etc) defining 
  the size of the payload, there's a variable-length  list of bytes (up to 
  255),  which has to be summed, to determine the length of the payload. 
 
  Pretty easy to do imperatively, but I got lost in the dense forest of 
  gloss's abstractions, and couldn't figure out if it makes sense to try to 
  handle a case like this with it. 
 
  -ken 
 
 
 -- 
 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.

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


Recursive codec/frames in gloss?

2014-10-10 Thread Ken Restivo
I'm playing around with Gloss, trying to decode a packet, part of which has the 
following nested struture:

header-length (1 byte, value n)
byte0 ... byten (count defined by that header-length byte)
   actual payload (length of which is the sum of the values of the 
above bytes)

So instead of a fixed-size value (uint16, uint32, uint64, etc) defining the 
size of the payload, there's a variable-length  list of bytes (up to 255),  
which has to be summed, to determine the length of the payload.

Pretty easy to do imperatively, but I got lost in the dense forest of gloss's 
abstractions, and couldn't figure out if it makes sense to try to handle a case 
like this with it.

-ken

-- 
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: Granularity in Leiningen profile loading

2014-01-08 Thread Ken Restivo
On Wed, Jan 08, 2014 at 08:52:34PM +, gvim wrote:
 In ~/.lein/profiles.clj I have:
 
 {:user {:plugins [[lein-ritz 0.7.0] [lein-ancient 0.5.4]]
 :dependencies [[org.clojure/core.typed 0.2.21]
[org.clojure/core.match 0.2.0]
[co.paralleluniverse/pulsar 0.3.0]]}}
 
 ... and I ~/.lein/projfiles.d/cljs.clj I have:
 
 {:plugins [[lein-cljsbuild 1.0.1]]
  :dependencies [[org.clojure/clojurescript 0.0-2138]
 [om 0.1.5]]}
 
 After `line new cljs1` I added a profiles entry and now have:
 
 (defproject yes 0.1.0-SNAPSHOT
   :description FIXME: write description
   :url http://example.com/FIXME;
   :license {:name Eclipse Public License
 :url http://www.eclipse.org/legal/epl-v10.html}
   :dependencies [[org.clojure/clojure 1.5.1]]
   :profiles {:clj {}})
 
 ... but after `lein deps` the cljs profile still isn't loaded.
 
 Any suggestions?
 
 gvim
 

Just a wild guess, but have you tried this patch?

https://github.com/technomancy/leiningen/commit/3d50e8c9baedfcc54c4b21b2bb3fbbc676b9a713

-ken

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


as- macro enhancement request?

2013-08-20 Thread Ken Restivo
I like the as- macro, mostly because it'd theoretically obviate the need to 
include the Swiss Arrows library anymore.

There's one reason why I keep going back to Swiss Arrows though: the ability to 
include single-arg functions in the chain that do not have the explicit token.

i.e. in Swiss Arrows, I can do:

(- foo
 bar
 (baz  quux)
 blah)

Note, it's clean and simple, no need for a bunch of noise and 's where not 
needed, only when calling functions with arity  1.
 
But with as-, I have to do:

(as-  foo
 (bar )
 (baz  quux)
 (blah ))

And that just seems unnecessarily noisy to me.


Would love it if as- allowed removing unnecessary characters, this way:

(as-  foo
 bar
 (baz  quux)
 blah)


Anyway, very minor quibble, just putting it out there.

Thanks.

-ken

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


Re: Database migrations

2013-06-14 Thread Ken Restivo
Migratus seems to be pretty similar to this, is a nice small library. I've used 
it and it works well.

https://github.com/pjstadig/migratus

-ken
--

On Fri, Jun 14, 2013 at 11:44:08AM -0500, Steven Degutis wrote:
 Phil uses this really cool trick:
 https://github.com/technomancy/syme/blob/master/src/syme/db.clj#L66-L119
 
 The benefit is that your migrations are just Clojure functions. No messing
 around with files or timestamps or whatever. Dead simple.
 
 I hope someone extracts it into a lib with tests around it. He won't on
 principle, saying copy/pasting it emphasizes just how simply this problem
 can be solved. But there's something to be said for using a tested lib in
 production code.
 
 
 On Fri, Jun 14, 2013 at 11:24 AM, Reginald Choudari 
 adnanchowdhur...@gmail.com wrote:
 
  Hello all,
 
  I am trying to implement database migrations with Clojure. So far I have
  been looking at Drift (https://github.com/macourtney/drift) as a
  candidate for implementing this. My question is, does anyone have a
  database migration workflow that they use and would like to share? One
  problem I have been thinking is how to tackle database credentials/db name
  configuration. I know in Rails its common to use a YAML to provide this
  info, wondering if there was something more idiosyncratic to clojure?
 
  Thanks in advance
 
  --
  --
  You received this message because you are subscribed to the Google
  Groups Clojure group.
  To post to this group, send email to clojure@googlegroups.com
  Note that posts from new members are moderated - please be patient with
  your first post.
  To unsubscribe from this group, send email to
  clojure+unsubscr...@googlegroups.com
  For more options, visit this group at
  http://groups.google.com/group/clojure?hl=en
  ---
  You received this message because you are subscribed to the Google Groups
  Clojure group.
  To unsubscribe from this group and stop receiving emails from it, send an
  email to clojure+unsubscr...@googlegroups.com.
  For more options, visit https://groups.google.com/groups/opt_out.
 
 
 
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.
 
 

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




nrepl-ritz without jack-in?

2013-05-16 Thread Ken Restivo
nrepl-ritz looks very interesting, and I've been meaning to try it out.

The problem is that I don't use jack-in. I have long-running processes, 
sometimes running on a separate machine, and connect and disconnect from them 
from emacs, using (nrepl localhost portnum).

I haven't figured out how to get nrepl-ritz to deal with this situation. I've 
got the profiles set up according to the docs (middleware, plugis, 
dependencies, etc) and restarted the processes. I've run 
nrepl-break-on-exception and then tried (/ 1 0) in the nrepl. No break, no 
debugger, just the usual pst+ output.

Is it possible to do what I'm attempting with nrepl-ritz? If I've got something 
misconfigured, I'll figure it out, but if it's not a supported option, I'd 
rather know now before spending too much time trying to get it to work.

Thanks.

-ken

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




Re: No show?

2012-02-11 Thread Ken Restivo
On Thu, Feb 09, 2012 at 11:41:31AM -0400, Stuart Halloway wrote:
  clojure.reflect/reflect gets you the same information as a big 'ole data 
  structure. You can pprint it for readability.
  
  The only thing that was not ported was the formatted text output, which 
  would be easy enough to reproduce based on `reflect`.
 
 In particular, reflect + clojure.pprint/print-table.


= (require 'clojure.reflect)
nil
= (require 'clojure.pprint)
nil
= (clojure.pprint/print-table (clojure.reflect/reflect Math))
ClassCastException clojure.lang.Keyword cannot be cast to java.util.Map$Entry  
clojure.lang.APersistentMap$KeySeq.first (APersistentMap.java:132)

But reflect is useful enough just as a map, so problem solved, thanks!

-ken

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


No show?

2012-02-08 Thread Ken Restivo
Hi all,

I'm curious why the show function got abandoned when migrating from monolithic
contrib.repl-utils to clojure.repl?

http://dev.clojure.org/display/design/Where+Did+Clojure.Contrib+Go

It looks like it would have been useful. Does anything replace it?

Thanks.

-ken

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