website repository has been removed, a new more efficent mono-repo is being uploaded right now.
- Intermediate Data Structures: If you are working with nested or recursive "things", don't execute things instantly. Instead create a huge tree of things that are yet to be executed. This way, you will be able to see what is about to happen. If you just go for the gold without creating an intermediate data structure, you will never see the tree that you are supposed to be working on, and that is just not fair for when you need to debug something. TLDR; the last thing you should be thinking about in a recursive tree, is collapsing nodes, make the tree beautiful and readable first, export it to Cytoscape or Graphviz, give it a name, take it out for a movie, and stare at it for days prior to function execution.
- If you are going to deal with trees, borrow as much as you can from the Document Object Model (web/HTML) don't try to reinvent the wheel. The Document Object Model is perfect for working with trees.
- Don't use walk functions, simply use
this.children.map(node=>node.value()
in yourvalue()
method, a simple .map will give you full recursion inside out. - If your program can run on the command line even if you have to invent something newe like ffmpeg graph notation, don't start by creating a GUI application. Make a command line program first and then consider makeing a GUI for it.
- peapod: Deployment repository for the Cat Pea music player.
- isir: Remote control raspberry pi via a bluetooth keyboard or a remote shutter device.
- rsend: Upload local files to remote host via scp and ssh.
- sha256sum: Compute and check SHA256 message digest.
- older: Simple function to check if a file is older, useful for cache related operations.
- awesome-raspberry-pi: Awesome Raspberry Pi
- furkies-purrkies: Furkies Purkies Narrated Content
- westland-warrior: Westland Warrior Video Content
- munchhausen: Automatically wrap operating system commands with duplex streams. (1st Reference Implementation)
- bashscript: A small shell and a very lightweight JavaScript library meant to convert Operating System commands to functions. (2nd Reference Implementation)
- tush: Tush Shell (1st Reference Implementation)
- oosh: Object Oriented Shell (2nd Reference Implementation)
- endir: Command line utility to virtually place all HTML files in a sub directory by prefixing all the absolute paths specified in a, link, img, and script with a user specified prefix.
- db: is the main content repository
- templates: new record templates
- themes: website themes
- bin: utilities
- website: Cat Pea Website
- warrior: Westland Warrior Master Repository
- news: A tiny twitter for catpea!
- bowel: Eager Processing Framework (1st Reference Implementation)
- eternia: Synchronous Processing Framework (2nd Reference Implementation)
- peacekeeper: Asynchronous Processing Framework (3rd Reference Implementation)