teliva/tour.md

2.3 KiB

A guided tour of Teliva

Teliva is intended to be a safe environment for running shareable little text-mode Lua apps that are easy to modify. Apps aren't sandboxed yet, but I'm working on that.

This page is an in-progress guided tour through Teliva's Readme and Lua's reference documentation. We'll start out really slow and gradually accelerate.

Prerequisites

You will need the following to build Teliva:

  • A non-mobile computer running some sort of Unix variant. Teliva has been tested on Linux, OpenBSD and Mac OS X. (Other BSD variants and Windows Subsystem for Linux should require minor changes at most. Please contact me if you run into issues running Teliva on your computer.)
  • Git.
  • A working C toolchain.
  • Some fluency in typing commands at the terminal and interpreting their output.

Task 1: getting started

Read the first question in the Readme. Try running the commands to download and build Teliva. If you have any trouble at this point, don't waste any time thinking about it. Just get in touch.

Run the simplest example app:

src/teliva counter.tlv

Can you figure out what this app does, what you can do with it? There's a number on screen. Hit enter. The number increments by 1. Hit ctrl-x to exit (press ctrl and x on your keyboard at the same time).

Try editing the app by hitting ctrl-e. You see a "big picture" view of the app. Can you figure out how to modify this app to increment by 2 each time you hit enter? Don't be afraid to experiment. The menu at the bottom always shows the hotkeys available to you at any point in time. Don't worry, everything you do can be undone.

Check out some of the short sections from the Lua book that might be useful at this point: assignment; what you can do with numbers.

(Buy the Lua book to support the creators of Lua. Teliva is a tiny molehill on the mountain of awesome that is Lua.)

Once you make a change, can you figure out how to restart the app with your changes?

After you've made a change, try exiting Teliva and restarting it with the same app. Do you still see your changes?