Giter Club home page Giter Club logo

pony-workshop's Introduction

Pony Workshop

This is the repo for the Pony workshop. There are numbered subdirectories under steps, each of which contains a small program that demonstrates some Pony ideas.

If you are presenting this workshop, please see the README for presenters.

Preparation

Pony is a fast actor-based programming language that guarantees that programs will not have data races. This workshop will teach participants about some of Pony's core ideas and patterns by having them write a series of small programs that culminate in a simple chat server. Topics covered will include Pony's actor system, reference capabilities, and working with the compiler. Attendees should bring a laptop with the following software installed: the Pony compiler via ponyup, and a telnet client. They should also clone the workshop git repository.

Useful Materials

As you work through the parts of this workshop it may be useful to refer to the following sources of information:

pony-workshop's People

Contributors

aozgaa avatar aturley avatar i-ky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pony-workshop's Issues

provide more details about errors

Make it clear that:

  • must either catch an error or propagate it out of a function
  • errors cannot escape behaviors

These two points came up when giving the workshop, I'm not sure they're clear from the READMEs.

illustrate methods (functions vs behaviors) better

Talk more about

  • calling (calling a function and a behavior look the same)
  • what actually happens (functions use the stack and happen synchronously, behaviors are initiated by putting a message on a queue and the actor gets scheduled and they happen asynchronously)

Should there be a step after step 02 that makes this more clear? Change one of the steps?

link to class documentation

The README files should have links to the online documentation for the classes that are used in the example code. This will make it easier for users to follow along with what is going on.

Workshop in a web browser

There are services offering cloud based development environments, e.g.:

I have some positive experience with the latter one, I can help you configuring it for this repo.

As a result workshop attendees will need to bring laptops with just web browser installed, no need to install ponyc themselves.

Add documentation for the person running the workshop

Document how the workshop should be run so that someone else can do it and not have to make the same mistakes I did.

Include information about preparation (print out copies of the cheat sheet, etc), the order and pacing of parts, important points to emphasize, room requirements to communicate to the hosts, etc.

Consider me pitched

Love the idea of a PITCHME page... never seen that before.
The sections in it are very well written.

Have you considered rearranging them so that “How a Pony Program Works” section is just after “Why Pony”? Someone new to Pony but aware of actors and messages may feel more grounded having that knowledge right away, prior to introducing the rest of the concepts.

Add suggestions for things to try at the end of each step

There should be a section at the end of the README for each step that suggests things for workshop participants to try.

For example, in a recent workshop someone asked what would happen if instead of String val we used String box in step 02 (since they're both read-only). So I changed the code, we saw the error, and I explained what happened.

This would be useful because controlled "breaking" of the code can be used to reenforce the ideas that are covered in the step.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.