Dethe Elza

@dethe

Former web developer / programmer turned library technician. I lead code clubs to help everyone from kids to seniors learn to code.

Prime membership

Joined on Mar 18, 2018

  • Dethe Elza For West Vancouver Memorial Library 13 May 2024 Three Approaches What is an operating system (and do we need one)? Some fun examples How to replace your operating system What is an operating system and do we need them? Do we need an operating system?
     Like  Bookmark
  • Moonshine is a strongly typed text-based language intended to be represented well and completely by blocks, to be implemented easily in JavaScript, but compilable to native code efficiently. It is one piece of a project that includes Tardigrade (the block representation), Bootleg (the research OS), Moss Piglet (the UI), and Waterbear (that ties these all together). Waterbear - the official Moonshine IDE incorporating blocks Bootleg - experimental OS Tardigrade - the block toolkit Moss Piglet - the IDE toolkit Moonshine - language that maps cleanly to and from blocks Alley - server component to break scripts out of the browser (for Arduino, shell scripts, Minecraft, etc.) Xastle - social media layer Moat - secure anonymous file transfer
     Like  Bookmark
  • Description Sketchdance is the working title for an in-progress suite of web applications that are intended to work together to be greater than the sum of their parts. The suite includes intentionally simple content creation tools (Shimmy, Veil, Jitter, and Gammaray), more advanced programming tools (Moonshine, Waterbear, Plugh, Joker), a whole bunch of underlying, re-usable tools to put these together (Tardigrade, Moss Piglet, Alley), some tools for sharing, both privately (Moat) and socially (Xastle), some smaller re-usable components (Halo, Roomatoom), and some larger projects that don't fit in any of the categories, but leverage many pieces of Sketchdance (Garden). Descriptions and status of all of these are below, along with some initial ideas of how they fit together. Because there is a lot of overlap between these web applications goals, i.e., Drawing Board, Greenscreen, and Stop Motion are all very similar, there can be benefits to developing them in parallel and each can be informed by the others. Waterbear and Garden are different but might be useful to integrate with both content creation and sharing. I want two ways of storing results: shared to a social site (based on the Scratch community) or posted to a temporary private server to be downloaded later. Collectively, this is the Sketchpad Suite. Pick a random project to work on Earlier version of this document with even more projects A note on epistemic statuses
     Like  Bookmark
  • An experimental OS, ideally written in Moonshine Bootleg is my idea for a tiny, personal operating system. It is inspired by: STEPS Toward the Reinvention of Programming, i.e., the idea of an OS + core apps in < 30,000 lines of code xv6 A simple unix-like OS xv6, the good parts A constructive look at TempleOS TempleOS, the good parts Plan 9 / 9Front
     Like  Bookmark
  • What are next steps in the resurrection of Waterbear? Waterbear is a visual language, ideally supported underneath by a simple text language (Moonshine)Moonshine Goals Among the goals of this rewrite are: Bring back the toolkit nature of Waterbear, allowing people to easily create their own block-based languages with it. Make the UI more powerful, allowing customizations and support for tutorials and walkthroughs Allow demi-modes between text and blocks, to type in equations, for instance.
     Like  Bookmark
  • Moat is a tool for securely uploading and downloading temporary files. The goal is to allow library patrons to create content (photos, animations, green-screens, stop-motions, games, etc.) and be able to get a short URL/code which can be expressed as a QR code where they can download their content. Programs that could benefit by having a convenient way for kids (and adults) to get their content that we now mostly throw away: Code Clubs Pico-8 Workshop Photo booth pop-up Green screen pop-up Stop-motion animation workshop Sketch-based animation workshop
     Like  Bookmark
  • There are sources out there (which I'm struggling to re-find) for canned video effects and sound effects that can be layered onto video. The idea is to create a webapp that is like the iPad "Super Power FX" and similar apps. Ideally, it should work in combination with Veil (Greenscreen) and Jitter (stop-motion). Some effect sources (not all are free, but most have some free assets, whether VFX, SFX, stock footage, foley, etc.) Itch.io Videvo A list of lists Storyblocks Videezy The Public Domain Project
     Like  Bookmark
  • A Sketch-based flipbook animation tool Part of the Sketchdance project. Shimmy - Flipbook Animation Project Page on Github Shimmy Demo Old Project Page on Glitch Old Shimmy Demo on Glitch Shimmy at RPL in production, not always the latest version
     Like  Bookmark
  • How Does the Tiny Waterbear Survive In Outer Space? (Title from this slashdot article: science.slashdot.org/story/12/09/11/228205/how-does-the-tiny-waterbear-survive-in-outer-space How does the tiny Waterbear Survive in Outer Space By dehydrating all the while And wrinkling its face! How bravely she can abide
     Like  Bookmark
  • Veil is a program to remove / replace the background of images, primarily photos but possibly video in the future. It is in very early stage, one problem that needs to be resolved, if possible, is turning off the auto-focus on iPads when capturing the background. I've tried stepping out of the video to take a screenshot, then stepping back in, like PhotoBooth does. The problem is auto-focussing cameras will change the focal point when you step out, changing the colours. Then when I try to subtract the background, it doesn't match. I could try fuzzy matching, but that would start being more likely to match the foreground too. I've also tried (here: https://glitch.com/edit/#!/p5m5-videotest?path=script.js%3A24%3A13) to remove the background using machine learning library ML5. It kind of works, but is slow, and the edges are too sharp. It is faster in Chrome, and it might be even faster if I use WEBGL, but will still almost certainly be too slow for iPads. BUT, I think I can combine these two things. If I identify the background with ML5 and accumulate all the background bits as you move around, I should be able to then subtract the background from the image as I tried initially, but without stepping out. Background will bleed through at first when you move around, but should decrease over time.
     Like  Bookmark
  • From A Constructive Look at TempleOS Further inspiration: xv6 Plan 9 STEPS Towards the Reinvention of Programming
     Like  Bookmark
  • Xastle is a web framework for hosting visual projects, inspired by the Scratch social network, but also influence by Glitch, HackMD, Github, CodePen, etc. Unlike those sites, lists of projects are organized as stacks of cards, like Hypercard, which can be organized, sorted, searched, filtered, spread, flipped to access metadata. Adjacent, but independent from Xastle, is a tool for temporary uploading and securely downloading files, which Xastle can use for private sharing: Moat MVP Components [ ] Project URL [ ] Name
     Like  Bookmark
  • schedule logo made with shimmy Day One Lightning talks Want to play with OBS Studio in the Library? - Kevin Brash A fun look at how another librarian uses OBS, primarily for streaming, including using downloaded resources. Temporary file sharing with Moat, Lightweight Animation with Shimmy, Advanced Markdown with HackMD, Games at the Library - Dethe Elza
     Like  Bookmark
  • Community Building plans around RPL programs and open-source projects. Goals Promote awareness of RPL programs and projects Solicit feedback to improve RPL programs and projects Encourage participation in RPL programs and projects Provide a safe space for members to engage with RPL programs and projects Raise Bus Factor above 1
     Like  Bookmark
  • Temporary file sharing with Moat, Lightweight Animation with Shimmy, Advanced Markdown with HackMD, Games at the Library Dethe Elza, Digital Services Technician ![Richmond Public Library logo](https://i.imgur.com/FHgzTaQ.jpg =180x58) Four lightning talks in one! Some are even related Let's talk about the loosely related ones first Advanced Markdown with HackMD HackMD is a useful online tool for writing, sharing, and collaborating on markdown documents
     Like  Bookmark
  • One-day session Preparation: iPad loaded with Shimmy page, program created in Moat, paper and pencils for sketching/ideas/storyboard. Set expectations: What are we going to be able to create? Show some examples (briefly). What is a storyboard? How can you use it to plan an animation? Handout? The 12 principles of animation (with examples or handout). https://the12principles.tumblr.com/ https://en.wikipedia.org/wiki/Twelve_basic_principles_of_animation
     Like  Bookmark
  • Scratch is a great way to learn programming and with it you can learn the four basics that are fundamental to all programming: variables, iteration (loops), flow-control (if-else), and funtions (new blocks). There are many things it makes easier: You can have spaces in the names of blocks and variables, you don't need to remember the name of anything and you can't get the spelling or capitalization wrong, and all the things you can do are right there in the block menu. Scratch also has some pretty hard limits. You can't access the internet or use databases. String and array manipulation is very limited. You cannot create new types of data, write to files, or make movies, just as a short list of examples. Moving to a text-based language can open up new worlds of things you can do, but also requires you to keep a lot more in mind. You have to learn or look up (and learn where to look up) what functions are available, rather than having all the blocks in a menu. You have to pay attention to spelling: is_jumping, IS_JUMPING, isJumping, is jumping, and iSjUmPiNg are all different names, and one of them is illegal as a name in most languages (in JavaScript names have to start with a letter or underscore and can only have letters, underscores, or numbers, but not spaces). Some things are easier in text languages. The math equations in this block (taken from my Polygon project) can be entered more simply in JavaScript (using the P5 library). Anything following // on a line in JavaScript is a comment and won't be run as code. // assumes oldangle, oldx, oldy as global variables function moveToPoint(iteration, theta, radius){ let x = cos(iteration * theta + oldangle) * radius + oldx; let y = sin(iteration * theta + oldangle) * radius + oldy;
     Like  Bookmark
  • Garden of Forking Paths: A distributed, collaborative tool for making and playing games. Goals: Import from Inky and Twine games Integrate Trizbort (or Twine?) for mapping Make Twine/Chapbook the native format? With some multiplayer extensions? Tempting. Inky: https://www.inklestudios.com/ink/ Twine: https://twinery.org/
     Like  Bookmark
  • Using built in dict and list (in Python) or object and array (in JavaScript) to build a text adventure game. Goal To have a good tutorial explaining the basics of programming (in either JavaScript or Python) while building a working game in the process. To build a secondary tutorial about going from Scratch to text programming and showing things that you really cannot do in Scratch. Current State I have a very basic game as part of the tutorial text itself. A slightly more advanced version is linked to and in progress as it continues to develop.
     Like  Bookmark
  • Note: We are using nginx as the webserver and reverse proxy. If you are using, for example, Apache, then some of these steps will be quite different. In Glitch, get the git repo information On your own server, cd to where the project files will be located. For us this is /var/www/html/[project] but your mileage may vary. git clone [git url from Glitch] [Optional] Change the name of the resulting folder, if desired. For our moat project, it is sd-moat on Glitch, but just /moat on our own server. If this service is client-side only and has no server code, congratulations! Your'e done. Check that all URLs resolve properly and fix up, for instance, links to stylesheets or JavaScript files that may have been absolute /css/style.csw and need to be either relative or fully specified, i.e., css/style.css or https://mysite.com/myproject/css/style.css. You will have to determine the best way to switch these between Glitch and your site if you continue to use Glitch as the development and staging service, as I do. If you integrate with other services, such as Moat, you will need to update the integration points as well. For backend-based services
     Like  Bookmark