[ANN] Lightmod, an all-in-one tool for full stack Clojure
Today I'm releasing a new tool that lets you make full stack Clojure web apps without any build tools or even any system-wide JDK install. It runs everything internally and gives a very integrated experience that I think is great for newcomers. You are limited to the libraries that I bundled with the tool, so this is just meant to be a smoother stepping stone before you take the red pill and become a full clojure acolyte. Anyway here's the website: https://sekao.net/lightmod/ Check out the screencast on the website to see it in action. Please let me know when you find bugs...my first releases are always pretty shaky. Enjoy! -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [ANN] Lightmod, an all-in-one tool for full stack Clojure
This is really cool! Nice job! Andrew Oberstar On Sat, Nov 4, 2017 at 12:50 PM Zach Oakes wrote: > Today I'm releasing a new tool that lets you make full stack Clojure web > apps without any build tools or even any system-wide JDK install. It runs > everything internally and gives a very integrated experience that I think > is great for newcomers. You are limited to the libraries that I bundled > with the tool, so this is just meant to be a smoother stepping stone before > you take the red pill and become a full clojure acolyte. Anyway here's the > website: > > https://sekao.net/lightmod/ > > Check out the screencast on the website to see it in action. Please let me > know when you find bugs...my first releases are always pretty shaky. Enjoy! > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from 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: What's up with IMeta?
On 3 November 2017 at 06:57, Didier wrote: > Okay, I can see how I can maybe infer some of that by piecing together the > code base, but if there was a book, or a reference somewhere describing > more the implementation of Clojure itself I'd be interested to read it, if > there is one out there. I'd understand if there's not, I know Clojure has > no formal semantic spec. > I don't know of one, I'm afraid. > Also, I guess I'm still confused about that bit: > > > That said, metadata and its relationship to an object is immutable - an > object with different metadata is a different object. One consequence of > this is that applying metadata to a lazy sequence will realize the head of > the sequence so that both objects can share the same sequence. > What confuses you about it? Is it the "realize the head of the sequence" part? -- James Reeves booleanknot.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.
Re: What's up with IMeta?
> > > That said, metadata and its relationship to an object is immutable - an >> object with different metadata is a different object. One consequence of >> this is that applying metadata to a lazy sequence will realize the head of >> the sequence so that both objects can share the same sequence. >> > > What confuses you about it? Is it the "realize the head of the sequence" > part? > I think I'm firstly confused by the use of the word object. I'm guessing in this case it refers to things that implement IObj? I'm then confused by what is meant that an object with different meta is a different object, if they are still equal? I'm guessing it means that if you change the meta on an IObj, you get a copy? And then I'm confused as to why that would cause lazy-seq to realize their head? Can't two lazy-seq share the same head? On Saturday, 4 November 2017 11:40:54 UTC-7, James Reeves wrote: > > On 3 November 2017 at 06:57, Didier > > wrote: > >> Okay, I can see how I can maybe infer some of that by piecing together >> the code base, but if there was a book, or a reference somewhere describing >> more the implementation of Clojure itself I'd be interested to read it, if >> there is one out there. I'd understand if there's not, I know Clojure has >> no formal semantic spec. >> > > I don't know of one, I'm afraid. > > >> Also, I guess I'm still confused about that bit: >> >> > That said, metadata and its relationship to an object is immutable - an >> object with different metadata is a different object. One consequence of >> this is that applying metadata to a lazy sequence will realize the head of >> the sequence so that both objects can share the same sequence. >> > > What confuses you about it? Is it the "realize the head of the sequence" > part? > > -- > James Reeves > booleanknot.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.
Re: What's up with IMeta?
first class values on the jvm are objects On Sat, Nov 4, 2017 at 5:57 PM Didier wrote: > > That said, metadata and its relationship to an object is immutable - an >>> object with different metadata is a different object. One consequence of >>> this is that applying metadata to a lazy sequence will realize the head of >>> the sequence so that both objects can share the same sequence. >>> >> >> What confuses you about it? Is it the "realize the head of the sequence" >> part? >> > > I think I'm firstly confused by the use of the word object. I'm guessing > in this case it refers to things that implement IObj? I'm then confused by > what is meant that an object with different meta is a different object, if > they are still equal? I'm guessing it means that if you change the meta on > an IObj, you get a copy? And then I'm confused as to why that would cause > lazy-seq to realize their head? Can't two lazy-seq share the same head? > > On Saturday, 4 November 2017 11:40:54 UTC-7, James Reeves wrote: > >> On 3 November 2017 at 06:57, Didier wrote: >> >>> Okay, I can see how I can maybe infer some of that by piecing together >>> the code base, but if there was a book, or a reference somewhere describing >>> more the implementation of Clojure itself I'd be interested to read it, if >>> there is one out there. I'd understand if there's not, I know Clojure has >>> no formal semantic spec. >>> >> >> I don't know of one, I'm afraid. >> >> >>> Also, I guess I'm still confused about that bit: >>> >>> > That said, metadata and its relationship to an object is immutable - >>> an object with different metadata is a different object. One consequence of >>> this is that applying metadata to a lazy sequence will realize the head of >>> the sequence so that both objects can share the same sequence. >>> >> >> What confuses you about it? Is it the "realize the head of the sequence" >> part? >> >> -- >> James Reeves >> booleanknot.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: What's up with IMeta?
On 5 November 2017 at 00:57, Didier wrote: > I think I'm firstly confused by the use of the word object. I'm guessing > in this case it refers to things that implement IObj? > It means an object on the JVM. > I'm then confused by what is meant that an object with different meta is a > different object, if they are still equal? > Two objects can be equal, yet refer to two different locations in memory. For example: user=> (def a (java.net.URI. "/foo")) #'user/a user=> (def b (java.net.URI. "/foo")) #'user/b Here are two objects that are equal, but they each have a different location in memory: user=> a #object[java.net.URI 0xf20da5a "/foo"] user=> b #object[java.net.URI 0x290826b7 "/foo"] When two symbols reference the same object in memory, we say they are *identical*. In this case, a and b are *equal* but not *identical*. user=> (identical? a b) false user=> (= a b) true I'm guessing it means that if you change the meta on an IObj, you get a > copy? > It's more accurate to say that an IObj's metadata cannot be changed; you can only create a new IObj with new metadata. And then I'm confused as to why that would cause lazy-seq to realize their > head? Can't two lazy-seq share the same head? > This I'm not too certain about. It may just be an implementation detail. -- James Reeves booleanknot.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.