Skip to content

Instantly share code, notes, and snippets.

View cmontella's full-sized avatar
🤖

Corey Montella cmontella

🤖
View GitHub Profile

Copperfield Overview

Copperfield was a research project that aimed to find the simplest expressive interface in Eve.

Given the time allotted for the project, I chose to find motivating examples to base my work on rather than starting from scratch. These included, in no particular order:

  1. Wikipedia and other wikis
  2. Hypercard
  3. Persistent URI schemes
  4. Urbit immutable file versioning
@cmontella
cmontella / gist:6a32ec7b88a8d1a385887d80589c612a
Created September 13, 2016 21:30
rock-paper-scissors.eve
# Rock Scissor Paper
Based on https://rosettacode.org/wiki/Rock-paper-scissors
Rules are simple:
The winner is decided by a set of rules:
* Rock beats scissors
* Scissors beat paper
* Paper beats rock
# 2048
A version of [2048](https://gabrielecirulli.github.io/2048/) written in [Eve](http://witheve.com/).
## Setup
This section sets up the records we will use to represent the game board and store the current state.
* The `#game` record will store the overall game state.
* `#axis` records represent the horizontal and vertical axis

99 Bottles of Beer

http://www.99-bottles-of-beer.net/lyrics.html

search
    n = range[from: 99, to: 0, increment: -1]
    sn = sort[given: n, direction: "down"]
  (pos1, pos2, pos3)
    = if n = 2 then ( "2 bottles", "2 bottles", "1 bottle")
# Example 1 - Crazy Mike's
## What is this?
This small app is pretty straightforward, consisting of a simple webpage with four subpages. The purpose is to demonstrate some basic webpage structure, show how a navigation bar could be implemented, how it changes the view between the different subpages, and how to inject page contents into the page view as you navigate from one subpage to another.
## Page Layout
### Containers
@cmontella
cmontella / sandlot.eve
Last active March 3, 2017 19:42
Sandlot Example App
# Example 2 - The Sandlot
## What is this?
This app demonstrates how to create a reusable component and how to inject it into the browser. This app displays a batting order for a baseball team using a `#player-card` component. This component displays information relating to each player on a baseball team -- picture, name, position, and handedness. A `#player-card` can also be configured with additional functionality using optional tags. The app also shows some of the ways `sort` can be used, and how to choose specific records out of a list of records.
## Page Layout
### Containers
# Example 3 - Jurassic Park Terminal
## What is this?
This app demonstrates the use of a custom form component in a basic log in application. The app contains three views: a login form, a registration form, and a user profile form that displays the information entered during registration. These forms are built using a custom form component, which is defined at the end of the program. The form component allows for the concise definition of forms by defining common behavior like form submission and resetting.
## Application Set Up
The app contains the current page, as well as the current user. Initially, though, there is no user, so we just need to specify the current page.
# New New York Voting Registration
## What is this?
This example demonstrates how to capture input from forms and create and explore records from that. It should also provide a look at some of the particular complications and pitfalls in dealing with forms. In the future it'll most likely be useful to address a more complicated version of forms, but for now this is a good starting point to develop an intuition of the concepts. If anything seems oversimplified or susceptible to edge cases and user error, it's most likely from the effort to avoid bugs and overly complicated layouts.
## Page Layout
### Containers
# Example 5 - Battle School
## What is this?
This example demonstrates saving state across different pages, and advanced sorting using the `range[]` function. On the "control" page, you can set a schedule of army matchups for the day. Click on an army and then click on the slot you want to place that army. This matchup is saved, and displayed on the "broadcast" page.
## Page Layout
### Containers
# Food Truck App
```css
{for a good time, leave this here}
```
## Page Template
### Starting Page
Set the starting target window to the home page.