Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
On Mon, Jan 3, 2011 at 1:25 AM, Sean Corfield wrote: > On Sun, Jan 2, 2011 at 7:41 PM, Ken Wesson wrote: >> Because from its url it looks like it'll just be the code repository. >> It doesn't *seem* any more promising as the home page link than the >> github.com results you tend to get when you search for other >> Clojure-related material. > > Good feedback. Thanx. I guess I'm used to reading wikis on github as > being the official project home pages but I can see your p.o.v. > > I'm a developer so I think it's reasonable to read about developer > tools on developer sites but I'm getting the sense that a lot of > people coming to Clojure are not coming from what might be called a > 'traditional developer' background? > >> Lots of people expect a project to have a sourceforge, github, Google >> Code, or similar page that isn't very end-user friendly because it's >> targeted at the developers and not the users, plus its own .com or >> whatever site (e.g., clojure.org) that serves as the home page for the >> generally interested public (often linking to sourceforge or wherever >> from the big friendly DOWNLOAD WINDOWS INSTALLER button, though). > > Point taken but I find it an interesting distinction given that the > users of developer tools like CCW are developers :) Yes, but they are developers of something else, not of CCW itself; CCW's source code may not interest them very much. You're interested in the developer-centric pages for projects you're actually developers on. I would be surprised to find very many coders very interested in such pages for most of the stuff they just use, though (or to have time to be!). And if ANYONE starting out using a new, sizable and complex piece of software doesn't want to start first as a "normal user" with user-oriented introductory texts, installers/packages that are turn-key, etc. and *maybe* graduate to digging deeper into the project's internals, perhaps contributing patches, etc. *later*. Perhaps *much* later, and time and interest permitting. > However, as someone involved with an free open source CFML engine who > is faced with a large number of Windows developers who expect simple > click-click-done installers, I think I can understand where you're > coming from... Yes. I'm sure they're much more interested in developing their CFML-using projects than in developing CFML itself. Some (many?) may be being paid to develop their CFML-using projects, but aren't being paid to develop CFML itself (though they may wind up contributing to CFML at some point, especially where doing so may pay dividends later in making their own project-development easier down the line). > So if CounterClockWise had its own domain website that pointed to the > Google repo and the wiki and the Assembla wiki (where all the other > IDE plugins are documented), you'd be mollified? Certainly. But it's not about mollifying me; it's about making it friendlier to the potentially large number of potential new users who might be put off by not seeing any promising-enough-looking starting-point in their google results. The domain's root URL could even just redirect to whichever project page at code.google.com has the "for-end-users home page" of the project, so long as the combination of the domain name and the SERP synopsis made the google hit clearly the starting point for prospective new users, and the google hit ranked highly (preferably #1) for reasonably narrowly targeted queries aimed at finding Counterclockwise's home on the web. -- 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
Has Clojure Fixed the Social Problem that LISP is Too Powerful?
Our team works on big EU projects, where there are many technical partners from different countries cooperating. Most of our work is about choosing a good technology and then about customizing and integrating it into our system. Usually SOA, Enterprise Java and semantic web technologies are in place. Many people argue (and my colleagues are among them) that LISP is not suitable for such environments (many coders, tests and use cases, have to produce explicit designs and specifications e.g. because other team who builds on your work is in different country). They say LISP is a hacker language for lone warriors, not suited for big teams, where code must be understood by many. See also http://c2.com/cgi/wiki?LispIsTooPowerful , http://c2.com/cgi/wiki?SocialProblemsOfLisp and http://c2.com/cgi/wiki?HackerLanguage They are IMO right if by LISP a Common Lisp is meant. But I have a feeling (and I want to believe) that Clojure has largely fixed this social problem of LISP, just like it has fixed the other big social problems of LISP, namely http://c2.com/cgi/wiki?LispUsersAreArrogant :) My colleagues all know and have been using LISP (in academics), we are an AI department after all. How can I explain them that Clojure is also useful for enterprise projects and big teams? Or is it not? Some of my arguments are: - Clojure has no custom reader macros, makes it easier to read others code - Protocols and the way clojure handles data helps to explicitly formulate specifications and designs - Fresh syntax which improves readability - Easy integration with familiar technologies thanks to JVM - Modern collection types, not just lists What are your thoughts? How would you argue? -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
Ken, I've followed this thread with interest. Thanks for rising this issue. It's always interesting to get external feedback, 'cause it's too easy to forget about those things, once they seem "evident" for us. I ackowledge the "visibility" of Counterclockwise is far from being perfect. However, I'm currently quite satisfied with the situation, given that : * "clojure eclipse plugin" in google gives the top position for google code homepage, and that if you take the time to follow that link (or even read the extract for the link), you know there's something to look for there. * the getting started page linked from the clojure.org site points to this site altogether * Since Eclipse 3.6 the integrated search engine (maybe unfortunately named "market place", maybe not) returns Counterclockwise as its top result when you type "Clojure" in it But for sure having a proper domain name would be great, as well as a great web site with a great graphical design as enclojure has, but I'm not planning right now to spend time on building / buying this. My guess is rather that the most interesting "cheap next step" could be to rework the "visibility" of the different "de facto standards" (Counterclockwise for Eclipse, La Clojure for IntelliJ Idea, Enclojure for Netbeans, VimClojure for Vim, Clojure mode + swank clojure for emacs) from the clojure.org website. Currently the link to the assembla web page is pretty much hidden : * one has to go to the "getting started page", and then in the "Editing" section click the other "getting started" link to the Assembla Page. My suggestion would be that, acknowledging that easing the access to IDEs is good for both Clojure adoption and the IDEs : * there is a dedicated "IDEs" in the top right box on clojure.org, currently pointing to the "master wiki page" on Assembla * and / or an "IDEs" page in the left menu of clojure.org, with the content of the "master wiki page" on Assembla (containing links to each IDE-specific Getting Started instructions) Now that all this is said, I clearly have the intention, eventually, to have a domain name for Counterclockwise, as well as a decent website. Now just doesn't feel the right timing to me, given that resources are limited. Cheers, -- Laurent 2011/1/1 Ken Wesson > I use Enclojure/NetBeans myself, but it occurred to me to check out > the current state of its Eclipse counterpart. > > But I can't find it anywhere. Google returns tons of results, of > course, but they're all third-party results except the first, which is > a code.google.com repository. *None* of the top ten results are the > home page of the plugin; if you're just looking to download the binary > and use it, or read about it in plain English, you're going to ignore > the Google Code link, and if you want to get your information from the > horse's mouth, you'll ignore all of the other hits and then give up. > > This is a problem for Counterclockwise, which really should have its > own web site in the top ten (and preferably at the very top) of a > Google search for "counterclockwise clojure" (no quotation marks in > the actual search). > > Contrast with the results of searching for "enclojure": the first hit > is the enclojure.org home page and the next two are other pages at > enclojure.org. Then the discussion group, hosted by Google. Fifth is > the source code repository. Third-party content, such as people > blogging about it, starts around the seventh returned hit, versus the > second with Counterclockwise with only the repository ranking higher. > > In particular, if there is a counterclockwise.org or a > counterclockwise.com or anything similar it does not show up in the > top ten. > > The situations with swank-clojure and La Clojure are similar to that > with Counterclockwise, though emacs users are probably just going to > download the source from the repository and run it anyway and > apparently IDEA has a plugin repository it can automatically download > and install plugins from, like NB (and, perhaps, Eclipse). The lack of > an obvious Google-findable starting point for reading about any of > these first before installing them or doing something with their > source code is troubling, regardless. > > -- > 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 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...@googlegroup
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
I'll have to admit that when I started out using clojure I was confused as well with the google code page. It's hard to see "what to do to get ccw on my eclipse." A nice, comforting website that looks like it was designed only for end-users would be helpful I think. Partly this is eclipse's fault for making it semi-difficult to install software. The "front-end" site you're proposing would have made it easier for me, at least. If you would like help making a nice-looking, simple front-end website for the time being I would be happy to help set up something easy. Let me know, and thanks for making a great plugin for eclipse. Sincerely, --Robert McIntyre On Mon, Jan 3, 2011 at 3:27 AM, Ken Wesson wrote: > On Mon, Jan 3, 2011 at 1:25 AM, Sean Corfield wrote: >> On Sun, Jan 2, 2011 at 7:41 PM, Ken Wesson wrote: >>> Because from its url it looks like it'll just be the code repository. >>> It doesn't *seem* any more promising as the home page link than the >>> github.com results you tend to get when you search for other >>> Clojure-related material. >> >> Good feedback. Thanx. I guess I'm used to reading wikis on github as >> being the official project home pages but I can see your p.o.v. >> >> I'm a developer so I think it's reasonable to read about developer >> tools on developer sites but I'm getting the sense that a lot of >> people coming to Clojure are not coming from what might be called a >> 'traditional developer' background? >> >>> Lots of people expect a project to have a sourceforge, github, Google >>> Code, or similar page that isn't very end-user friendly because it's >>> targeted at the developers and not the users, plus its own .com or >>> whatever site (e.g., clojure.org) that serves as the home page for the >>> generally interested public (often linking to sourceforge or wherever >>> from the big friendly DOWNLOAD WINDOWS INSTALLER button, though). >> >> Point taken but I find it an interesting distinction given that the >> users of developer tools like CCW are developers :) > > Yes, but they are developers of something else, not of CCW itself; > CCW's source code may not interest them very much. > > You're interested in the developer-centric pages for projects you're > actually developers on. I would be surprised to find very many coders > very interested in such pages for most of the stuff they just use, > though (or to have time to be!). And if ANYONE starting out using a > new, sizable and complex piece of software doesn't want to start first > as a "normal user" with user-oriented introductory texts, > installers/packages that are turn-key, etc. and *maybe* graduate to > digging deeper into the project's internals, perhaps contributing > patches, etc. *later*. Perhaps *much* later, and time and interest > permitting. > >> However, as someone involved with an free open source CFML engine who >> is faced with a large number of Windows developers who expect simple >> click-click-done installers, I think I can understand where you're >> coming from... > > Yes. I'm sure they're much more interested in developing their > CFML-using projects than in developing CFML itself. Some (many?) may > be being paid to develop their CFML-using projects, but aren't being > paid to develop CFML itself (though they may wind up contributing to > CFML at some point, especially where doing so may pay dividends later > in making their own project-development easier down the line). > >> So if CounterClockWise had its own domain website that pointed to the >> Google repo and the wiki and the Assembla wiki (where all the other >> IDE plugins are documented), you'd be mollified? > > Certainly. But it's not about mollifying me; it's about making it > friendlier to the potentially large number of potential new users who > might be put off by not seeing any promising-enough-looking > starting-point in their google results. > > The domain's root URL could even just redirect to whichever project > page at code.google.com has the "for-end-users home page" of the > project, so long as the combination of the domain name and the SERP > synopsis made the google hit clearly the starting point for > prospective new users, and the google hit ranked highly (preferably > #1) for reasonably narrowly targeted queries aimed at finding > Counterclockwise's home on the web. > > -- > 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 post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your
Re: A Web Server in Clojure
Try adding CR to your LF's. RFC 1945 states: HTTP/1.0 defines the octet sequence CR LF as the end-of-line marker for all protocol elements except the Entity-Body (see Appendix B for tolerant applications). The end-of-line marker within an Entity-Body is defined by its associated media type, as described in Section 3.6. On 2011/01/01 02:40, limux wrote: > There is no any error when I access http://127.0.0.1:8080 by browser. > While with wget, there will be some messages as below: > > --2011-01-01 09:22:49-- (try:20) http://127.0.0.1:8080/ > Connecting to 127.0.0.1:8080... connected. > HTTP request sent, awaiting response... 200 No headers, assuming HTTP/ > 0.9 > Length: unspecified > index.html has sprung into existence. > Giving up. > > > On 1月1日, 上午12时10分, Miki wrote: >> Both of these examples work for me (clojure 1.2). >> Is there an error on the console when you access the site? >> >> Also, if this is not a learning exercise, I recommend having a look at >> Compojure for web development. >> >> HTH, >> -- >> Miki -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
On Mon, Jan 3, 2011 at 5:26 AM, Laurent PETIT wrote: > I ackowledge the "visibility" of Counterclockwise is far from being perfect. > > However, I'm currently quite satisfied with the situation, given that : > * "clojure eclipse plugin" in google gives the top position for google > code homepage, and that if you take the time to follow that link (or even > read the extract for the link), you know there's something to look for > there. Well, it does say "Counterclockwise is an Eclipse plugin helping developers write Clojure code. Installing Counterclockwise and starting testing/developing in clojure is ..." but it also says "counterclockwise - Project Hosting on Google Code" "Project Hosting" suggests "this is where counterclockwise's developers hang out" and it's easy to presume from that context that the introductory text is part of a very brief blurb and not a more substantial body of end-user-oriented text. Someone looking for CCW introductory material, I concede, *is* likely after seeing no other promising Google hit in the top 10 or 20 to go there hoping that that introductory blurb is, if not part of something more substantial of that sort itself, at least the locus of a link or two to such for the benefit of would-be end-users who blunder into the repository's front page. :) > But for sure having a proper domain name would be great, as well as a great > web site with a great graphical design as enclojure has, but I'm not > planning right now to spend time on building / buying this. It's you who manages CCW's web presence then? Huh. > My suggestion would be that, acknowledging that easing the access to IDEs is > good for both Clojure adoption and the IDEs : > > * there is a dedicated "IDEs" in the top right box on clojure.org, > currently pointing to the "master wiki page" on Assembla > * and / or an "IDEs" page in the left menu of clojure.org, with the > content of the "master wiki page" on Assembla (containing links to each > IDE-specific Getting Started instructions) Please do remember though that someone dipping his toes into programming and not already an experienced developer (or even, perhaps, an experienced commercial-software developer with little experience in the open-source world) is liable to be intimidated by any links to assembla, github, and so forth on the general theory that "that leads to source code, bug trackers, developer mailing lists, and other complicated stuff and I just want to download this thing in an executable form and try it out". :) That's after the first couple of times following links to those sites in other situations and being faced with a big developer-central page full of bells and whistles that mostly in turn lead to login prompts rather than something user-friendly to people not looking to work with a source code repository and bug tracker at that time. It seems there's more content at those sites than just such project control panels, and you and I know that, but I am considering the likelihood that part of your desired user base probably does not know that. And in fact newbie programmers are an *important* part of that user base, perhaps the *most* important. > Now that all this is said, I clearly have the intention, eventually, to have > a domain name for Counterclockwise, as well as a decent website. Now just > doesn't feel the right timing to me, given that resources are limited. That's okay. Once again, it is not for my own sake so much as for that of potential new users less knowledgeable about some of these things that I offered these suggestions. -- 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
Re: A Web Server in Clojure
2011/1/3 Remco van 't Veer : > Try adding CR to your LF's. RFC 1945 states: > > HTTP/1.0 defines the octet sequence CR LF as the end-of-line marker > for all protocol elements ... My God, is nothing exempt from Microsoft's taint? This has the stench of "concession to stupidly-designed Windows software" written *all over it*, and yet it presumably comes from the IETF, aka the world's biggest conglomeration of unixheads in the world, or the W3C, likely the world's second-largest. :) -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
> Good feedback. Thanx. I guess I'm used to reading wikis on github as > being the official project home pages but I can see your p.o.v. I'm not taking a position specifically for this thread (only sifted through it, and I haven't had that particular problem with ccw), but here is another POV: Ever since Sourceforge became popular and started the project hosting thing, I have continually been annoyed when (1) people link to and (2) google results prefer the sf/github/bitbucket/gcode/whatever page instead of the manually maintained project page. The reason is that they are essentially boilerplate that waste my time, if I am not actively knowledgable about the project already. Since all projects have the same structure, you essentially know nothing just by looking at the project summary. You have to dig around a bit to get a feel for whether it's a live, whether you're in the right place for documentation and whether the community is "elsewhere". A similar effect is what you get with projects that use maven to generate a boilerplate website. You don't know whether it's actually filled in, and whether it is worth clicking around to find real information. A manually maintained project website, even if completely non-fashionable, on the other hand gives me an instant feel for the project. News items on the front page indicate liveness, manually hand-picked links and decided structure hopefully gives a good crash course/crash intro as to what it is etc. Again, just another POV. Take it with a grain of salt. But know that I'm speaking *as a developer*, just not as a developer *of those things* that I am trying to find/use/read about. -- / Peter Schuller -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
Hi Peter, 2011/1/3 Peter Schuller > > Good feedback. Thanx. I guess I'm used to reading wikis on github as > > being the official project home pages but I can see your p.o.v. > > I'm not taking a position specifically for this thread (only sifted > through it, and I haven't had that particular problem with ccw), but > here is another POV: > > Ever since Sourceforge became popular and started the project hosting > thing, I have continually been annoyed when (1) people link to and (2) > google results prefer the sf/github/bitbucket/gcode/whatever page > instead of the manually maintained project page. > > The reason is that they are essentially boilerplate that waste my > time, if I am not actively knowledgable about the project already. > Since all projects have the same structure, you essentially know > nothing just by looking at the project summary. You have to dig around > a bit to get a feel for whether it's a live, whether you're in the > right place for documentation and whether the community is > "elsewhere". > > A similar effect is what you get with projects that use maven to > generate a boilerplate website. You don't know whether it's actually > filled in, and whether it is worth clicking around to find real > information. > > A manually maintained project website, even if completely > non-fashionable, on the other hand gives me an instant feel for the > project. News items on the front page indicate liveness, manually > hand-picked links and decided structure hopefully gives a good crash > course/crash intro as to what it is etc. > FYI, the main page of ccw is manually maintained and contains up to date information wrt current plugin status. That's maybe why you didn't have to /specifically/ complain 'bout ccw itself ;-) > > Again, just another POV. Take it with a grain of salt. But know that > I'm speaking *as a developer*, just not as a developer *of those > things* that I am trying to find/use/read about. > > -- > / Peter Schuller > > -- > 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 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
2011/1/3 Ken Wesson > > > But for sure having a proper domain name would be great, as well as a > great > > web site with a great graphical design as enclojure has, but I'm not > > planning right now to spend time on building / buying this. > > It's you who manages CCW's web presence then? Huh. > Sorry, I'm not a native english speaker. Would you please explain how I should interpret "Huh" in this context ? > > > My suggestion would be that, acknowledging that easing the access to IDEs > is > > good for both Clojure adoption and the IDEs : > > > > * there is a dedicated "IDEs" in the top right box on clojure.org, > > currently pointing to the "master wiki page" on Assembla > > * and / or an "IDEs" page in the left menu of clojure.org, with the > > content of the "master wiki page" on Assembla (containing links to each > > IDE-specific Getting Started instructions) > > Please do remember though that someone dipping his toes into > programming and not already an experienced developer (or even, > perhaps, an experienced commercial-software developer with little > experience in the open-source world) is liable to be intimidated by > any links to assembla, github, and so forth on the general theory that > "that leads to source code, bug trackers, developer mailing lists, and > other complicated stuff and I just want to download this thing in an > executable form and try it out". :) > > That's after the first couple of times following links to those sites > in other situations and being faced with a big developer-central page > full of bells and whistles that mostly in turn lead to login prompts > rather than something user-friendly to people not looking to work with > a source code repository and bug tracker at that time. > > It seems there's more content at those sites than just such project > control panels, and you and I know that, but I am considering the > likelihood that part of your desired user base probably does not know > that. And in fact newbie programmers are an *important* part of that > user base, perhaps the *most* important. > For the laziest users (or the more effective ones, everything is always a question of viewpoint ;-), using the eclipse integrated market place is the @right think to do@ as a first intention, anyway :-p > > > Now that all this is said, I clearly have the intention, eventually, to > have > > a domain name for Counterclockwise, as well as a decent website. Now just > > doesn't feel the right timing to me, given that resources are limited. > > That's okay. Once again, it is not for my own sake so much as for that > of potential new users less knowledgeable about some of these things > that I offered these suggestions. > > Yes, we all want the best for clojure, and that's why I said thank you for your feedback. Cheers, -- Laurent -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
On 2011-01-03, at 5:41 AM, Ken Wesson wrote: > No; as I mentioned in my earlier post, I use NetBeans but thought I'd > see if there was an alternative out there that equaled or beat that > yet. Hi there, I'm a new to Clojure (having started in late November), and a long-time Eclipse user. As such, I consider myself part of "the target audience" that Ken appears to find underserved in this case, and hence wanted to throw in my two cents. My first instinct was to Google "eclipse clojure plugin", the exact same way that I've previously Googled "eclipse git plugin", "eclipse scala plugin", etc. Then, I click obvious "install-related" links until I find the update site URL. I was up and running with counterclockwise in about 10 minutes. "The Eclipse way" of doing things is pretty arcane for the uninitialized. Once you get through the frustration of dealing with the poorly-organized Eclipse website and learning the appropriate secret handshakes, it eventually becomes usable and "intuitive" (or at least, your mind eventually warps itself to fit the Eclipse mould). That this seems so strange to "outsiders" (or indeed that non-regular Eclipse users are made to feel like outsiders) is the fault of the Eclipse project, in my opinion. That said, getting started with CCW was totally intuitive, at least for me. Hope that helps, Michael -- 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
Re: osx + clojure + emacs + leiningen blog posts
Hi, "One thing worth noting about emacs-starter-kit is that it tries to source a file of your own customizations on startup. This file defaults to your username.el so the easiest thing to do is create that file inside of ~/.emacs.d. One thing you really should add to this is a function to fix the path issues inside of Emacs:" Is fixing the path related to the information about ~/.emacs.d/ username.el? If not then I would suggest a new paragraph. If it is, then will you please explain how? Thanks, Bill Robertson On Dec 28 2010, 11:31 pm, gaz jones wrote: > thanks for the feedback, i will update it tomorrow. > > cheers, > gaz > > > > > > > > On Tue, Dec 28, 2010 at 8:44 PM, Phil Hagelberg wrote: > > On Dec 28, 2:32 pm, gaz jones wrote: > >> i put together a couple of blog posts around how i use clojure + emacs > >> + leiningen on OSX (but applies to linux too) in the hope it may help > >> someone get up and running faster: > > > Looks good. I should mention that installing the elisp for swank- > > clojure is actually no longer necessary. Also it's a little more > > convenient to use C-c C-k instead of C-c C-l to compile the current > > file. > > > It might be nice to link to the Leiningen tutorial for further > > reference since it goes into more detail: > >https://github.com/technomancy/leiningen/blob/master/TUTORIAL.md > > > very nice, > > Phil > > > -- > > 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 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
On Mon, Jan 3, 2011 at 7:50 AM, Laurent PETIT wrote: > 2011/1/3 Ken Wesson >> >> > But for sure having a proper domain name would be great, as well as a >> > great >> > web site with a great graphical design as enclojure has, but I'm not >> > planning right now to spend time on building / buying this. >> >> It's you who manages CCW's web presence then? Huh. > > Sorry, I'm not a native english speaker. Would you please explain how I > should interpret "Huh" in this context ? Just a generic expression of mild surprise. >> It seems there's more content at those sites than just such project >> control panels, and you and I know that, but I am considering the >> likelihood that part of your desired user base probably does not know >> that. And in fact newbie programmers are an *important* part of that >> user base, perhaps the *most* important. > > For the laziest users (or the more effective ones, everything is always a > question of viewpoint ;-), using the eclipse integrated market place is the > @right think to do@ as a first intention, anyway :-p Ah, but that presumes someone already using Eclipse. In the hypothetical instance of a Clojure developer contemplating switching from NB, or IDEA, or just starting out and not yet using *any* IDE, that developer will want to read some introductory information and get a feel for CCW (from an end-user-of-CCW perspective, not a developer-of-CCW perspective) before bothering to install Eclipse. IF they decide CCW's worth trying, THEN they'll install BOTH. So, the "market place" addresses "how do I get and install the CCW binary?" from pre-existing Eclipse users; but not "where do I get more information on which to base a decision among multiple IDEs/plugins?" from non-Eclipse users. (Eclipse users can, from the sounds of it, fairly painlessly install CCW and test-drive it, IF that is it is free in that "market place" rather than paid.) >> > Now that all this is said, I clearly have the intention, eventually, to >> > have >> > a domain name for Counterclockwise, as well as a decent website. Now >> > just >> > doesn't feel the right timing to me, given that resources are limited. >> >> That's okay. Once again, it is not for my own sake so much as for that >> of potential new users less knowledgeable about some of these things >> that I offered these suggestions. >> > > Yes, we all want the best for clojure, and that's why I said thank you for > your feedback. You're welcome. -- 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
Re: The non-Enclojure Clojure plugin homepages are all rather hard to find.
> FYI, the main page of ccw is manually maintained and contains up to date > information wrt current plugin status. > That's maybe why you didn't have to /specifically/ complain 'bout ccw itself > ;-) Yes, it seems more "obviously maintained" than most :) -- / Peter Schuller -- 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
Re: ANN: syntax-rules
One of the stmbling blocks I find as a Clojure newbie are syntax errors working with core library macros. The error messaeges aren't always descriptive. What are the chances that core macros could be rewriiten using a future version on defsyntax to help with this problem? On Jan 2, 11:57 am, Brian Goslinga wrote: > I have released version 1.0.0-alpha1 of my syntax-rules > library:http://clojars.org/org.clojars.qbg/syntax-rules. This library is also > on Github:https://github.com/qbg/syntax-rules > > This library seeks to address two sources of incidental complexity > when writing macros in Clojure using defmacro: parsing the macro form > and checking for syntax errors. The library provides powerful tools > for parsing macros with complex syntax (see the wiki for an example of > parsing deftype). In addition, this library will generate reasonable > syntax error messages almost for free. > > The wiki for this library is located > athttps://github.com/qbg/syntax-rules/wiki. > On the wiki are some simple examples comparing the implementation of > simple macros from Clojure using defmacro and defsyntax-rules. An > implementation of defn is provided using defsyntax-rules. As mentioned > above, there is also an example of parsing deftype using defsyntax- > rules. > > I hope people find this library useful. > > Brian -- 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
Re: a loop gives boxing warning when it shouldn't
2011/1/3 Allen Johnson : >> I can't see where the variables are boxed into objects. Both the loop >> and the let declare them as primitives if they are given primitives. >> Perhaps they are already objects before they reach the inc and dec >> function calls in the recur, but if so, it's a mystery to me why. > > Yeah that is interesting. I'm not sure the _why_ of it but I attempted > to narrow it down and it looks like it has something to do with nested > loops and recur. The code below is basically the same thing except the > first one generates auto-boxing warnings while the latter does not. > I'd also like to know why this is. > > (set! *warn-on-reflection* true) > > ;; generates auto-boxing warnings > (defn example [^long x] > (loop [a x] > (let [i (loop [k a] k)] > (if false (recur i) i > > ;; no warnings > (defn example [^long x] > (loop [a x] > (let [i (let [k a] k)] > (if false (recur i) i Very nice minimal example. If someone has access for filing bugs to assembla, could this one please be filed in? > Also, I couldn't resist giving qsort another attempt. I got a new > laptop and need to break it in somehow :) So here is a rewritten > version based on an example in "Introduction to Algorithms" without > casts. > > https://gist.github.com/763139 Nice traditional example, with swap and partition functions. Very pretty, and readable! Albert -- http://albert.rierol.net -- 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
Re: A Web Server in Clojure
On 3 January 2011 12:30, Ken Wesson wrote: > 2011/1/3 Remco van 't Veer : >> Try adding CR to your LF's. RFC 1945 states: >> >> HTTP/1.0 defines the octet sequence CR LF as the end-of-line marker >> for all protocol elements ... > > My God, is nothing exempt from Microsoft's taint? This has the stench > of "concession to stupidly-designed Windows software" written *all > over it* I'm not sure if you're being serious here, but CRLF is the standard in many old network protocols, such as FTP and SMTP. It's certainly not because of Windows. - James -- 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
Re: osx + clojure + emacs + leiningen blog posts
nope not related, i can add a paragraph there to avoid confusion. On Mon, Jan 3, 2011 at 12:44 AM, Bill Robertson wrote: > Hi, > > "One thing worth noting about emacs-starter-kit is that it tries to > source a file of your own customizations on startup. This file > defaults to your username.el so the easiest thing to do is create that > file inside of ~/.emacs.d. One thing you really should add to this is > a function to fix the path issues inside of Emacs:" > > Is fixing the path related to the information about ~/.emacs.d/ > username.el? If not then I would suggest a new paragraph. If it is, > then will you please explain how? > > Thanks, > Bill Robertson > > On Dec 28 2010, 11:31 pm, gaz jones wrote: >> thanks for the feedback, i will update it tomorrow. >> >> cheers, >> gaz >> >> >> >> >> >> >> >> On Tue, Dec 28, 2010 at 8:44 PM, Phil Hagelberg wrote: >> > On Dec 28, 2:32 pm, gaz jones wrote: >> >> i put together a couple of blog posts around how i use clojure + emacs >> >> + leiningen on OSX (but applies to linux too) in the hope it may help >> >> someone get up and running faster: >> >> > Looks good. I should mention that installing the elisp for swank- >> > clojure is actually no longer necessary. Also it's a little more >> > convenient to use C-c C-k instead of C-c C-l to compile the current >> > file. >> >> > It might be nice to link to the Leiningen tutorial for further >> > reference since it goes into more detail: >> >https://github.com/technomancy/leiningen/blob/master/TUTORIAL.md >> >> > very nice, >> > Phil >> >> > -- >> > 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 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 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
Re: ANN: syntax-rules
On Jan 3, 7:44 am, Mark wrote: > One of the stmbling blocks I find as a Clojure newbie are syntax > errors working with core library macros. The error messaeges aren't > always descriptive. What are the chances that core macros could be > rewriiten using a future version on defsyntax to help with this > problem? There would be a bootstrapping problem involved if such a transition would happen as the macros needed to define the functions and macros used by the library need to be defined before the library is able to define other macros. The problem is in theory solvable: use the current versions as bootstrapping versions then redefine them once library is usable. However, this solution would involve code duplication which is not desirable. One could also give up the ability to bootstrap the language, but IMO that would be worse than the code duplication. Brian -- 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
Re: Compiling dynamically created namespaces, without on-disk source code?
I mean the JVM bytecode generated by the Clojure compiler is not accessible after it has been loaded. The JVM stores it somewhere, internally, but there's no way to get at it. -Stuart Sierra clojure.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
Re: osx + clojure + emacs + leiningen blog posts
Very useful info, really thanks for that. Will try later and give feedback. gaz jones wrote: > oh hi, > > i put together a couple of blog posts around how i use clojure + emacs > + leiningen on OSX (but applies to linux too) in the hope it may help > someone get up and running faster: > > http://blog.gaz-jones.com/post/2486737162/setting-up-clojure-development-on-osx-using-emacs-and > http://blog.gaz-jones.com/post/2501842155/interactive-clojure-development-in-emacs-with-leiningen > > suggestions for improvements / things im doing crazy are welcome! > > cheers > gaz -- 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
Re: Chunking is making my life more difficult.
> Four is better than 32, but still. I found the explanation for this on stackoverflow.com. Stuart Sierra wrote, > This is due to the definition of =, which, when given a sequence of > arguments, forces the first 4: >> (defn = >> ;; ... other arities ... >> ([x y & more] >>(if (= x y) >> (if (next more) >>(recur y (first more) (next more)) >>(= y (first more))) >> false))) http://stackoverflow.com/questions/3407876 He also defined an unchunk function to prevent chunking. For completeness, I should also mention that Michael Fogus has written a different function for the same purpose: http://blog.fogus.me/2010/01/22/de-chunkifying-sequences-in-clojure/ -- 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
Re: a loop gives boxing warning when it shouldn't
On Sat, Jan 1, 2011 at 5:47 PM, Albert Cardona wrote: > Hi all, > > I'd apreciate help on figuring out why a loop gets number boxing > warnings, when it shouldn't: > > http://clojure.pastebin.com/9uLZqGhy I just filed this as: http://dev.clojure.org/jira/browse/CLJ-701 --Chouser http://joyofclojure.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
ANN: Tom Faulhaber: "Lisp, Functional Programming, and the State of Flow" video available
Hi everyone, I'm happy to announce that Tom Faulhaber's Conj talk, "Lisp, Functional Programming, and the State of Flow" is now available on Clojure's blip.tv page: http://clojure.blip.tv/file/4521022/ As always, other Clojure and Conj videos can be found here: http://clojure.blip.tv/, and we'll announce when the next video is available over on Twitter at http://twitter.com/clojure_conj Thank you, and Happy New Year, Alan and the Clojure/core 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
Clojure Newbie trying to represent electrical circuit
Hi, I'm new to clojure (though I've messed around in scheme a little) and I'm trying to represent an electrical circuit with "pins" and "nets" (ie in graph terminology vertices and edges). I'd like to represent the nets as {:name "net_name" :pins #{pin1 pin2 pin3}} etc. I'd like to represent each pin as {:name "pin_name" :net the_net :type pin_type} I want to query the net for all its attached pins, and to query any pin to see what net it's attached to. The problem here is that these are mutually-referring things. The net refers to the pins and each pin refers back to the net. How do I create these without mutation? For example I could create all the pins, then the net, then go back and fill in the net for all the pins. I'm still reading through how to implement mutable stuff, but I have a strong sense this is not the correct implementation. I thought maybe instead I should represent the circuit by having each "pin" and each "net" actually be a vertex in the graph, and each graph edge is a connection between a pin and a net. If I represent this as a set of edges, the above then becomes (I'm doing this in analog to emphasize I don't want a source or destination pin, and I don't believe I need a directed graph.) (def p1 {:name "pin1" :impedance 1.0}) (def p2 {:name "pin2" :impedance 1e6}) (def p3 {:name "pin3" :impedance 1e6}) (def n1 {:name "the_net" :type "analog"}) (def circuit #{{ :pin p1 :net n1} { :pin p2 :net n1} { :pin p3 :net n1}} ) I can then use this for all the basic stuff such as seeing which pin is connected to which net. Connections are easy to create or delete. For a large circuit however it may be slow to filter through this set to see what's connected to what for any given query, so perhaps I could assoc to each pin or net its local connectivity. This would not require mutation, only copying the set where each pin or net gets a new key and list of its local connection. The drawback here is any connectivity changes requires going through the affected nets or pins and updating their local cache. Any advice mucho appreciated Thanks Michael -- 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
Re: can I force the JIT to be called immediately for certain pieces of code after it starts executing with out waiting for the JVM realize it is necessary....
On Jan 2, 2011, at 9:13 AM, Marek Kubica wrote: >> But in theory it could be posible to collect run-time data in one run, >> then JIT code at startup, using that collected data and current >> procesor architecture. > > Something like this is already used in practice, it is called > Profile-Guided Optimization (PGO) and available in GCC (but that uses > AOT, which sounds to me like equivalent to "JIT at startup"). The > OpenJDK-JVM does not support this and I doubt that it will. Maybe GCJ > at some time, but as far as I saw, GCJ does not work with Clojure yet. A while back I was talking with someone from Sun that had done a fair bit of work on the client compiler, and this topic came up. Apparently, its implementation (and perhaps presumably that of -server as well?) is such that optimized code references memory locations specific to the then-running VM. It would apparently be trivial to dump JITed code, but you'd never be able to load that code again. - 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
Re: Loading JNI
Hmm, I see that the final draft of my question missed an essential element, I am using Eclipse. In any case, I've tried something really basic, and it fails: (try (System/load "C:\\app/bin/coms.dll") (println "Native code library failed to load.")) The file is there (I checked with an exists() call). Maybe this is an eclipse problem, but I can do the same call in Java (in Eclipse) and have no issues. -- 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
Re: Loading JNI
Question about your really basic example: it looks as if it will print "Native code library failed to load" if System/load succeeds, and otherwise will print nothing at all. Is that what you intended? -- 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
Re: Has Clojure Fixed the Social Problem that LISP is Too Powerful?
On Jan 3, 11:24 am, Jozef Wagner wrote: > Some of my arguments are: > - Clojure has no custom reader macros, makes it easier to read others code > - Protocols and the way clojure handles data helps to explicitly formulate > specifications and designs > - Fresh syntax which improves readability > - Easy integration with familiar technologies thanks to JVM > - Modern collection types, not just lists I've been playing a lot with common lisp these last few months, I'll just share my oppinion on these points: - Reader macros. How often are they used in common lisp anyway? And how many of these uses are abusive or inappropriate? I don't believe this has such a great impact on clojures popularity. - Im no expert in neither clojure protocols or CLOS, and I'd love for someone more knowledgeable to confirm or deny my suspicions, but aren't clojure protocols a variation on lisp generic functions, made to fit the jvm better and give better performance? What, other than absence of inheritance, do they give you over GFs? You can write java- like code in CLOS, but the way I've been using it is very similar to the way i use protocols in clojure. - If by fresh syntax you mean reader support for vectors and hash- tables, i agree, it's very convenient to have it built in, in common lisp I'd have to write my own reader macros to do it. And i'd have to document it, and tell everyone on my team to use it and not to get confused. - I don't believe i understand this completely, do you mean library support? If so, i agree. - Yes, clojures persistent collections are a huge win, and i miss them in common lisp, although if I'm a newcomer from java, or any other language without literal support for hash tables or arrays, or their persistent versions, common lisp at least doesn't make your life worse. In my opinion, and im sure some might disagree, even though clojure has a lot of technical advantages over other lisp dialects, and is generally a very well designed language, its popularity is mostly the result of exceptionally good marketing. Just look at any of Rich Hickeys talks, he doesn't say "Clojure is an awesome language, with these awesome features", he says "Here are these hard problems, heres clojure's solutions". People have used common lisp in large teams, its not inherently unsuited for that, it just lacked the right marketing. -- 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
Re: Boston meetup Jan 11?
I just added myself to that Clojure Meetup waiting list so count me in. Any prospects on a venue yet? Tim -- 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
Re: Has Clojure Fixed the Social Problem that LISP is Too Powerful?
2011/1/3 Jozef Wagner > Our team works on big EU projects, where there are many technical partners > from different countries cooperating. Most of our work is about choosing a > good technology and then about customizing and integrating it into our > system. Usually SOA, Enterprise Java and semantic web technologies are in > place. > > Many people argue (and my colleagues are among them) that LISP is not > suitable for such environments (many coders, tests and use cases, have > to produce explicit designs and specifications e.g. because other team who > builds on your work is in different country). They say LISP is a hacker > language for lone warriors, not suited for big teams, where code must be > understood by many. > > See also http://c2.com/cgi/wiki?LispIsTooPowerful , > http://c2.com/cgi/wiki?SocialProblemsOfLisp and > http://c2.com/cgi/wiki?HackerLanguage > > They are IMO right if by LISP a Common Lisp is meant. But I have a feeling > (and I want to believe) that Clojure has largely fixed this social problem > of LISP, just like it has fixed the other big social problems of LISP, > namely http://c2.com/cgi/wiki?LispUsersAreArrogant :) > > My colleagues all know and have been using LISP (in academics), we are an > AI department after all. How can I explain them that Clojure is also useful > for enterprise projects and big teams? Or is it not? > > Some of my arguments are: > - Clojure has no custom reader macros, makes it easier to read others code > - Protocols and the way clojure handles data helps to explicitly formulate > specifications and designs > - Fresh syntax which improves readability > - Easy integration with familiar technologies thanks to JVM > - Modern collection types, not just lists > > What are your thoughts? How would you argue? > > Some more arguments for you: - More opinionated, which has the interesting side effect that some "idiomatic" clojure can emerge (using immutable as the default, managed ways to get into the mutable world). "Common Lisp" in this area is more open to different "styles of programming". Clojure makes one style be easier than the others. - It's not just about modern collection types (after all, common lisp has these built-ins too, hash maps, etc.), it's more the way that Rich placed the focus on abstractions first. In a nutshell "It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures." - Alan J. Perlis" versus "It is better to have 100 functions operate on one data abstraction than 10 functions on 10 data structures." (generally attributed to Rich Hickey). > -- > 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 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
Re: Has Clojure Fixed the Social Problem that LISP is Too Powerful?
Clojure is extremely consise. IMO it's very beneficial for maintaining a complex codebase and underestimated in the corporate world. -- 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
Infinite recursion bug in clojure.lang.Keyword.intern()?
I started getting StackOverflow exceptions today around clojure.lang.Keyword (I'm running clojure 1.2.0, but the code doesn't seem to be different in github master). It looks like intern is keeping a ConcurrentHashMap of SoftReference objects. The problem is that when the SoftReference exists, but the payload of the SoftReference (the thing you get from .get()) is null, it tries to call intern again: public static Keyword intern(Symbol sym){ Util.clearCache(rq, table); Keyword k = new Keyword(sym); SoftReference existingRef = table.putIfAbsent(sym, new SoftReference(k,rq)); if(existingRef == null) return k; Keyword existingk = existingRef.get(); if(existingk != null) return existingk; //entry died in the interim, do over return intern(sym); } It's counting on Util.clearCache and a ReferenceQueue at rq to clear out objects that have been GC'd, but the documentation for SoftReferences says: "Suppose that the garbage collector determines at a certain point in time that an object is softly reachable. At that time it may choose to clear atomically all soft references to that object and all soft references to any other softly-reachable objects from which that object is reachable through a chain of strong references. At the same time or at some later time it will enqueue those newly-cleared soft references that are registered with reference queues." This means to me that it is non-deterministic when the VM will enqueue the reference into the ReferenceQueue, you just know that it will happen at some point in time. I'm assuming that my code was in a state where the Keyword got GC'd, but that hadn't been enqueued in the ReferenceQueue yet and thus the SoftReference wasn't cleared out of the Map and it recursed until it got a StackOverflow. I think a simple fix for this could be to do a "table.remove(sym, existingRef)" right before the "return intern(sym);". This would ensure that the recursive call will succeed and since Util.clearCache is doing the same call, shouldn't have any adverse side-effects. --Eric -- 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
Re: Loading JNI
Of course not. I mentioned I'm new at this, right? It seems I was doing that part right before. I'm getting InvocationTargetException and NoClassDefFoundError, so I tried to work my way from the start to see if I was missing something (which I thought was a valid assumption, if exceptions were being swallowed). My first instinct was that it wasn't loading the libraries correctly. Or course, I'm still stuck. It clearly sees the classes, because my import statements aren't throwing ClassNotFoundExceptions. The exceptions I'm getting are bubbling up out of the JNI, apparently, but I don't have any idea why. At this point I have ugly looking Clojure code that looks as Java-like as possible, so that I'm doing the exact same thing in the exact same order as I do in a Java example, but I get exceptions when I do it in Clojure. So, when I get to (def my-client (Client.)) it throws. BTW, Java equivalent ... Client myClient = new Client(); It feels like something is fundamentally different in a way I cannot conceive, like Java automatically handles something behind the scenes and I don't realize it. Thanks. -- 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
Re: Clojure Newbie trying to represent electrical circuit
On Mon, Jan 3, 2011 at 1:40 PM, MS <5lvqbw...@sneakemail.com> wrote: > Hi, I'm new to clojure (though I've messed around in scheme a little) > and I'm trying to represent an electrical circuit with "pins" and > "nets" (ie in graph terminology vertices and edges). > > I'd like to represent the nets as {:name "net_name" :pins #{pin1 pin2 > pin3}} etc. > I'd like to represent each pin as {:name "pin_name" :net the_net :type > pin_type} > > I want to query the net for all its attached pins, and to query any > pin to see what net it's attached to. The problem here is that these > are mutually-referring things. The net refers to the pins and each > pin refers back to the net. > > How do I create these without mutation? I'd recommend something like this: {"pin_name1" {:name "pin_name1" :net "net_name1" :type ...} "pin_name2" {:name "pin_name2" :net "net_name1" :type ...} "pin_name3" {:name "pin_name3" :net "net_name1" :type ...} {"net_name1" {:name "net_name1" :pins #{"pin_name1" "pin_name2" "pin_name3"}} Each one refers not directly to others, but simply to Strings. Which can be used to look the others up in the two master hash maps. -- 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
Re: Clojure Newbie trying to represent electrical circuit
You might be interested in reading http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.4 (It's in Scheme, but I don't think you'll have hard time to translate). -- 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
Re: Clojure Newbie trying to represent electrical circuit
On Mon, Jan 3, 2011 at 7:13 PM, Miki wrote: > You might be interested in reading > http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.4 > (It's in Scheme, but I don't think you'll have hard time to translate). It looks like this is a mutating approach (which surprises me somewhat, since it's in Scheme). -- 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
Re: Clojure Newbie trying to represent electrical circuit
thanks... actually I have the hardcopy of sicp, but it's buried someplace. I was hoping do divine the solution with mostly my own brain. :) Michael On Jan 3, 4:13 pm, Miki wrote: > You might be interested in > readinghttp://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.4 > (It's in Scheme, but I don't think you'll have hard time to translate). -- 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
Re: Loading JNI
As far as I know, Clojure doesn't talk straight JNI. In other words, there isn't a Clojure equivalent to the "native" keyword in Java. (If I'm mistaken about that, someone please speak up.) Nonetheless, Clojure *can* use native libraries. Your Clojure code can interact with a Java wrapper that loads a native library and declares native methods. There's also JNA; if you Google for Clojure and JNA, you'll find examples/instructions. Bill Smith -- 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
Re: Loading JNI
I would suggest working through simple a example in just java, just so you can figure out how to get your dlls loaded and then calling them. Once you work out the configuration/setup kinks I would add clojure on top of that. I would also suggest you use jna instead of straight up jni. If it fits your use-case it ought to take a lot of the hassle out. Good luck. On Jan 3, 5:54 pm, ax2groin wrote: > Of course not. I mentioned I'm new at this, right? > > It seems I was doing that part right before. I'm getting > InvocationTargetException and NoClassDefFoundError, so I tried to work > my way from the start to see if I was missing something (which I > thought was a valid assumption, if exceptions were being swallowed). > My first instinct was that it wasn't loading the libraries correctly. > > Or course, I'm still stuck. It clearly sees the classes, because my > import statements aren't throwing ClassNotFoundExceptions. The > exceptions I'm getting are bubbling up out of the JNI, apparently, but > I don't have any idea why. At this point I have ugly looking Clojure > code that looks as Java-like as possible, so that I'm doing the exact > same thing in the exact same order as I do in a Java example, but I > get exceptions when I do it in Clojure. > > So, when I get to > (def my-client (Client.)) > it throws. BTW, Java equivalent ... Client myClient = new Client(); > > It feels like something is fundamentally different in a way I cannot > conceive, like Java automatically handles something behind the scenes > and I don't realize it. > > Thanks. -- 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
Re: osx + clojure + emacs + leiningen blog posts
Yes. Very helpful. Thanks Gaz. Also, thanks to Phil for all of his hard work. -Bill On Jan 3, 10:50 am, Neo wrote: > Very useful info, really thanks for that. Will try later and give > feedback. > > > > > > > > gaz jones wrote: > > oh hi, > > > i put together a couple of blog posts around how i use clojure + emacs > > + leiningen on OSX (but applies to linux too) in the hope it may help > > someone get up and running faster: > > >http://blog.gaz-jones.com/post/2486737162/setting-up-clojure-developm... > >http://blog.gaz-jones.com/post/2501842155/interactive-clojure-develop... > > > suggestions for improvements / things im doing crazy are welcome! > > > cheers > > gaz -- 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
Re: osx + clojure + emacs + leiningen blog posts
hey, you're welcome. many thanks to phil, his work has made developing clojure in (and out of) emacs pretty awesome. btw i also did another small post on creating simple command line apps: http://blog.gaz-jones.com/post/2528825514/command-line-applications-in-clojure cheers, gaz On Mon, Jan 3, 2011 at 8:38 PM, Bill Robertson wrote: > Yes. Very helpful. > > Thanks Gaz. Also, thanks to Phil for all of his hard work. > > -Bill > > On Jan 3, 10:50 am, Neo wrote: >> Very useful info, really thanks for that. Will try later and give >> feedback. >> >> >> >> >> >> >> >> gaz jones wrote: >> > oh hi, >> >> > i put together a couple of blog posts around how i use clojure + emacs >> > + leiningen on OSX (but applies to linux too) in the hope it may help >> > someone get up and running faster: >> >> >http://blog.gaz-jones.com/post/2486737162/setting-up-clojure-developm... >> >http://blog.gaz-jones.com/post/2501842155/interactive-clojure-develop... >> >> > suggestions for improvements / things im doing crazy are welcome! >> >> > cheers >> > gaz > > -- > 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 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
c.c.sql 1.3.0-SNAPSHOT and lesser JDBC drivers
Hi, I came across this when testing clojure.contrib.sql/insert-values with JDBC-ODBC bridge driver for MS-Excel files. c.c.sql/insert-values implementation has changed from 1.2.0 to 1.3.0- SNAPHOT wherein it uses a PreparedStatement (in 1.3.0- SNAPSHOT, .prepareStatement) instead of Statement (1.2.0, .createStatement). In my test this causes to break the use- case of inserting a new row into an Excel sheet because apparently the Excel ODBC driver does not support the JDBC PreparedStatement semantics. While it has been decided to use PreparedStatement for insert-values, it might be a good idea to introduce an alternative where the lesser JDBC drivers can work as well. Regards, Shantanu -- 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
Re: ANN: Tom Faulhaber: "Lisp, Functional Programming, and the State of Flow" video available
Thanks for posting these for those of us that were not able to make it to the conj! -- 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