From simply.nitaai at gmail.com Tue May 24 08:27:24 2011 From: simply.nitaai at gmail.com (Matus Kmit) Date: Tue, 24 May 2011 10:27:24 +0200 Subject: [Snow-devel] Snow appreciation & questions Message-ID: Hi First of all i would like to express my appreciation for this project. i like the concept of a Lisp-based DSL for creating portable Java-based GUI applications, without having to use the Java syntax. i'd love to use it for my personal projects. My decision to start actively using it is however hampered by the following opened questions: 1. Is this project still being developed? 2. How is its current state of implementation? How many and which swing components are implemented? 3. What about the documentation? i have seen that it is quite incomplete and kind of work in progress... 4. Why cannot one access cvs and docs repository?! Thanks, Matus From alessiostalla at gmail.com Tue May 24 09:23:00 2011 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 24 May 2011 11:23:00 +0200 Subject: [Snow-devel] Snow appreciation & questions In-Reply-To: References: Message-ID: On Tue, May 24, 2011 at 10:27 AM, Matus Kmit wrote: > Hi > > First of all i would like to express my appreciation for this project. > i like the concept of a Lisp-based DSL for creating portable > Java-based GUI applications, without having to use the Java syntax. > i'd love to use it for my personal projects. Hi, thanks for the kind words! This is an idea I like a lot; I actually restarted the project from scratch a few times while my experience matured. > My decision to start actively using it is however hampered by the > following opened questions: > > 1. Is this project still being developed? It's been on hiatus for quite some time. It's a sort of catch-22: I don't want to build the project for myself only (unless I start using Swing in my daily job, but that won't happen in the foreseeable future), I need users to be motivated; but users need a complete, well tested library, not a clever proof of concept. > 2. How is its current state of implementation? How many and which > swing components are implemented? It's definitely unfinished. The core is mostly done, modulo bugs of course; but only very few widgets are covered and then very few properties of them are covered. Certainly less than what is needed for a real application. However, adding new ones is tedious, but not hard, and I am willing to add what you need the most urgently. Besides widgets, there are a few outstanding things that I've long postponed: - The loading process is way too cumbersome. I need some support from ABCL to make it work better, but things seem to be moving in the right direction with ASDF and binary-only jars. - I'd love to have a good graphical debugger and inspector. They're only sketched for now. - I'm unsure about the dependency on Cells. In the meantime I've written a very lightweight data flow library that could probably replace Cells in Snow. - Someone on IRC suggested introducing a jQuery-like API and I liked the idea. and probably other things as well. > 3. What about the documentation? i have seen that it is quite > incomplete and kind of work in progress... Yes, it is incomplete. You might be able to live with what little is there + the Swing API docs + the MiG Layout cheat sheet, but certainly it's far from optimal. > 4. Why cannot one access cvs and docs repository?! Ugh, it seems common-lisp.net is broken, other projects have the same issue too. The site was moved not long ago, that might be the cause. I'll ask the admins about it asap. Bye, Alessio From simply.nitaai at gmail.com Wed May 25 08:01:13 2011 From: simply.nitaai at gmail.com (Matus Kmit) Date: Wed, 25 May 2011 10:01:13 +0200 Subject: [Snow-devel] Snow appreciation & questions In-Reply-To: References: Message-ID: Hi Allessio Thanks for Your answer. i requirements for the available components are quite modest as per now, as the application is also quite simple (although it might get more sophisticated in the future). to start, i will surely need to following: frame, panels, buttons and dropdowns with all their most important attributes. in the future i might add menu bar and some of the look-and-feel components... if suppose the above mentioned components are already integrated? Good to know that You are willing to add components, which i will need :-) That's kind. Best wishes, Matus On Tue, May 24, 2011 at 11:23 AM, Alessio Stalla wrote: > On Tue, May 24, 2011 at 10:27 AM, Matus Kmit wrote: >> Hi >> >> First of all i would like to express my appreciation for this project. >> i like the concept of a Lisp-based DSL for creating portable >> Java-based GUI applications, without having to use the Java syntax. >> i'd love to use it for my personal projects. > > Hi, thanks for the kind words! This is an idea I like a lot; I > actually restarted the project from scratch a few times while my > experience matured. > >> My decision to start actively using it is however hampered by the >> following opened questions: >> >> 1. Is this project still being developed? > > It's been on hiatus for quite some time. It's a sort of catch-22: I > don't want to build the project for myself only (unless I start using > Swing in my daily job, but that won't happen in the foreseeable > future), I need users to be motivated; but users need a complete, well > tested library, not a clever proof of concept. > >> 2. How is its current state of implementation? How many and which >> swing components are implemented? > > It's definitely unfinished. The core is mostly done, modulo bugs of > course; but only very few widgets are covered and then very few > properties of them are covered. Certainly less than what is needed for > a real application. However, adding new ones is tedious, but not hard, > and I am willing to add what you need the most urgently. Besides > widgets, there are a few outstanding things that I've long postponed: > - The loading process is way too cumbersome. I need some support from > ABCL to make it work better, but things seem to be moving in the right > direction with ASDF and binary-only jars. > - I'd love to have a good graphical debugger and inspector. They're > only sketched for now. > - I'm unsure about the dependency on Cells. In the meantime I've > written a very lightweight data flow library that could probably > replace Cells in Snow. > - Someone on IRC suggested introducing a jQuery-like API and I liked the idea. > and probably other things as well. > >> 3. What about the documentation? i have seen that it is quite >> incomplete and kind of work in progress... > > Yes, it is incomplete. You might be able to live with what little is > there + the Swing API docs + the MiG Layout cheat sheet, but certainly > it's far from optimal. > >> 4. Why cannot one access cvs and docs repository?! > > Ugh, it seems common-lisp.net is broken, other projects have the same > issue too. The site was moved not long ago, that might be the cause. > I'll ask the admins about it asap. > > Bye, > Alessio > From alessiostalla at gmail.com Thu May 26 09:12:43 2011 From: alessiostalla at gmail.com (Alessio Stalla) Date: Thu, 26 May 2011 11:12:43 +0200 Subject: [Snow-devel] Snow appreciation & questions In-Reply-To: References: Message-ID: On Wed, May 25, 2011 at 10:01 AM, Matus Kmit wrote: > Hi Allessio > > Thanks for Your answer. i requirements for the available components > are quite modest as per now, as the application is also quite simple > (although it might get more sophisticated in the future). > > to start, i will surely need to following: frame, panels, buttons and > dropdowns with all their most important attributes. > > in the future i might add menu bar and some of the look-and-feel components... > > if suppose the above mentioned components are already integrated? Dropdowns aren't, as far as I remember. The rest are supported (as well as text fields, tab panes, lists and maybe text areas) but with essential attributes only. In the next few days I'll work on strengthening support for existing widgets and adding dropdowns. As soon as I have something ready I'll tell you. Expect to work with stuff from SVN until I add/fix enough stuff to make a proper release. > Good to know that You are willing to add components, which i will need > :-) That's kind. That's not kind, that's marketing :D Just kidding, it's nice to have someone using your stuff. If it reassures you about my commitment to the project, I'm planning to use it (time permitting) to redo the GUI of an old project of mine (a didactic Prolog interpreter) which is relatively complex with tabs, split panes, lists and a custom tree. All in my free time, so don't expect rapid development :( Cheers, Alessio PS I haven't yet investigated the http svn browser issue, I'll let you know when I have more info. From simply.nitaai at gmail.com Thu May 26 09:29:28 2011 From: simply.nitaai at gmail.com (Matus Kmit) Date: Thu, 26 May 2011 11:29:28 +0200 Subject: [Snow-devel] Snow appreciation & questions In-Reply-To: References: Message-ID: On Thu, May 26, 2011 at 11:12 AM, Alessio Stalla wrote: > On Wed, May 25, 2011 at 10:01 AM, Matus Kmit wrote: >> Hi Allessio >> >> Thanks for Your answer. i requirements for the available components >> are quite modest as per now, as the application is also quite simple >> (although it might get more sophisticated in the future). >> >> to start, i will surely need to following: frame, panels, buttons and >> dropdowns with all their most important attributes. >> >> in the future i might add menu bar and some of the look-and-feel components... >> >> if suppose the above mentioned components are already integrated? > > Dropdowns aren't, as far as I remember. The rest are supported (as > well as text fields, tab panes, lists and maybe text areas) but with > essential attributes only. In the next few days I'll work on > strengthening support for existing widgets and adding dropdowns. As > soon as I have something ready I'll tell you. Expect to work with > stuff from SVN until I add/fix enough stuff to make a proper release. > >> Good to know that You are willing to add components, which i will need >> :-) That's kind. > > That's not kind, that's marketing :D Just kidding, it's nice to have > someone using your stuff. If it reassures you about my commitment to > the project, I'm planning to use it (time permitting) to redo the GUI > of an old project of mine (a didactic Prolog interpreter) which is > relatively complex with tabs, split panes, lists and a custom tree. > All in my free time, so don't expect rapid development :( > > Cheers, > Alessio > > PS I haven't yet investigated the http svn browser issue, I'll let you > know when I have more info. > Hi Alessio, Nice to here that You are using and extending Snow for Your own project. i am looking forward for the future releases of Snow, whenever they come :-) i started looking more into MiGLayout and some examples i found in the Snow project, i think i am slowly starting to understand the syntax and how the stuff works. i also took a look into the source code of Snow as i wanted to know what widgets are supported, so i could see a bit how it is implemented. It is quite generic. As far as i could see, extending Snow with new widgets follows the same pattern. Looking into the code details myself takes much time and effort however in order to fully understand how it works (i am quite new to lisp and java). The reason why i am writing this is that if i would get some explanation about how the extending of widget library works, i could do it myself and perhaps contribute if it conforms to Your definition standards and integrates well in the framework... Of course for that i would need more experience and know how of Snow. But it's just an idea... Greetings, Matus From simply.nitaai at gmail.com Thu May 26 10:52:55 2011 From: simply.nitaai at gmail.com (Matus Kmit) Date: Thu, 26 May 2011 12:52:55 +0200 Subject: [Snow-devel] Slime or other framework for developing Snow Message-ID: Hi Alessio What do You use for developing and testing Snow code? i configured emacs+slime for using ABCL. Is it possible to do it for Snow as well, in the way, that when one would start REPL in smile, all the necessary jar files with snow would be loaded, and one could test the snow code? Or what would You recommend as the most convenient way to write and test snow code? Another question i habe is regarding --no-gui-repl switch for command line. In windows i am starting snow in the following manned: "java -classpath snow.jar:lib/abcl.jar:lib/binding-2.0.6.jar:lib/commons-logging.jar:lib/miglayout-3.7.1.jar snow.Snow" i tried placing the switch at several position in the above statement, but none of them worked. How to do it correctly? Many thanks for help Matus From alessiostalla at gmail.com Thu May 26 18:18:09 2011 From: alessiostalla at gmail.com (Alessio Stalla) Date: Thu, 26 May 2011 20:18:09 +0200 Subject: [Snow-devel] Slime or other framework for developing Snow In-Reply-To: References: Message-ID: On Thu, May 26, 2011 at 12:52 PM, Matus Kmit wrote: > Hi Alessio > > What do You use for developing and testing Snow code? i configured > emacs+slime for using ABCL. Is it possible to do it for Snow as well, > in the way, that when one would start REPL in smile, all the necessary > jar files with snow would be loaded, and one could test the snow code? > > Or what would You recommend as the most convenient way to write and > test snow code? Slime can be used. The way I do it: - have a file in the classpath named abcl-script-config.lisp containing the following lines: (in-package :abcl-script-user) (setq *launch-swank-at-startup* t) (setq *swank-dir* #P"/home/alessio/slime/slime/") ;;Here substitute with the path to your installation of Slime - launch Snow normally, ensuring the file above is in the classpath[1] - launch Emacs and do M-x slime-connect keep the standard host and port (localhost:4005) and you should connect to the ABCL instance running Snow. [1] the way I do it is: I have abcl-script-config.lisp in the Snow root, along with the following run.sh script: #!/bin/bash java -classpath ".:dist/snow.jar:lib/*" snow.Snow $@ notice the extra . (dot) in the classpath. It only works if the script is in the same directory as the Lisp file. > Another question i habe is regarding --no-gui-repl switch for command > line. In windows i am starting snow in the following manned: > > "java -classpath > snow.jar:lib/abcl.jar:lib/binding-2.0.6.jar:lib/commons-logging.jar:lib/miglayout-3.7.1.jar > snow.Snow" > > i tried placing the switch at several position in the above statement, > but none of them worked. How to do it correctly? I should go after snow.Snow. However, if you're on Windows, note that the classpath separator is not : but ; (semicolon). That's a Java idiosyncrasy. Also note that due to the way EXT:QUIT has been reimplemented in recent ABCL, Snow doesn't correctly quit anymore when closing the GUI REPL (you have to kill it from the shell with Ctrl-C), and it spews out an ugly exception when you call (quit) from the non-GUI REPL. I'll fix this soon. Let me know if you have other issues. Alessio From simply.nitaai at gmail.com Tue May 31 11:34:33 2011 From: simply.nitaai at gmail.com (Matus Kmit) Date: Tue, 31 May 2011 13:34:33 +0200 Subject: [Snow-devel] Slime or other framework for developing Snow In-Reply-To: References: Message-ID: i've tried to launch snow with a newer version of ABCL (v0.25), but got the following exception: Exception in thread "main" org.armedbear.lisp.Interpreter$UnhandledCondition: Unhandled lisp condition: The symbol "VARIABLE- INFORMATION" was not found in package SYS. at org.armedbear.lisp.Interpreter$1.execute(Interpreter.java:561) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2800) at org.armedbear.lisp.Symbol.execute(Symbol.java:801) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.debug_6.execute(debug.lisp:105) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:124) at org.armedbear.lisp.Symbol.execute(Symbol.java:813) at org.armedbear.lisp.LispThread.execute(LispThread.java:670) at org.armedbear.lisp.debug_7.execute(debug.lisp:114) at org.armedbear.lisp.Symbol.execute(Symbol.java:790) at org.armedbear.lisp.LispThread.execute(LispThread.java:636) i read in your tutorial that snow is using a modified version of ABCL. The version i was trying, was the ordinary one built from sources downloaded from ABCL website. Does that mean that i will have to built Snow/ABCL myself with certain modifications? Greetings, Matus On Tue, May 31, 2011 at 1:11 AM, Alessio Stalla wrote: > On Mon, May 30, 2011 at 10:21 PM, Matus Kmit wrote: >> i created the run.sh and the other lisp file according to Your >> instruction. Running run.sh i am getting the following error: > > [snip] > >> ; Loading #P"/home/nimaai/.slime/fasl/2011-05-27/armedbear-0.19.0-dev-linux-x86-64/swank-backend.abcl" > > [snip] > >> and the no gui option does not work for me. the command prompt returns >> without value. > > You have an ancient version of ABCL installed. Considering we release > every ~2 months and 0.26 is the next release, 0.19 is from more than a > year ago. ABCL is still young enough that you need to keep it up to > date for all the libraries to work properly. > >> P.S.: show i also post copies of our discussion to the snow mailing list? > > Yes, I'd prefer if you did, if you don't mind; they might serve for > future reference for other people. > > Cheers, > Alessio (who still hasn't added that damn combo but promises that he > will do soon ;) > From alessiostalla at gmail.com Tue May 31 22:46:44 2011 From: alessiostalla at gmail.com (Alessio Stalla) Date: Wed, 1 Jun 2011 00:46:44 +0200 Subject: [Snow-devel] Slime or other framework for developing Snow In-Reply-To: References: Message-ID: On Tue, May 31, 2011 at 1:34 PM, Matus Kmit wrote: > i've tried to launch snow with a newer version of ABCL (v0.25), but > got the following exception: > > Exception in thread "main" > org.armedbear.lisp.Interpreter$UnhandledCondition: Unhandled lisp > condition: The symbol "VARIABLE- > INFORMATION" was not found in package SYS. > ? ? ? ?at org.armedbear.lisp.Interpreter$1.execute(Interpreter.java:561) > ? ? ? ?at org.armedbear.lisp.LispThread.execute(LispThread.java:653) > ? ? ? ?at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2800) > ? ? ? ?at org.armedbear.lisp.Symbol.execute(Symbol.java:801) > ? ? ? ?at org.armedbear.lisp.LispThread.execute(LispThread.java:653) > ? ? ? ?at org.armedbear.lisp.debug_6.execute(debug.lisp:105) > ? ? ? ?at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:124) > ? ? ? ?at org.armedbear.lisp.Symbol.execute(Symbol.java:813) > ? ? ? ?at org.armedbear.lisp.LispThread.execute(LispThread.java:670) > ? ? ? ?at org.armedbear.lisp.debug_7.execute(debug.lisp:114) > ? ? ? ?at org.armedbear.lisp.Symbol.execute(Symbol.java:790) > ? ? ? ?at org.armedbear.lisp.LispThread.execute(LispThread.java:636) > > i read in your tutorial that snow is using a modified version of ABCL. > The version i was trying, was the ordinary one built from sources > downloaded from ABCL website. Right, it was using a modified abcl, but sometime after the 0.3 release I made it work with standard ABCL. Unfortunately, I forgot to make a new release afterwards. Now I just released version 0.3.1 that also fixes the problem with closing the repl, and includes all the post-0.3 stuff that was on trunk (mainly bug fixes and small improvements, but one API change: with-widget is now called simply widget). I tested it with the latest abcl from trunk but it should also work with 0.25 (besides, 0.26 is not far away I think). On a side note, today I read news about JavaFX 2.0 entering beta, being Java only (no ad hoc language) and sponsored as Swing 2.0 (old Swing is going to die, if it can be even more dead than it is now). I don't know how things will evolve, but I sense an opportunity for SnowFX ;) Cheers, Alessio