[ANN] New Caribou Release: Version 0.14.0
Hello Clojure People, Happy to announce the release of a new version of Caribou! http://let-caribou.in/ There are a lot of improvements in this latest release. We have tried to incorporate all of the feedback we have received since its initial release (which has been massive!). A small selection of the improvements: * *Heroku support fully integrated.* This turned out to be a big deal for a lot of people, and there were some hoops to jump through before getting a database set up. I am happy to say this has been vastly streamlined and improved, as well as fully documenting the process from provision to deploy: http://caribou.github.io/caribou/docs/deploying.html (at the bottom of that page). * *Routing streamlined and simplified. *We had this split into two steps before, but it is way simpler now. Also fixed a couple issues people were having with HTTP methods in nested routes. Polaris is also now fully integrated: https://github.com/caribou/polaris * *Immutant removed as a direct dependency.* A lot of people complained about having to download all of Immutant even if they weren't using it! This is no longer necessary, as you can now deploy to Immutant with options directly in your project.clj without ever making it a dependency of your project. * *Templating engine can be swapped out for anything.* You can now use whatever you want for templating, including Selmer: https://github.com/yogthos/Selmer (yogthos himself contributed this pull request!) Check out the bottom of this page for more details: http://caribou.github.io/caribou/docs/templates.html And many more (check out the docs for a full list of features: http://caribou.github.io/caribou/docs/outline.html ). As there were a lot of changes (not all of them backwards compatible), we made a guide for upgrading Caribou to the latest version if you already have an instance running somewhere: http://caribou.github.io/caribou/docs/upgrading.html ! Hopefully that will help out for anyone has a Caribou site under development (let us know if anything comes up!) Thanks to everyone who contributed feedback, issues and pull requests, and thanks to everyone who is using it to build awesome things. We are working hard to make it as useful as possible, and having real world feedback has been invaluable to that cause. Lastly, check out the roadmap for the direction we are going: http://caribou.github.io/caribou/docs/roadmap.html (Spoiler: we got a UX person!) We are open to any and all feedback on this or anything else! Thanks again. - Caribou Team -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [ANN] Hoplon: web applications in Clojure and ClojureScript
> > The hlisp part of Hoplon - the compiler bit that converts HTML to >> ClojureScript - was designed and implemented specifically to avoid having >> to do this. It's our opinion (and experience) that admission of the DOM as >> a data structure instead of a piece of the program introduces tremendous >> complexity. This data structure must be explicitly interpreted, evaluated, >> and updated in complicated ways that tend to couple tightly to both overall >> state logic and DOM quirks. That said, Hoplon markup can be manipulated as >> data the way any other Lisp program sanely can - via hygienic macros. >> > I am curious about this. I have had the opposite experience. Whenever I use a library based on macros I find myself wanting to do something with them the macro writer did not expect, and being forced to wrap the macros in functions so I can compose things programmatically (which seems to me like unnecessary complexity). I can't pass macros around as arguments, store them in a list, or apply them to arguments in a general way. On the other hand, if I am just working with a data structure, I can write functions to manipulate the data in novel ways and even use many functions that already exist to manipulate data without having to recreate that functionality for a specific domain (like looping, merging, search and replace etc). So I am curious specifically what flexibility you are gaining by using macros (things you can't do with functions and data) that would offset the flexibility you sacrifice with macros? I am open to being convinced on this point! -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Jim, Thanks for the note! Yeah we have been talking about ways to make the immutant download optional, so that solves that problem, thanks! It will be coming out in the next release. As for the "app/" dir, it is configurable between environments, as long as people know about it. I can make that more clear in the docs for Immutant deployment (actually it is an issue for tomcat deployment as well). Great song btw. Not direct inspiration, but maybe kicking around in the subconscious there? Thanks for Immutant as well, I am a big fan! We run all of our Caribou deployments on Immutant. Still working on integrating some of the larger features into our workflow. On Sun, Nov 24, 2013 at 4:05 PM, Jim Crossley wrote: > Prasanna, Ryan and Justin, > > Hi. I just got around to playing with Caribou today. Very nice! > > I was happy to see you including Immutant config in the application > template, but you don't need it. Immutant will happily bootstrap a deployed > app using the :ring options map in project.clj. As long as you're including > that, the immutant.clj file in the application template is redundant. > Here's more info: > http://immutant.org/builds/LATEST/html-docs/initialization.html#initialization-porting > > And I agree removing the immutant dependency in project.clj will greatly > reduce the number of downloaded jars. Technically, you only need that > dependency in project.clj when running *outside* of the Immutant container, > e.g. when your tests refer to the immutant namespaces. > > The only other Immutant-related feedback I might offer is wrt the assets > dir, "app/". Relative paths like that are only gonna work if you start up > Immutant in your project's directory, so in production you'll likely want > that to be an absolute path. > > I especially like the project's name. It reminds me of the Pixies song: > https://www.youtube.com/watch?v=x6m-pwWCDKU > > Thanks! > Jim > > > On Wed, Nov 13, 2013 at 1:25 AM, Ryan Spangler wrote: > >> Justin, >> >> As far as I know, Immutant is not a dependency, but an option. Let me >> know if that is not true however. >> >> >> On Tuesday, November 12, 2013 10:13:17 PM UTC-8, Justin Smith wrote: >>> >>> Typically my first step making a caribou app is to remove the immutant >>> dependency. It's pretty straightforward to take it out. >>> >>> On Tuesday, November 12, 2013 9:19:27 PM UTC-8, Prasanna Gautam wrote: >>>> >>>> This is really cool. Very easy to get up and running for first try. I >>>> have a few questions on the architecture. >>>> >>>> Why Immutant instead of plain ring as the default? I think the number >>>> of dependencies could be much lower with it. >>>> >>>> I know it's only alpha.. but I'm asking this on behalf of others who >>>> might be thinking the same. >>>> And, are there plans for NoSQL database support, like MongoDB, MapDB ( >>>> http://www.mapdb.org/ - I just found out about it myself but this is >>>> the only decent in-memory NoSQL solution other than Berkeley DB)? >>>> >>>> On Tuesday, November 12, 2013 6:52:10 PM UTC-5, Ryan Spangler wrote: >>>>> >>>>> Hello Clojure, >>>>> >>>>> Excited to announce today the release of Caribou! >>>>> http://let-caribou.in/ >>>>> >>>>> We have been building web sites and web applications with it for over >>>>> two years now and improving it every day. Currently we have four people >>>>> working on it and another ten using it to build things, so it is getting a >>>>> lot of real world testing. >>>>> >>>>> It has been designed as a collection of independent libraries that >>>>> could each be useful on their own, but which come together as a meaningful >>>>> whole. >>>>> >>>>> We have been spending the last couple months getting it ready for a >>>>> full open source release, and I am happy to say it is finally ready. >>>>> Funded and supported by Instrument in Portland, OR: >>>>> http://weareinstrument.com/ We have four projects using it in >>>>> production, and several more about to be launched (as well as over a dozen >>>>> internal things). >>>>> >>>>> Documentation is here: http://caribou.github.io/ >>>>> caribou/docs/outline.html >>>>> >>>>> Source is here: http://github.com/caribou/caribou (us
Re: Releasing Caribou today: Open Source Clojure Web Ecosystem
David, Certainly. There is already a facility to change them, I just haven't exposed that to the user yet! This will come out in the next release. On Tue, Nov 19, 2013 at 3:39 AM, David Simmons wrote: > Hi Khalid > > yes I'm aware you can change the template tags (and the pitfalls :-)). I > thought it would be easier to see if we could avoid this problem all > together by using a different set of tags (especially as Caribou is Alpha > release and hopefully open to change). BTW I don't intend to miss Angular > and Caribou templates tags in the same page, I just want to be able to use > the Caribous admin etc AND have my own pages use Angular. > > cheers > > Dave > > -- > -- > 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 a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/KeyaMJERW0o/unsubscribe. > To unsubscribe from this group and all its topics, 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.
Re: Do web apps need Clojure?
Marcus, Good to hear! I am have never used Drupal, what do you mean by pseudo-table? Also, looking into this I think the one caveat to using Caribou for your query engine is that it requires that you have a table for both "model" and "field" that contain the descriptions of the model you are querying. If you create the model using Caribou in the first place this will exist, but it probably won't if you are trying to use it on a non-caribou db. This could be mitigated by providing the model descriptions in some kind of configuration step... that wouldn't be too hard. I will ponder on how best to support that. On Mon, Nov 18, 2013 at 12:40 PM, Marcus Blankenship wrote: > Ryan, > > Awesome! We’re playing with Caribou now, and are loving it. At first we > thought “Oh, this is going to be like Drupal, with all it’s pseudo-tables > and crap. But it’s not, and we’re having fun with it! > > I’ll try the query engine now. Thanks! > > On Nov 18, 2013, at 12:31 PM, Ryan Spangler > wrote: > > I just ran this in the Caribou repl: > > (caribou.model/gather :field {:where {:created-at {:<= > (java.util.Date.)} :model-id 1}}) > > And got a bunch of results. No string coercion necessary! (also, dashes > not underscores!) > > We looked at Korma and found it lacking (similar problem as Compojure: > macros). For that reason we built an entire query engine that works on > data directly, so that you can build up queries programmatically just like > you would any other data structure (!) > > Check out the section on retrieving content here: > http://caribou.github.io/caribou/docs/content.html > > You can do a bunch of cool stuff (logic operations, "in" queries, > conditions that span associations, selecting certain fields, seamless > queries over join tables etc). > > Let me know if there is something you expect out of a query engine that > Caribou doesn't do, we will add it (if it makes sense!) > > All this stuff is in caribou-core (which you can use independently of the > rest of Caribou): https://github.com/caribou/caribou-core > > Maybe I should call it something else to emphasize it is a standalone > library... (and replacement for korma) > > > On Mon, Nov 18, 2013 at 11:07 AM, Marcus Blankenship < > mar...@creoagency.com> wrote: > >> Brian, >> >> Yeah, and I realize I’m going to take darts for this, but coming from >> Django’s ORM / Rails ActiveRecord makes Korma and these other tools feel >> like stone-age tools. I’d rather do it all in SQL than fight something to >> get out of my way, or reveal it’s magic. >> >> I know I’m probably not thinking about the problem right, but here’s an >> example of something that I still can’t get to work in Korma. G…. >> >> *lein-repl commands* >> (use [`advent2.models.db] :reload-all) >> (get-unlocked-videos-for-campaign 1) >> >> >> >> *models/db.clj function* >> (defn format-todays-date [] >> (let [date (java.util.Date.)] >> (prn date) >> (str \' (.format (java.text.SimpleDateFormat. "-MM-dd") date) \' >> ))) >> >> >> (defn get-unlocked-videos-for-campaign [campaign] >> (let [c_id (:id campaign)] >> (select videos (where {:unlock_date [<= (format-todays-date)] >> :campaign_id c_id} >> >> >> >> *output* >> user=> (get-unlocked-videos-for-campaign 1) >> #inst "2013-11-18T19:06:09.595-00:00" >> Failure to execute query with SQL: >> SELECT "videos".* FROM "videos" WHERE ("videos"."unlock_date" <= ? AND >> "videos"."campaign_id" IS NULL) :: ['2013-11-18'] >> PSQLException: >> Message: ERROR: operator does not exist: date <= character varying >> Hint: No operator matches the given name and argument type(s). You >> might need to add explicit type casts. >> Position: 63 >> SQLState: 42883 >> Error Code: 0 >> >> PSQLException ERROR: operator does not exist: date <= character varying >> Hint: No operator matches the given name and argument type(s). You >> might need to add explicit type casts. >> Position: 63 >> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse >> (QueryExecutorImpl.java:2102) >> >> >> >> >> >> >> On Nov 18, 2013, at 10:23 AM, Brian Craft wrote: >> >> Re: korma, and sql dsls, I've been moving between korma, honeysql, and >> raw sql, without being satisfied with any of them. Desirable traits of the >> db layer in my problem domai
Re: Do web apps need Clojure?
I just ran this in the Caribou repl: (caribou.model/gather :field {:where {:created-at {:<= (java.util.Date.)} :model-id 1}}) And got a bunch of results. No string coercion necessary! (also, dashes not underscores!) We looked at Korma and found it lacking (similar problem as Compojure: macros). For that reason we built an entire query engine that works on data directly, so that you can build up queries programmatically just like you would any other data structure (!) Check out the section on retrieving content here: http://caribou.github.io/caribou/docs/content.html You can do a bunch of cool stuff (logic operations, "in" queries, conditions that span associations, selecting certain fields, seamless queries over join tables etc). Let me know if there is something you expect out of a query engine that Caribou doesn't do, we will add it (if it makes sense!) All this stuff is in caribou-core (which you can use independently of the rest of Caribou): https://github.com/caribou/caribou-core Maybe I should call it something else to emphasize it is a standalone library... (and replacement for korma) On Mon, Nov 18, 2013 at 11:07 AM, Marcus Blankenship wrote: > Brian, > > Yeah, and I realize I’m going to take darts for this, but coming from > Django’s ORM / Rails ActiveRecord makes Korma and these other tools feel > like stone-age tools. I’d rather do it all in SQL than fight something to > get out of my way, or reveal it’s magic. > > I know I’m probably not thinking about the problem right, but here’s an > example of something that I still can’t get to work in Korma. G…. > > *lein-repl commands* > (use [`advent2.models.db] :reload-all) > (get-unlocked-videos-for-campaign 1) > > > > *models/db.clj function* > (defn format-todays-date [] > (let [date (java.util.Date.)] > (prn date) > (str \' (.format (java.text.SimpleDateFormat. "-MM-dd") date) \' > ))) > > > (defn get-unlocked-videos-for-campaign [campaign] > (let [c_id (:id campaign)] > (select videos (where {:unlock_date [<= (format-todays-date)] > :campaign_id c_id} > > > > *output* > user=> (get-unlocked-videos-for-campaign 1) > #inst "2013-11-18T19:06:09.595-00:00" > Failure to execute query with SQL: > SELECT "videos".* FROM "videos" WHERE ("videos"."unlock_date" <= ? AND > "videos"."campaign_id" IS NULL) :: ['2013-11-18'] > PSQLException: > Message: ERROR: operator does not exist: date <= character varying > Hint: No operator matches the given name and argument type(s). You might > need to add explicit type casts. > Position: 63 > SQLState: 42883 > Error Code: 0 > > PSQLException ERROR: operator does not exist: date <= character varying > Hint: No operator matches the given name and argument type(s). You might > need to add explicit type casts. > Position: 63 > org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse > (QueryExecutorImpl.java:2102) > > > > > > > On Nov 18, 2013, at 10:23 AM, Brian Craft wrote: > > Re: korma, and sql dsls, I've been moving between korma, honeysql, and raw > sql, without being satisfied with any of them. Desirable traits of the db > layer in my problem domain are 1) eliminating boilerplate (e.g. setting up > default keys, and indexes, and performing standard joins across relations), > 2) isolating view layers from data access layers (so the view doesn't need > to know if a subselect or a join is required to span some relation, for > example), 3) ability to progressively optimize by dropping back to sql when > required, 4) ability to safely expose a general purpose query API over the > data. > > korma eliminates a very, very small part of the boilerplate. It's almost > not worth the effort. Falling back to raw sql smoothly is difficult in > korma, and I've had to drop it entirely in places where I need performance. > Honeysql eliminates no boilerplate, but representing queries with data > structures does make it easy to expose a sql-like query API with db > firewalling (by matching on the incoming structure). Korma appears to also > represent queries as data structures, but it's not part of the documented > API. You have to reverse-engineer it, and I expect it's subject to change. > > > On Monday, November 18, 2013 8:19:28 AM UTC-8, Marcus Blankenship wrote: >> >> Brian, I certainly will. I’ll type up something later this week as we >> progress. The current pain point is Korma, and generally learning clojure. >> >> >> >> >> On Nov 16, 2013, at 10:25 AM, Brian Craft wrote: >> >> Marcus -- I hope you will post updates to the list with your experiences. >> It would be very interesting. >> >> This thread has drifted a bit from (roughly) "What can you do with >> clojure web tooling?" toward "What can you imagine some day doing with the >> clojure web tooling of the future?", which are both interesting questions, >> but have somewhat different audiences. And the answers inform each other. >> >> >> On Friday, November 15, 2013 8:20:32 AM UTC-8, Marcus Blankenship w
Re: Releasing Caribou today: Open Source Clojure Web Ecosystem
David, Yes, if you created a Customer model there will be a "customer" table inside the h2 db (lowercase). Can you create customer instances? If so it is all working as it should, and you might just be missing the tables somewhere. On Mon, Nov 18, 2013 at 12:04 AM, David Simmons wrote: > Hi Ryan > > If I create a model "Customer" - will Caribou create a specific table > Customer. I ask because using H2 Console I can't find any of the tables I'd > have expected to find having created my model. (This may be user error as > I'm not used to using H2). > > cheers > > Dave > > -- > -- > 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 a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/KeyaMJERW0o/unsubscribe. > To unsubscribe from this group and all its topics, 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.
Re: Releasing Caribou today: Open Source Clojure Web Ecosystem
Mark, Yes, you can do nested loops. Say you have a structure like this: {:title "Hello" :slides [{:caption "World" :images [{:path "/img/world.png"} {:path "/img/space.png"}]} {:caption "Jupiter" :images [{:path "/img/callisto.png"} {:path "/img/ganymede.png"}]}]} You can render this using the following template: {{title}} {{#slides}} {{caption}} {{#images}} {{/images}} {{/slides}} to produce this output: Hello World Jupiter There are even loop vars to reference the item and outer items from inside the loop: {{loop.item}} {{loop.outer.item}} {{loop.outer.outer.item}} You can also bind each item in the loop if you don't like the implicit context: {{title}} {{#slides:slide}} {{slide.caption}} {{#slide.images:image}} {{/images}} {{/slides}} For the full list of loop variables available from inside a loop check out the template docs: http://caribou.github.io/caribou/docs/templates.html On Sunday, November 17, 2013 11:47:12 PM UTC-8, puzzler wrote: > > The template example shows a notation for doing something special on the > last iteration of a loop, but it doesn't look like this syntax can handle > nested loops. Is there any mechanism for nested loops? > -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
The migrations are run one time to set up the models (or anything else), they don't represent the current state of the models. In general, we use either the Admin to edit models, in which case we export the schema as edn to migrate between different environments, or we use the built in migrations and leave the admin models alone. But there is no reason you couldn't use both. If you are looking for something to represent the current state of the model schema, you want the export API, which renders your current schema as an edn file which can be applied to any database universally. In general, there is always a potential disconnect between the schema and the code in any system. If you have model descriptors, nothing guarantees your schema conforms to that. You have to run migrations that line up with your model descriptions. In Caribou, the database contains the model descriptions, and the system just reads those descriptions from the db to construct the models that the rest of the code is using. So in a way, the Caribou models always reflect the state of the db, and don't depend on code to describe something that may not be in sync with what is in the db in the first place. It is different from any system I have seen though, so I understand your confusion! Part of our challenge is providing a way to explain this clearly and to mitigate any issues that could arise from this approach. On Sunday, November 17, 2013 2:02:07 PM UTC-8, puzzler wrote: > > On Sun, Nov 17, 2013 at 1:58 PM, Ryan Spangler > > > wrote: > >> There are many advantages to this, including being able to generate the >> admin and api automatically, (as well as letting our frontend guys add >> properties they need in a model without pestering the backend guys to make >> schema updates!). If manipulating schemas through the admin makes you >> nervous, you can always write migrations for your model changes: >> http://caribou.github.io/caribou/docs/migrations.html >> > > I'm a little confused about this. If you write some code to set up > models, and then you make changes to the admin interface, isn't your code > out-of-sync with the underlying reality? > -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Mark, Luminus is great, it is at its heart a lein template that gathers together a number of useful Clojure web libraries and stitches them into a whole. It provides a good starting point with many options without preventing you from adapting it in any way you see fit. Caribou is more of an integrated framework that is built in layers from the data model up to routing/controllers, template rendering, image resizing, to the automatic Admin and HTTP API generation. It is like Django in that it comes with an Admin out of the box that can be customized as necessary. That said, we worked hard to ensure that it does not trap you into any workflow. You can use any library you want, and in the end it is just Clojure so you really have as much flexibility as you need. We even know someone who has a project that doesn't use a db! So in this way it is like Luminus: a good starting point that you can adapt as you see fit. On Sunday, November 17, 2013 1:09:02 PM UTC-8, puzzler wrote: > > I'm reading through the documentation right now. Looks interesting -- > reminds me a lot of Django. > > Could someone give a brief compare/contrast with Luminous? > > -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Justin: I believe he is asking for a repo of an example Caribou site that does something useful (like a blog that posts comments or something). David: That is right, you don't have model files which describe your model. Instead, there is a Model model (with a collection of instances of a Field model) which is just data in the db like any other model. Manipulating Model data, either through the admin or programmatically, modifies the schema in the background, meaning basically that there is a table for each Model and (roughly) a column for each Field (though there are more complex fields, like assets or collections, that have multiple fields or refer to other tables behind the scenes). There are many advantages to this, including being able to generate the admin and api automatically, (as well as letting our frontend guys add properties they need in a model without pestering the backend guys to make schema updates!). If manipulating schemas through the admin makes you nervous, you can always write migrations for your model changes: http://caribou.github.io/caribou/docs/migrations.html Also you can export your Models (or any data for that matter) using the content export/import API. This means you can build your models using the admin and h2, export the schema as edn, and import it into a Postgres db. Then you have a file which represents your Models that you can check into version control or modify directly etc. I realize now I haven't written docs for this process (I'll fix that shortly), but it is in the caribou-core repo under src/caribou/io.clj Part of why Caribou is alpha is that we want to make sure the automatic schema modification process is bulletproof, as well as solve the various issues that arise in migrating schemas between environments and dbs in the cleanest and most seamless way possible. We have a lot of ideas and already things are working pretty well, but are also open to all suggestions on that. The automatic schema migrations are one of the most powerful parts of Caribou, but also take some careful thought to ensure they are not also getting in the way or potentially messing things up. In practice, we don't have any issues and the ability to modify the schema transparently has been a huge boon to the development process on teams with multiple people. As for field validation, that is a great idea. Currently nothing is in place for ranges of numbers, but I am once again open to any suggestions. I will add it to the list! On Sunday, November 17, 2013 1:03:43 PM UTC-8, David Simmons wrote: > > Hi Ryan > > Congratulations on the release of Caribou. I've got a couple of questions. > > 1. If I create a model via the Admin UI, am I right in thinking that this > does not actually create a clj file containing the details of the model > which I could edit later via a text editor? > 2. Do you the concept of model validations so that a field must be numeric > and between 10 and 50? > > many thanks for you help. > > Dave > -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Ronen, No sample app yet! The screencast goes through building an app from scratch, but a larger example is a great idea. We'll get something together here in the coming weeks (we have many projects using Caribou, just means pulling something abstract out of one of them). On Saturday, November 16, 2013 6:36:50 AM UTC-8, Ronen Cohen wrote: > > This look great! Is there a sample app anywhere? > > On Wednesday, November 13, 2013 1:52:10 AM UTC+2, Ryan Spangler wrote: >> >> Hello Clojure, >> >> Excited to announce today the release of Caribou! http://let-caribou.in/ >> >> We have been building web sites and web applications with it for over two >> years now and improving it every day. Currently we have four people >> working on it and another ten using it to build things, so it is getting a >> lot of real world testing. >> >> It has been designed as a collection of independent libraries that could >> each be useful on their own, but which come together as a meaningful whole. >> >> We have been spending the last couple months getting it ready for a full >> open source release, and I am happy to say it is finally ready. Funded and >> supported by Instrument in Portland, OR: http://weareinstrument.com/ We >> have four projects using it in production, and several more about to be >> launched (as well as over a dozen internal things). >> >> Documentation is here: >> http://caribou.github.io/caribou/docs/outline.html >> >> Source is here: http://github.com/caribou/caribou (use this for issues, >> you don't actually need the source as it is installed through a lein >> template). >> >> Some of the independently useful libraries Caribou is built on are: >> >> * Polaris -- Routing with data (not macros) and reverse routing! : >> https://github.com/caribou/polaris >> * Lichen -- Image resizing to and from s3 or on disk: >> https://github.com/caribou/lichen >> * Schmetterling -- Debugging Clojure processes from the browser: >> https://github.com/prismofeverything/schmetterling >> * Antlers -- Useful extensions to mustache templating (helpers and >> blocks, among other things): https://github.com/caribou/antlers >> * Groundhog -- Replay http requests: >> https://github.com/noisesmith/groundhog >> >> And many others. >> >> Basically this is an Alpha release, and I am announcing it here first in >> order to get as much feedback from the community as possible. We have made >> it as useful as we can for our purposes and recognize that for it to >> improve from here, we really need as many people using it and building >> things with it as possible. The documentation also needs to be put through >> its paces: we need to see how well people are able to use it who know >> nothing about it, based only on the existing docs. >> >> All feedback welcome! >> >> Thanks for reading! I hope you find it useful. >> > -- -- 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: Do web apps need Clojure?
Marcus, To answer your original question, the main reason we use Clojure is that we were originally using Ruby, and once our sites got to a certain level of traffic they fell over badly. Rewriting the system in Clojure meant literally two orders of magnitude performance increase, which at the level of clients we are dealing with now is not just a huge win, it is critical. I've also used Python extensively (and we still have some projects in it), but there is a lot of complexity in just dealing with the environments and dependencies (virtualenv is a standard practice now?) Once people have lein installed, they can download one of our Clojure projects and we know everyone is using the same version of everything without any hassle. It just works. Also, the benefit of being able to spin off a new thread to do some background task is not to be overlooked. Python and Ruby are still fundamentally single threaded and each has its own flavors of what are basically hacks to get around that limitation. As our applications begin to demand more and more asynchronous handling Clojure really is starting to shine. Once you have core.async at your disposal, all of a sudden it is hard to imagine how you ever lived without it. Seriously. What a brilliant abstraction and solution for what was previously a complex architecture task. So can you still use Django and Rails to build webapps? Of course, these are mature and tested platforms for doing standard things. But Clojure is the future. There is always a choice to be made between going with the sanctioned solutions of today or blazing the trails of tomorrow. I remember when Django and Rails were the platforms of the future and people thought they were risky or strange and untested. People are always making a case for the safe established choice. But somehow progress gets made anyway. (I am biased of course. But I made that decision years ago and never looked back. I can't imagine going back to python or ruby now, but I can't speak for everyone.) On Wednesday, November 13, 2013 2:38:49 PM UTC-8, Marcus Blankenship wrote: > > Hi Folks, > > We’re a Python / Django shop, and some folks are getting excited about > using Clojure for building web apps. Certainly there are numerous > open-source options to assist us (Pedastal, Ring, Compojure, Caribou, etc), > but I think it begs a larger question: *as a rule, do web applications > need the power that Clojure brings to the table?* > > Other folks on my team are telling me that solutions built with Python / > Django (or even RubyOnRails) fully satisfy the needs of 99% of the web apps > we have built, and that Clojure offers nothing new to this problem space. > > So, here’s the question: *How are you are actually using Clojure, and why > did you choose to use it, particularly in the “web application” space? * > > Thanks, > Marcus > > > > marcus blankenship > \\\ Partner, 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/groups/opt_out.
Re: Releasing Caribou today: Open Source Clojure Web Ecosystem
Brian, Thanks for the heads up! I fixed some of the formatting issues I found, I'll keep a lookout for this issue (using a md->html converter which apparently requires spaces at the end of lines in lists?) And yes, data modeling is one of our main concerns. All models are also data, which means they can be manipulated like any other data structure. This is what enables us to generate the admin and api automatically! (as well as a host of other benefits) On Wednesday, November 13, 2013 8:07:52 AM UTC-8, Brian Craft wrote: > > Looks very cool. I'm happy to see that data modeling is taken seriously, > which in my experience is the biggest piece lacking in other clojure web > tools. > > The docs have a lot of layout problems with words running together, like > so: "data from oneenvironment". Looks like a string joining operation > that's not quite right. > > On Tuesday, November 12, 2013 3:52:10 PM UTC-8, Ryan Spangler wrote: >> >> Hello Clojure, >> >> Excited to announce today the release of Caribou! http://let-caribou.in/ >> >> We have been building web sites and web applications with it for over two >> years now and improving it every day. Currently we have four people >> working on it and another ten using it to build things, so it is getting a >> lot of real world testing. >> >> It has been designed as a collection of independent libraries that could >> each be useful on their own, but which come together as a meaningful whole. >> >> We have been spending the last couple months getting it ready for a full >> open source release, and I am happy to say it is finally ready. Funded and >> supported by Instrument in Portland, OR: http://weareinstrument.com/ We >> have four projects using it in production, and several more about to be >> launched (as well as over a dozen internal things). >> >> Documentation is here: >> http://caribou.github.io/caribou/docs/outline.html >> >> Source is here: http://github.com/caribou/caribou (use this for issues, >> you don't actually need the source as it is installed through a lein >> template). >> >> Some of the independently useful libraries Caribou is built on are: >> >> * Polaris -- Routing with data (not macros) and reverse routing! : >> https://github.com/caribou/polaris >> * Lichen -- Image resizing to and from s3 or on disk: >> https://github.com/caribou/lichen >> * Schmetterling -- Debugging Clojure processes from the browser: >> https://github.com/prismofeverything/schmetterling >> * Antlers -- Useful extensions to mustache templating (helpers and >> blocks, among other things): https://github.com/caribou/antlers >> * Groundhog -- Replay http requests: >> https://github.com/noisesmith/groundhog >> >> And many others. >> >> Basically this is an Alpha release, and I am announcing it here first in >> order to get as much feedback from the community as possible. We have made >> it as useful as we can for our purposes and recognize that for it to >> improve from here, we really need as many people using it and building >> things with it as possible. The documentation also needs to be put through >> its paces: we need to see how well people are able to use it who know >> nothing about it, based only on the existing docs. >> >> All feedback welcome! >> >> Thanks for reading! I hope you find it useful. >> > -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Hi Leonardo, It seems that on certain default java installs keys are restricted to 16 bytes: http://stackoverflow.com/questions/6900542/java-security-invalidkeyexception-illegal-key-size I just released a version that creates 16 byte keys for the cookie store. Try that! (or edit the key in your src/{project-name}/core.clj and drop half the chars). On Wednesday, November 13, 2013 1:20:18 AM UTC-8, Leonardo Borges wrote: > > Hi Ryan, > > Love the website and the idea. Gave it a try but it gives me this when > trying to browse to the app: > > java.security.InvalidKeyException: Illegal key size > > It's coming from ring's cookie store. It seems the generated key isn't > valid. > > I had a similar problem recently where I had to base64 decode the > string before passing it to the cookie-store. Not sure this is the > case here. > > FWIW, I'm running Java 1.7 and Lein 2.3.3 > > Cheers, > Leonardo Borges > www.leonardoborges.com > > > On Wed, Nov 13, 2013 at 5:25 PM, Ryan Spangler > > > wrote: > > Justin, > > > > As far as I know, Immutant is not a dependency, but an option. Let me > know > > if that is not true however. > > > > > > On Tuesday, November 12, 2013 10:13:17 PM UTC-8, Justin Smith wrote: > >> > >> Typically my first step making a caribou app is to remove the immutant > >> dependency. It's pretty straightforward to take it out. > >> > >> On Tuesday, November 12, 2013 9:19:27 PM UTC-8, Prasanna Gautam wrote: > >>> > >>> This is really cool. Very easy to get up and running for first try. I > >>> have a few questions on the architecture. > >>> > >>> Why Immutant instead of plain ring as the default? I think the number > of > >>> dependencies could be much lower with it. > >>> > >>> I know it's only alpha.. but I'm asking this on behalf of others who > >>> might be thinking the same. > >>> And, are there plans for NoSQL database support, like MongoDB, MapDB > >>> (http://www.mapdb.org/ - I just found out about it myself but this is > the > >>> only decent in-memory NoSQL solution other than Berkeley DB)? > >>> > >>> On Tuesday, November 12, 2013 6:52:10 PM UTC-5, Ryan Spangler wrote: > >>>> > >>>> Hello Clojure, > >>>> > >>>> Excited to announce today the release of Caribou! > >>>> http://let-caribou.in/ > >>>> > >>>> We have been building web sites and web applications with it for over > >>>> two years now and improving it every day. Currently we have four > people > >>>> working on it and another ten using it to build things, so it is > getting a > >>>> lot of real world testing. > >>>> > >>>> It has been designed as a collection of independent libraries that > could > >>>> each be useful on their own, but which come together as a meaningful > whole. > >>>> > >>>> We have been spending the last couple months getting it ready for a > full > >>>> open source release, and I am happy to say it is finally ready. > Funded and > >>>> supported by Instrument in Portland, OR: http://weareinstrument.com/ We > >>>> have four projects using it in production, and several more about to > be > >>>> launched (as well as over a dozen internal things). > >>>> > >>>> Documentation is here: > >>>> http://caribou.github.io/caribou/docs/outline.html > >>>> > >>>> Source is here: http://github.com/caribou/caribou (use this for > issues, > >>>> you don't actually need the source as it is installed through a lein > >>>> template). > >>>> > >>>> Some of the independently useful libraries Caribou is built on are: > >>>> > >>>> * Polaris -- Routing with data (not macros) and reverse routing! : > >>>> https://github.com/caribou/polaris > >>>> * Lichen -- Image resizing to and from s3 or on disk: > >>>> https://github.com/caribou/lichen > >>>> * Schmetterling -- Debugging Clojure processes from the browser: > >>>> https://github.com/prismofeverything/schmetterling > >>>> * Antlers -- Useful extensions to mustache templating (helpers and > >>>> blocks, among other things): https://gith
Re: Releasing Caribou today: Open Source Clojure Web Ecosystem
Justin, As far as I know, Immutant is not a dependency, but an option. Let me know if that is not true however. On Tuesday, November 12, 2013 10:13:17 PM UTC-8, Justin Smith wrote: > > Typically my first step making a caribou app is to remove the immutant > dependency. It's pretty straightforward to take it out. > > On Tuesday, November 12, 2013 9:19:27 PM UTC-8, Prasanna Gautam wrote: >> >> This is really cool. Very easy to get up and running for first try. I >> have a few questions on the architecture. >> >> Why Immutant instead of plain ring as the default? I think the number of >> dependencies could be much lower with it. >> >> I know it's only alpha.. but I'm asking this on behalf of others who >> might be thinking the same. >> And, are there plans for NoSQL database support, like MongoDB, MapDB ( >> http://www.mapdb.org/ - I just found out about it myself but this is the >> only decent in-memory NoSQL solution other than Berkeley DB)? >> >> On Tuesday, November 12, 2013 6:52:10 PM UTC-5, Ryan Spangler wrote: >>> >>> Hello Clojure, >>> >>> Excited to announce today the release of Caribou! >>> http://let-caribou.in/ >>> >>> We have been building web sites and web applications with it for over >>> two years now and improving it every day. Currently we have four people >>> working on it and another ten using it to build things, so it is getting a >>> lot of real world testing. >>> >>> It has been designed as a collection of independent libraries that could >>> each be useful on their own, but which come together as a meaningful whole. >>> >>> We have been spending the last couple months getting it ready for a full >>> open source release, and I am happy to say it is finally ready. Funded and >>> supported by Instrument in Portland, OR: http://weareinstrument.com/ We >>> have four projects using it in production, and several more about to be >>> launched (as well as over a dozen internal things). >>> >>> Documentation is here: >>> http://caribou.github.io/caribou/docs/outline.html >>> >>> Source is here: http://github.com/caribou/caribou (use this for >>> issues, you don't actually need the source as it is installed through a >>> lein template). >>> >>> Some of the independently useful libraries Caribou is built on are: >>> >>> * Polaris -- Routing with data (not macros) and reverse routing! : >>> https://github.com/caribou/polaris >>> * Lichen -- Image resizing to and from s3 or on disk: >>> https://github.com/caribou/lichen >>> * Schmetterling -- Debugging Clojure processes from the browser: >>> https://github.com/prismofeverything/schmetterling >>> * Antlers -- Useful extensions to mustache templating (helpers and >>> blocks, among other things): https://github.com/caribou/antlers >>> * Groundhog -- Replay http requests: >>> https://github.com/noisesmith/groundhog >>> >>> And many others. >>> >>> Basically this is an Alpha release, and I am announcing it here first in >>> order to get as much feedback from the community as possible. We have made >>> it as useful as we can for our purposes and recognize that for it to >>> improve from here, we really need as many people using it and building >>> things with it as possible. The documentation also needs to be put through >>> its paces: we need to see how well people are able to use it who know >>> nothing about it, based only on the existing docs. >>> >>> All feedback welcome! >>> >>> Thanks for reading! I hope you find it useful. >>> >> -- -- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Prasanna, It supports Ring as well. You should be able to just lein ring server in the root of your new project and it will boot up. The ring options are in the project.clj so you can change the port etc. It also supports Immutant, Tomcat, HTTPKit, Heroku and Beanstalk. If you know of another good target let me know and we'll support that too! As for NoSQL, a lot of the Model and Association stuff in Caribou is naturally relational, but all of the db interactions are abstracted by a DbAdapter protocol, so we (or someone) would just have to write an adapter for it. Maybe some of the Association stuff would be trickier, but there's no reason it couldn't be done. We are planning to support many more backends in the future, but for now it just supports Postgres, Mysql and H2. There has been talk of supporting Datomic as well, we will see what the future holds. All that said, there is no reason why you couldn't put a NoSQL db in front of the various model queries right now as a kind of caching layer. As a primary data store, that would take some work. I will see how much interest there is! On Tuesday, November 12, 2013 9:19:27 PM UTC-8, Prasanna Gautam wrote: > > This is really cool. Very easy to get up and running for first try. I have > a few questions on the architecture. > > Why Immutant instead of plain ring as the default? I think the number of > dependencies could be much lower with it. > > I know it's only alpha.. but I'm asking this on behalf of others who might > be thinking the same. > And, are there plans for NoSQL database support, like MongoDB, MapDB ( > http://www.mapdb.org/ - I just found out about it myself but this is the > only decent in-memory NoSQL solution other than Berkeley DB)? > > On Tuesday, November 12, 2013 6:52:10 PM UTC-5, Ryan Spangler wrote: >> >> Hello Clojure, >> >> Excited to announce today the release of Caribou! http://let-caribou.in/ >> >> We have been building web sites and web applications with it for over two >> years now and improving it every day. Currently we have four people >> working on it and another ten using it to build things, so it is getting a >> lot of real world testing. >> >> It has been designed as a collection of independent libraries that could >> each be useful on their own, but which come together as a meaningful whole. >> >> We have been spending the last couple months getting it ready for a full >> open source release, and I am happy to say it is finally ready. Funded and >> supported by Instrument in Portland, OR: http://weareinstrument.com/ We >> have four projects using it in production, and several more about to be >> launched (as well as over a dozen internal things). >> >> Documentation is here: >> http://caribou.github.io/caribou/docs/outline.html >> >> Source is here: http://github.com/caribou/caribou (use this for issues, >> you don't actually need the source as it is installed through a lein >> template). >> >> Some of the independently useful libraries Caribou is built on are: >> >> * Polaris -- Routing with data (not macros) and reverse routing! : >> https://github.com/caribou/polaris >> * Lichen -- Image resizing to and from s3 or on disk: >> https://github.com/caribou/lichen >> * Schmetterling -- Debugging Clojure processes from the browser: >> https://github.com/prismofeverything/schmetterling >> * Antlers -- Useful extensions to mustache templating (helpers and >> blocks, among other things): https://github.com/caribou/antlers >> * Groundhog -- Replay http requests: >> https://github.com/noisesmith/groundhog >> >> And many others. >> >> Basically this is an Alpha release, and I am announcing it here first in >> order to get as much feedback from the community as possible. We have made >> it as useful as we can for our purposes and recognize that for it to >> improve from here, we really need as many people using it and building >> things with it as possible. The documentation also needs to be put through >> its paces: we need to see how well people are able to use it who know >> nothing about it, based only on the existing docs. >> >> All feedback welcome! >> >> Thanks for reading! I hope you find it useful. >> > -- -- 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: Step by step debugging
Lee, Thank you for pointing that out! The README has been updated with more explicit instructions. For those who don't know, to open a dt_socket from your project.clj simply add this line: :jvm-opts ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n"] Schmetterling is still very new (I just started it last week!) and not really meant to be released yet, but it is still useful. And actually the earlier people start using it the earlier I can start improving it in ways that are relevant to people. I'll have an official announcement once it is ready to be released, but until then I welcome any feedback. On Tuesday, November 12, 2013 8:33:57 PM UTC-8, Lee wrote: > > > Very excited by this. Thanks also to Justin for the pointer. > > From my perspective a particularly nice additional would be to provide > minimal instructions on how to get this running for people who don't know > (or necessarily want to have to know) what a dt_socket is. > > > On Nov 12, 2013, at 7:11 PM, Ryan Spangler wrote: > > > >> Sounds like a fun project, but probably non-trivial. > > > Too bad... unless someone wants to have that fun and then share it > with the rest of us :-) > > > > I have started a project that does this: a browser based debugger that > breaks on exceptions (it attaches to a dt_socket port): > https://github.com/prismofeverything/schmetterling > > > > I should have locals displaying this week sometime (you can currently > get their value, it just doesn't show them to you by default yet). I am > planning on adding breakpoints, stepping and source viewing. > > > > Just started this... looking for feedback! > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- 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: Releasing Caribou today: Open Source Clojure Web Ecosystem
Marcus, Great to hear! You never know when building something like this. Let me know if you have any trouble getting things up and running with the docs. On Tuesday, November 12, 2013 5:22:44 PM UTC-8, Marcus Blankenship wrote: > > Oh, sweet! We’re down here in Klamath Falls, and have a total ManCrush on > Instrument. :-) I had no idea you are a clojure shop, but am thrilled to > see you on the bandwagon. > > Thanks again for releasing this, it looks amazing! > > Best, > Marcus > > > On Nov 12, 2013, at 5:21 PM, Sean Corfield > > wrote: > > > "Funded and supported by Instrument in Portland, OR: > > http://weareinstrument.com/ " > > > > On Tue, Nov 12, 2013 at 5:03 PM, Marcus Blankenship > > > wrote: > >> Very nice, Ryan! Is there a company that’s shepherding the product? > >> > >> Best, > >> Marcus > >> > >> On Nov 12, 2013, at 5:02 PM, Sean Corfield > >> > > wrote: > >> > >>> Wow... That's pretty impressive for an initial alpha release! > >>> > >>> Sean > >>> > >>> On Tue, Nov 12, 2013 at 3:52 PM, Ryan Spangler > >>> > > wrote: > >>>> Hello Clojure, > >>>> > >>>> Excited to announce today the release of Caribou! > http://let-caribou.in/ > >>>> > >>>> We have been building web sites and web applications with it for over > two > >>>> years now and improving it every day. Currently we have four people > working > >>>> on it and another ten using it to build things, so it is getting a > lot of > >>>> real world testing. > >>>> > >>>> It has been designed as a collection of independent libraries that > could > >>>> each be useful on their own, but which come together as a meaningful > whole. > >>>> > >>>> We have been spending the last couple months getting it ready for a > full > >>>> open source release, and I am happy to say it is finally ready. > Funded and > >>>> supported by Instrument in Portland, OR: http://weareinstrument.com/ We > >>>> have four projects using it in production, and several more about to > be > >>>> launched (as well as over a dozen internal things). > >>>> > >>>> Documentation is here: > http://caribou.github.io/caribou/docs/outline.html > >>>> > >>>> Source is here: http://github.com/caribou/caribou (use this for > issues, you > >>>> don't actually need the source as it is installed through a lein > template). > >>>> > >>>> Some of the independently useful libraries Caribou is built on are: > >>>> > >>>> * Polaris -- Routing with data (not macros) and reverse routing! : > >>>> https://github.com/caribou/polaris > >>>> * Lichen -- Image resizing to and from s3 or on disk: > >>>> https://github.com/caribou/lichen > >>>> * Schmetterling -- Debugging Clojure processes from the browser: > >>>> https://github.com/prismofeverything/schmetterling > >>>> * Antlers -- Useful extensions to mustache templating (helpers and > blocks, > >>>> among other things): https://github.com/caribou/antlers > >>>> * Groundhog -- Replay http requests: > https://github.com/noisesmith/groundhog > >>>> > >>>> And many others. > >>>> > >>>> Basically this is an Alpha release, and I am announcing it here first > in > >>>> order to get as much feedback from the community as possible. We > have made > >>>> it as useful as we can for our purposes and recognize that for it to > improve > >>>> from here, we really need as many people using it and building things > with > >>>> it as possible. The documentation also needs to be put through its > paces: > >>>> we need to see how well people are able to use it who know nothing > about it, > >>>> based only on the existing docs. > >>>> > >>>> All feedback welcome! > >>>> > >>>> Thanks for reading! I hope you find it useful. > >>>> > >>>> -- > >>>> -- > >>>> You received this message because you are subscribed to the Google > >>>> Groups "Clojure" grou
Releasing Caribou today: Open Source Clojure Web Ecosystem
Hello Clojure, Excited to announce today the release of Caribou! http://let-caribou.in/ We have been building web sites and web applications with it for over two years now and improving it every day. Currently we have four people working on it and another ten using it to build things, so it is getting a lot of real world testing. It has been designed as a collection of independent libraries that could each be useful on their own, but which come together as a meaningful whole. We have been spending the last couple months getting it ready for a full open source release, and I am happy to say it is finally ready. Funded and supported by Instrument in Portland, OR: http://weareinstrument.com/ We have four projects using it in production, and several more about to be launched (as well as over a dozen internal things). Documentation is here: http://caribou.github.io/caribou/docs/outline.html Source is here: http://github.com/caribou/caribou (use this for issues, you don't actually need the source as it is installed through a lein template). Some of the independently useful libraries Caribou is built on are: * Polaris -- Routing with data (not macros) and reverse routing! : https://github.com/caribou/polaris * Lichen -- Image resizing to and from s3 or on disk: https://github.com/caribou/lichen * Schmetterling -- Debugging Clojure processes from the browser: https://github.com/prismofeverything/schmetterling * Antlers -- Useful extensions to mustache templating (helpers and blocks, among other things): https://github.com/caribou/antlers * Groundhog -- Replay http requests: https://github.com/noisesmith/groundhog And many others. Basically this is an Alpha release, and I am announcing it here first in order to get as much feedback from the community as possible. We have made it as useful as we can for our purposes and recognize that for it to improve from here, we really need as many people using it and building things with it as possible. The documentation also needs to be put through its paces: we need to see how well people are able to use it who know nothing about it, based only on the existing docs. All feedback welcome! Thanks for reading! I hope you find it useful. -- -- 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: Step by step debugging
>> Sounds like a fun project, but probably non-trivial. > Too bad... unless someone wants to have that fun and then share it with the rest of us :-) I have started a project that does this: a browser based debugger that breaks on exceptions (it attaches to a dt_socket port): https://github.com/prismofeverything/schmetterling I should have locals displaying this week sometime (you can currently get their value, it just doesn't show them to you by default yet). I am planning on adding breakpoints, stepping and source viewing. Just started this... looking for feedback! On Thursday, November 7, 2013 1:16:17 AM UTC-8, Bastien Guerry wrote: > > I'm a big fan of edebug, the Emacs debugger, which allows step through > debugging (and breakpoints, and some more fun.) > > Is there anything similar for Clojure? > > For example, from an Emacs (cider) REPL, I'd evaluate some Clojure > expression, then a window would let me go through a buffer containing > a copy of the function being evaluated, while allowing me to stop at > any step, and to show the result of each step in the minibuffer. > > (I'm aware of LightTable "live" REPL, but this is not exactly what > I describe above.) > > Thanks for any hints/pointers, > > -- > Bastien > -- -- 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.