All Projects → articulate-common-lisp → Articulate Common Lisp.github.io

articulate-common-lisp / Articulate Common Lisp.github.io

docs/specs for a tutorial site for a Common Lisp environment

Programming Languages

lisp
113 projects

Projects that are alternatives of or similar to Articulate Common Lisp.github.io

Aruco Markers
Working examples/tutorial for detection and pose estimation of ArUco markers with C++
Stars: ✭ 112 (+24.44%)
Mutual labels:  tutorial, examples
Wasm By Example
Wasm By Example is a website with a set of hands-on introduction examples and tutorials for WebAssembly (Wasm)
Stars: ✭ 226 (+151.11%)
Mutual labels:  tutorial, examples
Godot tutorials
Code and examples for KidsCanCode Godot Tutorials.
Stars: ✭ 119 (+32.22%)
Mutual labels:  tutorial, examples
Golang For Nodejs Developers
Examples of Golang compared to Node.js for learning
Stars: ✭ 2,698 (+2897.78%)
Mutual labels:  tutorial, examples
Learning Rust
Rust 学习之路 > Rust Programming Tutorial, include articles, interview, example, problems.
Stars: ✭ 376 (+317.78%)
Mutual labels:  tutorial, examples
Tensorflow Examples
TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2)
Stars: ✭ 41,480 (+45988.89%)
Mutual labels:  tutorial, examples
Pharo Wiki
Wiki related to the Pharo programming language and environment.
Stars: ✭ 161 (+78.89%)
Mutual labels:  tutorial, examples
Jni By Examples
🎇Fun Java JNI By Examples - with CMake and C++ (or C, of course!) ‼️ Accepting PRs
Stars: ✭ 99 (+10%)
Mutual labels:  tutorial, examples
Vaporschool
Learn how to build vapor applications from rookie to champion in a constructive way!
Stars: ✭ 259 (+187.78%)
Mutual labels:  tutorial, examples
Regex For Regular Folk
🔍💪 Regular Expressions for Regular Folk — A visual, example-based introduction to RegEx [BETA]
Stars: ✭ 242 (+168.89%)
Mutual labels:  tutorial, examples
Wordpress Plugin Boilerplate Tutorial
Tutorials and Examples for WordPress Plugin Boilerplate, a foundation for WordPress Plugin Development.
Stars: ✭ 232 (+157.78%)
Mutual labels:  tutorial, examples
Ethereum Development With Go Book
📖 A little book on Ethereum Development with Go (golang)
Stars: ✭ 754 (+737.78%)
Mutual labels:  tutorial, examples
Rxjava2 Android Samples
RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android
Stars: ✭ 4,950 (+5400%)
Mutual labels:  tutorial, examples
Haxejs
Documentation about using JavaScript with Haxe
Stars: ✭ 25 (-72.22%)
Mutual labels:  tutorial, examples
Fisco Bcos Doc
Document of FISCO BCOS
Stars: ✭ 86 (-4.44%)
Mutual labels:  tutorial
Godot Demos
Godot demos and tutorials
Stars: ✭ 88 (-2.22%)
Mutual labels:  tutorial
100 Plus Python Programming Exercises Extended
100+ python programming exercise problem discussed ,explained and solved in different ways
Stars: ✭ 1,250 (+1288.89%)
Mutual labels:  tutorial
Phpgrid Custom Crm
Custom CRM Demo - Learn to build yourself a custom CRM in PHP and MySQL, which a sales team can use to track customers through the entire sales cycle.
Stars: ✭ 85 (-5.56%)
Mutual labels:  tutorial
Amr Tutorial
Abstract Meaning Representation (AMR) tutorial slides
Stars: ✭ 89 (-1.11%)
Mutual labels:  tutorial
K3s Gitlab
k3s + Gitlab install notes
Stars: ✭ 89 (-1.11%)
Mutual labels:  tutorial
  • articulate-common-lisp

docs/specs for a tutorial/introduction site for a Common Lisp environment

** Dear Reader,

One of the key problems in onboarding developers to use modern Common Lisp is the vertical wall of difficulty. Things that are routinely problematic:

  • emacs use. Most people don't use emacs.

  • Library creation. Putting together ASDF libraries and using them is a fairly horrid experience the first time.

  • Selection of Lisp system to use, along with an up-to-date discussion of pros and cons.

  • Putting together serious projects is not commonly discussed.

This repository is the source code to build a Common Lisp site dedicated to handling these problems. My goal is to put together an introduction/tutorial for practicing professionals and hobbyists from other languages. People who want to get started with Lisp beyond just typing into a REPL. Right now, it feels like this information is less disseminated and much less centralized than it otherwise might be. It's not intended to be a HOWTO for Common Lisp. That's been covered quite well. But it is intended to be a HOWTO on how to put together a Lisp environment.

Anyway, I'd like to collaborate with other people to build a remarkably fine Lisp help site. Contributions are both accepted and welcome. It's a wholly static site at this point in time - I don't see a need for articulate-lisp.com to have a dynamic backend. Perhaps/probably one of the code examples will be a webapp.

Happy Hacking,

Paul Nathan

P.S.: feel free to contact me for anything you like.

** Making Contributions.

Please send in pull requests or issues!

Each pull request is vetted to correctly compile in Jekyll; this is then logged on Github and has to pass for a pull request to be mergable to master.

We use [[https://github.com/orthecreedence/highlight-lisp][highlight-lisp]] for syntax highlighting. Just add a =lisp= class to your code samples.

** Notes regarding build process.

Articulate Common Lisp is super-heavy on Docker (http://docker.com/). Docker is used for doing builds, as well as the vehicle of deployment. This is because we think it's simpler than having to install all sorts of other dependencies and keeping them up to date.

This is a Jekyll site; therefore existing build scripts use Dockerized Jekyll to do the build.

If you run this...

 #+BEGIN_EXAMPLE
 ./livetest.sh
 #+END_EXAMPLE

You will have a hot-rebuilding Jekyll server running on http://localhost:4000. Hit Ctrl-C to stop it. This is very useful for contributing content!

If you run this...

#+BEGIN_EXAMPLE ./build.sh #+END_EXAMPLE

You will then have the Jekyll compile occur, then the Docker instance build.

This is the process used to deploy new versions onto Docker Hub; these are then downloaded onto the VPS and started up.

** License information & legalities.

My opinion on articulate-lisp.com's licensing is this: it should be easy to grab bits and pieces and easy to fork if the author disappears. After some careful reading, I selected...

  • GPL3 for the documentation itself.

  • Snippets and other samples embedded in the documentation should be considered public domain a.k.a CC0.

  • The full-size examples in examples/src/ are more substantial and, are licensed as AGPL3. This is denoted in their comment header.

I do not believe that these terms are onerous and I have sought to structure them to permit both free use of small things and continuity of information.

AGPL3 is a very strict copyleft license and I feel obligated to justify its choice.

Simply put, I believe that software developers have a moral obligation to allow their users to repair the software that they provide. This facility is usual for physical items: we can fix our bikes, chairs, cars, etc. I believe that we ought to let our users fix the software they use, or hire other people to make that fix. I also have profound issues with the software patent industry. AGPL3 is the best license I know of to ensure that what I create gives users these capabilities and will not be patented. As these are ridiculously small examples, I am fairly positive that any serious work will not use them. So it should not be onerous on you.

If your corporate lawyers refuse to let example AGPL3 code exist in your development environment, please write in and - for my part - I will make a good faith effort to negotiate with you for you a less strict license for your company.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].