44
55### License BSD 3-Clause License
66
7- [ Learn to program Common Lisp and CLOG here - LEARN.md] ( LEARN.md )
7+ - [ Learn to program Common Lisp and CLOG here - LEARN.md] ( LEARN.md )
88
9- [ Video of CLOG Builder in action] ( https://youtu.be/CgTJMxsz3EY )
9+ - [ Video of CLOG Builder in action] ( https://youtu.be/CgTJMxsz3EY )
1010
1111---
1212
@@ -19,11 +19,9 @@ frameworks and website frameworks. The CLOG package starts up the
1919connectivity to the browser or other websocket client (often a browser
2020embedded in a native template application.)
2121
22- [ CLOG - Technical Overview and Purpose ] ( CONCEPT.md )
22+ - [ CLOG - Reference Manual ] ( https://rabbibotton.github.io/clog/clog-manual.html )
2323
24- [ CLOG - Reference Manual] ( https://rabbibotton.github.io/clog/clog-manual.html )
25-
26- STATUS: CLOG and CLOG Builder 1.9 released.
24+ STATUS: CLOG and CLOG Builder 2.0 released.
2725
2826CLOG is actually based on GNOGA, a framework I wrote for Ada in 2013
2927and used in commercial production code for the last 10+ years. CLOG
@@ -53,66 +51,76 @@ programming logic, events and decisions are done on the server
5351which can be local, or remote over the web.
5452
5553CLOG is developed with ECL and SBCL, it is tested fairly regulary on
56- Linux, Windows, Android, Rasperry Pi, and Mac. It
57- should in theory work out of the box on any system with Quicklisp
58- (although you could hand install) and CLACK (easily switched out
59- and the ecl Android/iPhone branch for example doesn't use).
54+ Linux, Windows, Android, Rasperry Pi, and Mac. It
55+ should in theory work out of the box on any system with Quicklisp
56+ (although you could hand install) and CLACK (easily switched out
57+ and the ecl Android/iPhone branch for example doesn't use).
6058
6159CLOG is in QuickLisp (ql: quickload : clog ), however I recommend
62- adding the UltraLisp distribution to it as QuickLisp is update
63- infrequenty. It is also worthwhile if wish to see the source,
64- cloning CLOG into ~ /common-lisp directory [ or other quicklisp/asdf
65- findable directory `` (push #P"path/to/dir/of/projects" ql:*local-project-directories*) `` ] :
60+ adding the UltraLisp distribution as QuickLisp is update
61+ infrequenty.
6662
67- ```
68- For git (you need the clog-ace and clog-terminal for the builder too from git):
63+ However for the bleeding ede latest version and bug fixes clone
64+ CLOG into ~ /common-lisp or a findable source directory, i.e.
65+ [ `` (push #P"path/to/dir/of/projects" ql:*local-project-directories*) `` ]
66+
67+ For git (you also need the clog builder plugins clog-ace and clog-terminal
68+ for the builder from git):
6969
70+ ```
7071cd ~/common-lisp
7172git clone https://github.com/rabbibotton/clog.git
7273git clone https://github.com/rabbibotton/clog-ace.git
7374git clone https://github.com/rabbibotton/clog-terminal.git
75+ ```
76+ For now should also clone my branch of fast-websockets as the maintainers
77+ version is broked for larger files even if using UltraLisp:
7478
75- For now one, until fix integrated, should also clone a branch of fast-websockets
76- if using larger files in the builder:
77-
79+ ```
7880git clone https://github.com/rabbibotton/fast-websocket.git
81+ ```
7982
80- To update do _often_ in the future go to the created directories and type :
83+ Update git clones with :
8184
85+ ```
8286git pull
87+ ```
8388
89+ To add UltraLisp to QuickLisp:
8490
85- To add UltraLisp to QuickLisp (updates quicker than the standard QuickLisp):
86-
87- To add UtraLisp to quicklisp install:
91+ ```
8892(ql-dist:install-dist "http://dist.ultralisp.org/"
8993 :prompt nil)
94+ ```
9095
91- To update to latest packages do _often_ to get the latest:
96+ You still need often to update the UltraLisp and QuicLisp with:
97+
98+ ```
9299(ql:update-all-dists)
100+ ```
93101
94- Then as always:
95- (ql:quickload :clog)
102+ To get started load CLOG and then can load and run the builder:
96103
97104```
105+ (ql:quickload :clog)
106+ (ql:quickload :clog/tools)
107+ (clog-tools:clog-builder)
98108
99- List of plugins for CLOG on UltraLisp - https://ultralisp.org/tags/clog-plugin/
100-
109+ ```
101110
102- To load this package and work through tutorials (assuming you
103- have Quicklisp configured.)
111+ A list of plugins for CLOG are available at -
112+ https://ultralisp.org/tags/clog-plugin/
104113
105- Note: If using portacle for Windows you will need to
106- update Quicklisp use (ql: update-dist "quicklisp")
107- You will also likely need to copy the sqlite3 dll from
114+ Note: If using portacle for Windows you will need to copy the sqlite3 dll from
108115https://www.sqlite.org/download.html to portacle\win\lib
109116Consider a custom [ install on windows] ( WINDOWS.md )
110117
111- 1 . Start emacs then M-x slime
118+ 1 . Start emacs then M-x slime (or just run sbcl at the command line or use the
119+ CLOG Buider REPL Tools -> CLOG Builder Repl)
1121202 . In the REPL, run:
113121
114122```
115- CL-USER> (ql:quickload :clog)
123+ CL-USER> (ql:quickload :clog) ; if not already loaded
116124CL-USER> (clog:run-tutorial 1)
117125```
118126
@@ -128,7 +136,6 @@ CL-USER> (clog:clog-install-dir)
128136You can the run the demos with:
129137
130138```
131- CL-USER> (ql:quickload :clog)
132139CL-USER> (clog:run-demo 1)
133140```
134141
@@ -139,7 +146,7 @@ CL-USER> (ql:quickload :clog/tools)
139146CL-USER> (clog-tools:clog-builder)
140147```
141148
142- You can also open a "clog-repl" window in your browser to play
149+ You can also open a "clog-repl" browser window to play
143150from the common-lisp repl:
144151
145152```
@@ -149,10 +156,10 @@ CLOG-USER> (setf (background-color *body*) "beige")
149156CLOG-USER> (create-div *body* :content "Hello World!")
150157```
151158
152- The clog-repl URL is http://127.0.0.1:8080/repl * body* will always refer to the
153- last access of that URL.
159+ The clog-repl URL is http://127.0.0.1:8080/repl `` * body* ``` will always refer
160+ to the last access of that URL.
154161
155- To open a browser with the CLOG manual:
162+ To open a browser with the CLOG manual (or in the builder it is under Help) :
156163
157164```
158165CL-USER> (clog:open-manual)
@@ -171,7 +178,7 @@ to be a CLOGer.
171178![ Image of clog-web-containers] ( https://rabbibotton.github.io/images/clog-web-containers.png )
172179
173180
174- Here is a sample CLOG app:
181+ Here is a very simple sample CLOG app (from Tutorial 1) :
175182
176183``` lisp
177184(defpackage #:clog-user ; Setup a package for our work to exist in
@@ -225,97 +232,8 @@ Other samples of CLOG on the web:
225232- [ CLOG on iOS and Android] ( https://www.reddit.com/r/lisp/comments/tl46of/would_it_be_cool_to_run_a_clog_app_on_mobile_you/ )
226233- [ Learn CLOG Dashboard] ( https://gist.github.com/mmontone/3a5a8a57675750e99ffb7fa64f40bc39#file-clog-learn-lisp )
227234
228- Websites/apps made with CLOG
229-
230- - clogpower.com
231- - ackfock.com
232-
233- CLOG Builder Tutorials
234-
235- 1 . Chat App
236- https://www.reddit.com/r/lisp/comments/sj1tv5/clog_builder_tutorial_1_a_chat_app_from_start_to/
237- 2 . Building a Web Page
238- https://www.reddit.com/r/lisp/comments/sn8j77/clog_builder_tutorial_2_building_a_web_page/
239- 3 . Importing HTML in to Builder, Adding Pages and Hand Coding
240- https://www.reddit.com/r/lisp/comments/snvv0w/clog_builder_tutorial_3_importing_html_adding/
241- 4 . CLOS-CONTACT - Using database controls demos a contact manager app in clog.
242- https://www.reddit.com/r/lisp/comments/t61sib/clog_builder_tutorial_4_a_complete_database_app/
243- 5 . Using and Creating Custom Controls
244- https://www.reddit.com/r/lisp/comments/w2d6dr/builder_tutorial_5_using_and_creating_lisp_custom/
245-
246- CLOG Tutorials
247-
248- - [ 01-tutorial.lisp] ( tutorial/01-tutorial.lisp ) - Hello World
249- - [ 02-tutorial.lisp] ( tutorial/02-tutorial.lisp ) - Closures in CLOG
250- - [ 03-tutorial.lisp] ( tutorial/03-tutorial.lisp ) - Events fire in parallel
251- - [ 04-tutorial.lisp] ( tutorial/04-tutorial.lisp ) - The event target, reusing event handlers
252- - [ 05-tutorial.lisp] ( tutorial/05-tutorial.lisp ) - Using connection-data-item
253- - [ 06-tutorial.lisp] ( tutorial/06-tutorial.lisp ) - Tasking and events
254- - [ 07-tutorial.lisp] ( tutorial/07-tutorial.lisp ) - My first CLOG video game (and handling disconnects)
255- - [ 08-tutorial.lisp] ( tutorial/08-tutorial.lisp ) - Mice Love Containers
256- - [ 09-tutorial.lisp] ( tutorial/09-tutorial.lisp ) - Tabs, panels, and forms
257- - [ 10-tutorial.lisp] ( tutorial/10-tutorial.lisp ) - Canvas
258- - [ 11-tutorial.lisp] ( tutorial/11-tutorial.lisp ) - Attaching to existing HTML
259- - [ 12-tutorial.lisp] ( tutorial/12-tutorial.lisp ) - Running a website in CLOG (routing)
260- - [ 13-tutorial/] ( tutorial/13-tutorial ) - Flying Solo - A minimalist CLOG project
261- - [ 14-tutorial.lisp] ( tutorial/14-tutorial.lisp ) - Local (persistent) and Session client-side storage
262- - [ 15-tutorial.lisp] ( tutorial/15-tutorial.lisp ) - Multi-media
263- - [ 16-tutorial.lisp] ( tutorial/16-tutorial.lisp ) - Bootstrap 4, Loading css files and javascript
264- - [ 17-tutorial.lisp] ( tutorial/17-tutorial.lisp ) - W3.CSS layout example and Form submit methods
265- - [ 18-tutorial.lisp] ( tutorial/18-tutorial.lisp ) - Drag and Drop
266- - [ 19-tutorial.lisp] ( tutorial/19-tutorial.lisp ) - Using JavaScript components
267- - [ 20-tutorial.lisp] ( tutorial/20-tutorial.lisp ) - New CLOG plugin from JavaScript component
268- - [ 21-tutorial.lisp] ( tutorial/21-tutorial.lisp ) - New CLOG plugin in Common-Lisp
269- - [ 22-tutorial.lisp] ( tutorial/22-tutorial.lisp ) - CLOG GUI Menus and Desktop Look and Feel, and popups
270- - [ 23-tutorial.lisp] ( tutorial/23-tutorial.lisp ) - Using semaphores to wait for input
271- - [ 24-tutorial.lisp] ( tutorial/24-tutorial.lisp ) - CLOG WEB containers
272- - [ 25-tutorial.lisp] ( tutorial/25-tutorial.lisp ) - A "local" web app using CLOG WEB
273- - [ 26-tutorial.lisp] ( tutorial/26-tutorial.lisp ) - A web page and form with CLOG WEB
274- - [ 27-tutorial.lisp] ( tutorial/27-tutorial.lisp ) - Panel Box Layouts
275- - [ 28-tutorial/] ( tutorial/28-tutorial ) - CLOG Builder Hello - A minimalist CLOG Builder project
276- - [ 29-tutorial.lisp] ( tutorial/29-tutorial.lisp ) - Presentations (and jQuery) - linking lisp objects to clog objects
277- - [ 30-tutorial.lisp] ( tutorial/30-tutorial.lisp ) - Instant websites - clog-web-site
278- - [ 31-tutorial.lisp] ( tutorial/31-tutorial.lisp ) - Database and Authority based websites - clog-web-dbi and clog-auth
279- - [ 32-tutorial.lisp] ( tutorial/32-tutorial.lisp ) - Database Managed Content websites - clog-web-content
280- - [ 33-tutorial.lisp] ( tutorial/33-tutorial.lisp ) - with-clog-create - Using a declarative syntax for GUIs
281- - [ 34-tutorial.lisp] ( tutorial/34-tutorial.lisp ) - 2D WebGL example
282- - [ 35-tutorial.lisp] ( tutorial/35-tutorial.lisp ) - 3D WebGL example
283-
284- CLOG Demos
285-
286- - [ 01-demo.lisp] ( demos/01-demo.lisp ) - Sparkey the Snake Game
287- - [ 02-demo.lisp] ( demos/02-demo.lisp ) - Chat - Private instant messenger
288- - [ 03-demo.lisp] ( demos/03-demo.lisp ) - IDE - A very simple common lisp IDE
289- - [ 04-demo.lisp] ( demos/04-demo.lisp ) - CMS Website - A very simple database driven website
290-
291- CLOG Video Series - CLOG Plunger
292- - [ CLOG Plunger - Episode 1] ( https://www.youtube.com/watch?v=srme8Sh4nI4 ) - Flow - The real secret to Common Lisp productivity.
293- - [ CLOG Plunger - Episode 2] ( https://www.youtube.com/watch?v=0i1GM8Pz-G4 ) - The prequel
294- - [ CLOG Plunger - Episode 3] ( https://www.youtube.com/watch?v=z0H8uVRoPOI ) - A new menu item and a draggable Index Card
295- - [ CLOG Plunger - Episode 4] ( https://www.youtube.com/watch?v=Fzv0hZqYk5Q ) - Panels are classes
296- - [ CLOG Plunger - Episode 5] ( https://www.youtube.com/watch?v=CjBDhp89BGE ) - Selectedp and make-resizable
297- - [ CLOG Plunger - Episode 6] ( https://www.youtube.com/watch?v=wLEWNVq_zt8 ) - Adding a cork board and data URIs
298- - [ CLOG Plunger - Episode 7] ( https://www.youtube.com/watch?v=RLDhklvsj2Q ) - Add card, Delete cards, Edit Cards
299- - [ CLOG Plunger - Episode 8] ( https://www.youtube.com/watch?v=pGVaXnY8Xh8 ) - Moving data in and out of cards
300- - [ CLOG Plunger - Episode 9] ( https://www.youtube.com/watch?v=oapC2921vpo ) - File save and load
301- - [ CLOG Plunger - Episode 10] ( https://www.youtube.com/watch?v=ew_I-Mf1W0I ) - Moving the board to a component with save, load, delete of cards
302- - [ CLOG Plunger - Episode 11] ( https://www.youtube.com/watch?v=izgRAhcHCxA ) - Debugging Race Conditions
303-
304- CLOG Extras - Supplementary Video Series
305- - [ CLOG Extra 1] ( https://www.youtube.com/watch?v=HbKWnAxrwRo ) - What is Eval Form / Eval Sel / Eval All in the builder?
306- - [ CLOG Extra 2] ( https://www.youtube.com/watch?v=ffoHO2d6WDE ) - The CLOG Plugin - CLOG-Plotly
307- - [ CLOG Extra 3] ( https://www.youtube.com/watch?v=jEBDwjMnFXE ) - The CLOG Project System
308- - [ CLOG Extra 4] ( https://www.youtube.com/watch?v=CgTJMxsz3EY ) - All about panels
309-
310- Common Lisp The Language - Supplementary programming tutorials
311-
312- A series covering Common Lisp, highlighting key points and discussions on using the key reference to Common Lisp. Quick paced and intended for review further work on mastering the power of Common using the book: [ Common Lisp The Language 2nd Edition by Guy L. Steele] ( https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html )
313-
314- - [ Common Lisp The Language 2nd Edition - Episode #1 ] ( https://www.youtube.com/watch?v=lxd_xcXmPPY ) - Covers Preface, Chp 1 and 2
315- - [ Common Lisp The Language 2nd Edition - Episode #2 ] ( https://www.youtube.com/watch?v=9mvQzbr7fIQ ) - Covers Chp 3 - Scope and Extent
316- - [ Common Lisp The Language 2nd Edition - Episode #3 ] ( https://www.youtube.com/watch?v=VABqkuIwiJY ) - Covers Chp 4 - Type Specifiers
317- - [ Common Lisp The Language 2nd Edition - Episode #4 ] ( https://www.youtube.com/watch?v=rS3TVHULeUc ) - Covers Chp 5 - Program Structure
318- - [ Common Lisp The Language 2nd Edition - Episode #5 ] ( https://www.youtube.com/watch?v=4GYwSxoMo2Q ) - - Covers Chp 6 - Predicates
235+ Get started learning CLOG and the CLOG Builder with
236+ * [ Learn CLOG] ( LEARN.md )
319237
320238Tool Summary
321239
0 commit comments