Agendaless Blog: substanced

PyTennessee 2014 Talks

Chris and I have given our talks at PyTennesse 2014. Mine was a two-hour tutorial, "Pyramid Development in a Nutshell", which I cut down from Paul's Quick Pyramid Tutorial. (See my slides here; examples are on github)

Chris' talk was his "Substance D: Build Civilized Web Applications" talk. See a video of the same talk from the RuPy 2013 conference).

posted: 2014-02-23 20:41  by Tres Seaver   |   permalink

SubstanceD Screencast #6: Adding Editing Objects inside a Folder

This screencast is the sixth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 5 leaves off.

This episode covers adding objects to a folder, and editing those objects' properties.

posted: 2013-12-20 22:30  by Tres Seaver   |   permalink

SubstanceD Screencast #5: Editing Object Properties / Undo

This screencast is the fifth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 4 leaves off.

This episode covers updating object properties, and undoing those changes..

posted: 2013-12-20 22:00  by Tres Seaver   |   permalink

SubstanceD Screencast #4: SubstanceD Managment Interface Overview

This screencast is the fourth in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 3 leaves off.

This episode provides a quick tour of the SubstanceD management interface (SDI), including navigating through the "tree" of objects in the database.

posted: 2013-12-20 21:30  by Tres Seaver   |   permalink

SubstanceD Screencast #3: Starting the Server, Viewing the Admin Interface

This screencast is the third in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 2 leaves off.

This episode demonstrates starting the WSGI server in development mode, viewing the default splash page in the browser, and logging into the the SubstanceD admin interface.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. Start the server using the development configuration:
    $ ../../bin/pserve development.ini
    
  2. Grep the generated, random password from the config file:
    $ cd src/myintranet
    $ grep passwword development.ini
    
  3. View the default splash page at http://localhost:6543/.
  4. Log into the SubstanceD management interface at: http://localhost:6543/manage.

posted: 2013-12-13 23:00  by Tres Seaver   |   permalink

SubstanceD Screencast #2: Generating the Initial 'myintranet' Project

This screencast is the second in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application. It starts from where Episode 1 leaves off.

This episode demonstrates generating the initial version of the myintranet project, checking it into Git, and installing it and its added dependencies into the virtual environment.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. List the templates available for generating a project:
    $ bin/pcreate --list-templates
    
  2. Generate the myintranet project:
    $ cd src
    $ ../bin/pcreate --template=substanced myintranet
    $ cd myintranet
    
  3. Check the initially generated code into a local Git repository:
    $ git init .
    $ cat > .gitignore
    *.pyc
    __pycache__
    *.egg-info
    *.fs*
    blobs
    tmp
    ^D
    $ git add .
    $ git commit -m "Initially-generated project."
    
  4. Install the project and its extra dependencies into the environment:
    $ ../../bin/python setup.py develop
    
  5. Verify that myintranet is importable from our checkout:
    $ cd ../..
    $ bin/python
    ...
    >>> import myintranet
    >>> print(myintranet.__file__)
    

posted: 2013-12-13 22:00  by Tres Seaver   |   permalink

SubstanceD Screencast #1: Setting Up the Environment

This screencast is the first in a series of short tutorials on installing SubstanceD and using it to build a simple intranet application.

This episode demonstrates creating a Python virtual environment and installing the SubstanceD software into it.

Annotated Commands

For those who'd like to read rather than listen, this is the set of commands outlined:

  1. Create a Python 3.3 virtual environment:
    $ /opt/Python-3.3.3/bin/pyvenv intranet
    $ cd intranet
    
  2. Install and update setuptools:
    $ wget https://bitbucket.org/pypa/setuptools/downloads/ez_setup.py
    $ bin/python3 ez_setup.py
    $ bin/easy_install -U setuptools
    
  3. Check out SubstanceD from Github:
    $ mkdir src
    $ cd src
    $ git clone git@github.com:Pylons/substanced
    $ cd substanced
    
  4. Run SubstanceD's setup.py to install it in the environment:
    $ ../../bin/python3 setup.py develop
    
    Note that this step also installs SubstanceD's dependencies.
  5. Verify that SubstanceD is importable from our checkout:
    $ cd ../..
    $ bin/python
    ...
    >>> import substanced
    >>> print(substanced.__file__)
    

posted: 2013-12-13 22:00  by Tres Seaver   |   permalink

SubstanceD Screencasts

We're starting a series of short (3 - 5 minute) screencasts, demonstrating the SubstanceD application development platform. The series is built around the tasks needed to set up a simple intranet site.

For an overview of SubstanceD as a development platform, start with the talk given by Chris McDonough at the RuPy 2013 confernce: "SubstanceD: Building Civilized Web Applications".

posted: 2013-12-13 21:30  by Tres Seaver   |   permalink

Rupy 2013 Python Sprint

Recently we held a 3-day-long Python sprint in Budapest before the RuPy conference. Here's what got done.

Substance D (web application server)

Participating: Chris McDonough, Balázs Reé, Godefroid Chapelle

  • Allow management views to be categorized.
  • Allow deletion of objects that cannot successfully be unpickled.
  • Add an API for get_editable_adapter.
  • Allow schemas that inherit from substanced.schema.Schema to be used successfully in non-FormView code (no longer necessary to call .bind() on these to run things through deserialization).
  • Grid error messages caused by connectivity problems now disappear if the client notices that the server is back up via SSE.
  • Attempted to figure out how to more better show "global" views (like the auditing tab, the database tab, and the undo tab).
  • Various small UI improvements.

Deform (form library)

Participating: Domen Kožar, Balázs Reé, Chris McDonough

  • Experimented with using angular.js for client-side validation (fairly successfully).
  • Refactored and improved resource registry.

Pyramid (web framework)

Participating: Fabian Neumann

  • Audit docs for places we could better use .. deprecated:: and other Sphinx/RST directives.

posted: 2013-10-11 23:03  by Chris McDonough   |   permalink

Mozilla Persona and Substance D

We're running this agendaless.com website on Substance D, the content framework for Pyramid that Chris came up with. We're dogfooding a lot of the good work done by Substance D folks, plus related work like Domen's Deform2.

It's also a testing ground for some of our own stuff. Tres has it acting as a WebDAV server, which is how he does his authoring. He did this as a Substance D add-on, which helps prove how well Pyramid's add-on system functions.

We were talking about logins and thinking about re-using the Twitter-OAuth-based login I did on my Substance D site for a local sports league. Instead, Tres looked at Mozilla Persona and whipped up support for that. I can now use a Google account and get transparent login when authoring blog posts here.

It's worked, well, just about perfectly.

posted: 2013-10-11 16:12  by Paul Everitt   |   permalink

Gearing up for WSGI War^WWrestle 2013

Chris McDonough, Chris Rossi and I are competing in the 2013 WSGI Wrestle contest (originally "WSGI War", but changed to protect some queasy stomachs) this weekend. We will be building our application using Pyramid and SubstanceD.

https://agendaless.com/images/pyramid_tshirt_mummy-circle.jpeg

Pyramid is Definitely Not Built by Aliens

Watch the Definitely Not Built By Aliens team in real time as we bash together an app in 72 hours!

posted: 2013-09-25 21:35  by Tres Seaver   |   permalink

Globetrotting in October, 2013

Some upcoming travel for Agendaless:

Python Brazil / Plone Conference 2013

RuPy.eu 2013

  • Chris is travelling to Budapest next week to serve as the main sprint leater at RuPy.eu 2013, 2013-10-08 - 2013-10-10.
  • Chris will speak about Pyramid at the RuPy coference on Friday, 2013-10-11.

PyCon IE 2013

  • Chris then flies from Budapest to Dublin to speak at PyCon Ireland 2013 on SubstanceD <http://substanced.net> on Sunday, 2013-10-13.
  • Chris will also be leading the Pyramid sub-sprint in Dublin following the conference, 2013-10-14 - 2013-10-15.

posted: 2013-09-25 21:29   |   permalink