I emphasized ASDF in this particular announcement because it's the topic here, and ASDF is an important part of Seed's stack. The most ASDF-relevant module is this one:
https://github.com/phantomics/seed/blob/master/seed.generate/generate.lisp The seed.generate package is the core of Seed, and its sprout class wraps ASDF systems. The describe-as-asdf-system method generates a system definition from a sprout. This method parses the I/O specification of a Seed system to generate the ASDF system. You can see how the I/O specification works in these files. https://github.com/phantomics/seed/blob/master/demo-drawing/demo-drawing.seed https://github.com/phantomics/seed/blob/master/demo-sheet/demo-sheet.seed They are my extension to the ASDF model for defining systems. Their :system property is ported directly to the ASDF definition, while the content of the :branches specification also contributes. I built the slides with the OSX application Keynote. The graphical elements were made in different ways. Some are screenshots of the Seed interface and experimental Seed extensions, some of which I scaled up or changed in other ways through the browser console, like by removing text content to emphasize the layout. Designs like the ones on pages 1 and 15 are SVG graphics done in Inkscape. Andrew On 11/01/2017 03:19 PM, Faré wrote: > Looks cool and interesting, and the code looks clean, too (though > maybe you should read and take to heart my "asdf best practices" > document currently at > https://github.com/fare/asdf/blob/master/doc/best_practices.md ). > > I'm not sure how ASDF fits in it and that it deserves such prominent > part in your annoucement (unless you swap out that part when > announcing on other venues, which you should if you didn't yet). Where > are your ASDF extensions defined? > > However I don't have time to look in detail right now. Still, what > technology did you use to produce those slides? They are neat. > > —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org > Government is a disease masquerading as its own cure. > — Robert LeFevre (1911-1986) > > > On Wed, Nov 1, 2017 at 5:55 PM, Andrew Sengul <m...@imagegardenphoto.com> > wrote: >> Hi everyone, >> >> I've created a new software environment based on Common Lisp and it'd be >> great to get your feedback. Called Seed, this system can be used to >> create Lisp programs and interact with them in many ways. It's a bit >> like a web-based IDE, but unlike most IDEs, it uses a visual programming >> language as its foundation. >> >> Seed displays Lisp code in the form of an interactive tree grid. It's >> possible to create customized interface elements within the tree grid; >> these elements are converted into Lisp code for compilation. A simple >> example is a color picker for use choosing colors inside a HTML >> template. Drop-downs and toggle switches are also easy to insert, and >> these elements can be composited to create more sophisticated >> interfaces. And unlike Emacs and other editors that are designed around >> text files, Seed is designed around editing ASDF systems. >> >> When using Seed, the top-level interactive elements are called "systems" >> - contrast to "buffers" in Emacs. Each Seed system is an ASDF system >> with particular extensions. Specifically, Seed systems all have a .seed >> file in their source directory that defines their behavior within the >> scope of the Seed environment. >> >> Check out this video to see Seed in action and a brief tutorial: >> >> https://vimeo.com/237947324 >> >> This is a slide deck that goes into further detail: >> >> https://www.dropbox.com/s/ssjd05bmrfnzg5e/SeedPresentationTechnical.pdf?dl=0 >> >> I don't know if Seed is the first general-purpose visual programming >> environment, but I'm sure its paradigm is among the most flexible. It is >> implemented as a Web application, with each atom and form within a Lisp >> program represented by a module manifested using the React framework for >> JavaScript. Because Seed's interface is implemented in React, the entire >> ecosystem of React components can be brought to bear when building >> custom software interfaces. >> >> Ready to try Seed out yourself? It's free software and the repo is here: >> >> https://github.com/phantomics/seed >> >> The installation instructions start here: >> >> https://github.com/phantomics/seed#the-first-step-installing-and-running-seed >> >> Read the usage tutorial here: >> >> https://github.com/phantomics/seed/wiki/Introductory-Tutorial >> >> So far, only SBCL has been tested. This is alpha software and you will >> encounter bugs aplenty. >> >> I envision Seed as something that could one day encompass most of the >> desktop productivity functions that people now use office apps for. The >> data-driven nature of the interface will make it easy to mash up and >> modify these tools to design custom workflows.With Lisp's homoiconicity >> it may even be possible to develop machine learning algorithms to tailor >> Seed systems to the jobs they're intended to do. Emacs has always been >> seen as the flagship of Lisp-based environments, but because of its >> byzantine interface and its tight coupling to the text buffer as the >> main interactive unit, I can't see a future where Emacs is usable by >> regular people for desktop productivity. I think Seed may be able to get >> there. >> >> Let me know what you think of Seed, particularly as an ASDF use case. Best, >> >> Andrew Sengul >> >>