Skip to content

Latest commit

 

History

History
769 lines (627 loc) · 25.8 KB

bricklayer.md

File metadata and controls

769 lines (627 loc) · 25.8 KB

Subject: re: {presentation subject} Presentation:

Why I, as an Omaha Python community member, spent the time to put this together:

  • Parallels with other projects
    • westurner/nbmeta#1
      • Generate, Display, and Embed Structured Data as {RDFa, JSONLD, } within Jupyter notebooks (by creating objects with metadata and a _repr_html_(),)
      • [o] Create Python objects w/ _repr_html_()
      • Validate meta schema {schema.org, schema.jupyter.org, dcterms}
      • Create Jupyter Extension(s)
        • grep out Microdata, RDFa, JSONLD blocks
        • Server Extension:
          • RESTful Tornado handlers
          • jupyter extension template / examples:
            • TODO
        • Client Extension
          • [o] ipywidgets instead/to start with
          • js
          • show/view/collect {Metadata}
          • validate {metadata}
  • https://youtu.be/qWSovC2-yM4
  • +1 for Open Source
  • What is SML?
  • I like LEGOS, too.
  • jupyter notebook + {lego models} + { leocad, blender,} would be really cool.

Bricklayer

  • | Homepage: https://bricklayer.org/

  • "Bricklayer: An Authentic Introduction to the Functional Programming Language SML" https://arxiv.org/abs/1412.4881

    Bricklayer is an API, written in SML, that provides a set of abstractions for creating LEGO® artifacts which can be viewed using LEGO Digital Designer.

    The goal of Bricklayer is to create a problem space (i.e., a set of LEGO artifacts) that is accessible and engaging to programmers (especially novice programmers) while providing an authentic introduction to the functional programming language SML.

    The long term goal of Bricklayer is to provide a comprehensive and flexible set of modules that enable instruction to be tailored to the needs of a wide range of students. In particular, we hope to see Bricklayer used at all age levels where coding is taught (e.g., 8 years on up, including introductory university courses).

Goals

Teach coding, pattern based reasoning, spatial reasoning (3D), rotation

Products

Content

Website

Code

bricklayer

  • | Src:
  • | Download:
  • SML/NJS (SML: Standard ML)
  • Input: name.bl : A Bricklayer program
  • Output: name.ldr : LDraw

virtruvia

.

Wx IDE

  • Wx IDE for SML with bindings for {TODO: slide}

bricklayer-lite

Activities

Configuration

Installation

Upgrades

Support

Help Desk

Maintainers respond to help desk requests

Q&A

Q&A: Community responds with answers, comments, voting

    TODO: Docker containers
      osqa/askbot
      New thing TODO

Social Web

Hashtags

 #bricklayer
 #virtruvia
 #bricklayerlite
 #bl

Saved Searches

Sites

  • StackOverflow
  • Quora
  • Twitter
  • Reddit
  • GetSatisfaction >> GitHub Issues + Labels
  • [ helpdesk/knowledgebase/wiki/issue-tracking system ]

Instruction

TODO

Grading

Techniques

Data Driven

Data Schema

Knowledge capture

  • Helpdesk
    • Issues
    • Knowledgebase
  • [local] Team Q&A
    • #bricklayer
    • #virtruvia

Reproducible

Automation

  • Continuous Integration (tests)
  • Automated grading

Collaboration Techniques

Tools

  • Ideas and Suggestions

K12CS Framework

.

K12+ Computers

Windows

OSX

ChromeOS

SaaS

  • Software-as-a-Service
  • Maintenance: SaaS is easier to maintain than keeping many installations of an app upgraded.
  • Availability:
    • A SaaS service is unavailable when the ISP connection is down.
    • (no internet, off-premise SaaS): unavailable
    • (no internet, on-premise SaaS): available
    • (no internet, desktop app): available (disconnected; updates, upgrades)

Configuration Management

docker-compose.yml

.

kompose

minikube

kubectl config use-context minikube
kubectl get pods --context=minikube
minikube ssh -h
minikube dashboard  # Kubernetes dashboard

[The Minikube VM] is configured to persist files stored under the following host directories:

/data
/var/lib/localkube
/var/lib/docker
/tmp/hostpath_pv

kubespawner

SML

SML/NJ

SML Basis Library

MLKit

SMLtoJs

BL

  • BrickLayer syntax
  • | FileExt: .bl

GUI Editor Libraries

Scintilla

Wx

Gtk

Qt

QScintilla2

Spyder

Spyder may also be used as a PyQt5/PyQt4 extension library (module spyder). For example, the Python interactive shell widget used in Spyder may be embedded in your own PyQt5/PyQt4 application.

CodeMirror

Ace

3D / CAD

LXFML

LDR

LDraw

LDraw™ is an open standard for LEGO CAD programs that allow the user to create virtual LEGO models and scenes. You can use it to document models you have physically built, create building instructions just like LEGO, render 3D photo realistic images of your virtual models and even make animations.

LEGO Digital Designer

LeoCAD

Blender

LDR-Importer

SciPy Stack

  • TODO:

SymPy

  • sympy.Rational

sage

sage calculus

TODO: sage calc tutorial

sage geometry

Sage geometry

sage plot3d

sage plot3d three.js

Mayavi

Jupyter

Jupyter Notebook

Jupyter Kernels

Jupyter Messaging Specification

ipykernel

echo_kernel

jupyter_kernel_test

jupyter_kernel_test is a tool for testing Jupyter kernels. It tests kernels for successful code execution and conformance with the Jupyter Messaging Protocol (currently 5.0).

IOcaml

SML Jupyter Kernel

Bricklayer Jupyter Extension

  • Create a Bricklayer Jupyter Extension

  • BL (Bricklayer) syntax

  • {IPython, Jupyter, Nteract} all use the IPython object display protocol:

    • Jupyter nb calls IPython.display.display(_) with each .ipynb cell

something like:

if hasattr(obj, '_repr_html_'):
    _output = obj._repr_html_()
elif hasattr(obj, '_repr_json_'):
    _output = obj._repr_json_()
    # ...
else:
    _output = repr(obj)  # obj.__repr__()
IPython.display.display(_output)

nbgrader

pytest

pytest-mpl

JupyterHub

jupyter/docker-stacks

OpenAI

Gym

Scripts

rec

  • Create a docker container w/
    • bricklayer
    • ldraw
    • wine + lego digital designer
    • everything else
  • Create a SML Jupyter Kernel
  • Create a Bricklayer Jupyter Extension
  • Develop a docker, kubernetes, auth configuration for jupyter/nbgrader, jupyter/kubespawner, kubernetes/minikube