You have 4 summaries left

Syntax - Tasty Web Development Treats

Supper Club × val.town with Steve Krouse

Fri Jul 14 2023
Social CodingWeb DevelopmentProgramming LanguagesTeaching Kids to CodeJavaScript

Description

Val.Town is a social website for writing and running code, combining the features of GitHub and AWS Lambda. Val allows users to run code easily and draws inspiration from Twitter and spreadsheets. Valtown aims to combine the benefits of a query language like Excel with the flexibility of coding. It provides features like emailing, scheduling cron jobs, and APIs for evaluating code. The development stack includes Express endpoint, Hano.js package, CodeMirror6, Remix React, and Dino platform. Valtown is used for various use cases, including IoT monitoring and plug-in systems. The podcast also discusses teaching kids to code, the next step in programming progression, and choosing the first language to learn.

Insights

Val.Town combines the features of GitHub and AWS Lambda

Val.Town serves as a social website for writing and running code, providing an IDE and runtime environment. It aims to combine the features of GitHub, allowing users to create 'vowels' (functions triggered by API endpoints), and AWS Lambda, providing a serverless computing platform.

Val draws inspiration from Twitter and spreadsheets

Val is heavily inspired by Twitter, aiming to be a web primitive like tweets or GitHub repos. It also takes inspiration from spreadsheets, which are like IDEs for programming. Val's goal is to create a social coding platform that feels truly social.

Valtown combines query language benefits with coding flexibility

Valtown aims to combine the benefits of a query language like Excel with the flexibility of a coding project. Similar to editing one cell in Excel without breaking the whole system, Val is designed to work in a similar way. It provides features like emailing, scheduling cron jobs, and APIs for evaluating code and creating Express handlers.

Valtown's development stack includes Express endpoint and Hano.js package

Valtown uses Express endpoint instead of web primitives like Winter CG and fetch APIs. It also utilizes the Hano.js package for server-related tasks, which adds handy helper functions on top of web responses. The front-end editor is built with CodeMirror6, providing custom auto-complete helpers. The entire UI is developed using Remix React.

Valtown is used for various use cases, including IoT monitoring and plug-in systems

Valtown is not limited to hobby projects and one-off scripts. It aims to scale and become a tool for real use cases. Some popular use cases include IoT monitoring, where users can utilize Val to monitor air quality with home sensors. Valatine, a feature of Valtown, is useful for plug-in systems like Raycast and widget plugins on iPhones.

Teaching kids to code starts with Scratch and transitions to JavaScript

The podcast discusses the importance of teaching kids coding for soft skills like math and debugging. It recommends starting with Scratch, a block-based language from MIT, and transitioning to JavaScript using frameworks like WOOFJS. Valton is presented as the next step for easy snippet creation.

The next step in programming progression is Valton

Valton is seen as the next step in programming progression, providing a clear path for building projects. The podcast recommends learning about programming history and dev tools through resources like Brett Victor's website and essays, the Future of Coding podcast and community, Seymour Papert's books, and 'Dream Machines' by Strike Press.

JavaScript is recommended as the first language to learn

While Python is sometimes seen as a childish language, JavaScript is recommended as the first language to learn. Code Academy initially faced pushback for focusing solely on JavaScript but it turned out well. The podcast also mentions Repplet, a sponsor of the podcast that spun out of Code Academy.

Valtown encourages listeners to sign up and try it out

The podcast ends with a shameless plug for Valtown, encouraging listeners to sign up and try it out. Val is presented as a platform that allows users to run code easily on the internet.

Chapters

  1. Val.Town: A Social Website for Code
  2. Val: A Web Primitive Inspired by Twitter
  3. Valtown: Combining Query Language with Coding
  4. Console.email and Variable Persistence in Valtown
  5. Express Endpoint and Development Stack in Valtown
  6. Database, Pricing, and Use Cases in Valtown
  7. Teaching Kids to Code and Programming History
  8. The Next Step in Programming Progression
  9. Choosing the First Language to Learn
Summary
Transcript

Val.Town: A Social Website for Code

00:00 - 07:24

  • Val.Town is a social website to write and run code, serving as an IDE and runtime.
  • It can be used for demos, hobby projects, and one-off scripts or cron jobs.
  • Val.Town aims to be like a combination of GitHub and AWS Lambda.
  • Currently, it is not suitable for true production workflows due to scalability and reliability limitations.
  • Users can create 'vowels', which are functions that run when triggered by an API endpoint.
  • Vowels can be easily created without the need for build processes or uploading files.
  • Values can be shared between vowels, allowing for interaction between them.
  • Public vowels created by other users can also be utilized.

Val: A Web Primitive Inspired by Twitter

07:00 - 14:33

  • Val allows users to run code on the internet quickly and easily
  • Val is heavily inspired by Twitter, aiming to be a web primitive like tweets or GitHub repos
  • Val's inspiration also comes from three years of research into programming languages, particularly the Unison programming language
  • Unison's core idea is that names are just metadata and code is represented by an ID
  • Valentine foists futuristic ideas onto an existing language instead of building a new one
  • Val feels like a social coding platform, unlike GitHub which never felt truly social
  • The bar to entry for Val is low, with no need for NPM publish or safety precautions
  • The founder initially explored low code/no code options but found coding to be a great platform
  • Spreadsheets were a big inspiration for Val, as they are like IDEs for programming

Valtown: Combining Query Language with Coding

14:14 - 20:55

  • Valtown aims to combine the benefits of a query language like Excel with the flexibility of a coding project.
  • Editing one cell in Excel doesn't break the whole system, and Val is designed to work similarly.
  • Currently, Vals are either values or immediately executed function expressions (iffy), but there are plans to make them modules in the future.
  • Valtown provides inspiration demos to help users explore and understand its capabilities.
  • The platform comes with features like emailing, scheduling cron jobs, and APIs for evaluating code and creating Express handlers.
  • Importing other people's Vals is possible using "@" tags, but there are plans to move towards more web standard imports.
  • Console.email makes it easy to send emails without dealing with complex setup processes.
  • Measures are taken to prevent abuse of email functionality and mining Bitcoin in Valtown.

Console.email and Variable Persistence in Valtown

20:30 - 27:50

  • Console.email currently only allows users to email themselves to prevent abuse.
  • Console.sms is being considered as an addition, but phone number verification would be required.
  • There is a debate about whether Valtown should provide built-in API functionality or integrate with existing services like upstash and neon.
  • Valtown's variable persistence feature is useful for quick scripts, but there are limitations on what can be persisted.
  • Valtown aims to scale and become a tool for real use cases, not just hobbyists.
  • UI development is not the primary focus of Valtown, but prototypes are being made to improve quality of life for developers.
  • Supporting JSX in Valtown raises questions about web standards and reactive functionality.
  • The current express endpoint in Valtown is basic and bare bones, with room for improvement.

Express Endpoint and Development Stack in Valtown

27:22 - 34:31

  • Express endpoint is being used instead of web primitives like Winter CG and fetch APIs
  • Web Standard Response API prototype is almost done
  • Hano.js package is used for server stuff, which adds handy helper functions on top of web responses
  • CodeMirror6 is used for the front-end editor with custom auto-complete helpers
  • Remix React is the JavaScript framework used for the entire UI
  • API server is a Node Express server, while evaluation server runs on Dino platform for security reasons
  • Valtown code runs on Dino as well, but Remix doesn't work on Dino
  • The stack (frontend, API server, and Dino evaluation servers) runs on Render platform
  • Val text is stored in the database and passed to eval function

Database, Pricing, and Use Cases in Valtown

34:03 - 41:42

  • Front-end server on Vercel is not required for server-side rendering
  • Database used is Render Postgres
  • Pricing for paid plans is based on wall time and CPU time
  • Wall time includes long running API requests, while CPU time is the actual computation time
  • Aspirational limits are in place for free usage, but some features will require payment in the future
  • IoT usage has been high, with one user using Val to monitor air quality with home sensors
  • Target users of Val are those who own Arduino microcontrollers
  • Valatine is useful for plug-in systems like Raycast and widget plugins on iPhones
  • Poll jobs or web hooky jobs that shuttle data between services are a popular use case for Valatine
  • A community member has built a CLI client and Chrome extension for Valtown, and is requesting more APIs to build a VS Code plugin

Teaching Kids to Code and Programming History

41:18 - 47:29

  • Valtown community member wants more APIs to build a VS Code plugin
  • Teaching kids to code - history of Seymour Papret and Logo programming language
  • Importance of teaching kids coding for soft skills like math and debugging
  • Starting with Scratch, a block-based language from MIT
  • Transitioning from Scratch to JavaScript using WOOFJS framework
  • Valton as the next step for easy snippet creation

The Next Step in Programming Progression

47:12 - 54:03

  • Valton is the next step in programming progression
  • Clear progression in building for children
  • Recommendations for learning about programming history and dev tools
  • Brett Victor's website and essays are highly recommended
  • Future of Coding podcast and community are recommended for dev tools and programming languages
  • Seymour Papert's books are recommended for teaching kids to code and education in general
  • 'Dream Machines' by Strike Press is a comprehensive book on computer history
  • Personalized approach to learning coding based on individual motivations and goals
  • Scratch is a great starting point for kids interested in video games and animations
  • Python or JavaScript can be good first languages depending on the age group

Choosing the First Language to Learn

53:35 - 58:15

  • Python is seen as a childish language and JavaScript is recommended as the first language to learn.
  • Code Academy initially faced pushback for focusing solely on JavaScript, but it worked out well.
  • Repplet, a sponsor of the podcast, spun out of Code Academy.
  • The co-founder Tom McRite is knowledgeable about programming topics and keeps up with the latest trends.
  • Switchbot is a product that allows users to unlock their doors with a button press.
  • Adding an accessory like Switchbot can be a simple solution for integrating new features into existing systems.
  • A shameless plug for Valtown, encouraging listeners to sign up and try it out.
1