joystick
concise-encoding
Our great sponsors
joystick | concise-encoding | |
---|---|---|
46 | 22 | |
186 | 255 | |
1.1% | - | |
9.7 | 7.2 | |
3 days ago | 6 months ago | |
JavaScript | ANTLR | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
joystick
-
Web Components Eliminate JavaScript Framework Lock-In
There is. I was frustrated by all of the chaos and built a solution [1]. Not too far of from an RC1 and then a 1.0 (which is being done slowly so I can freeze APIs and avoid the typical JS rug pulls).
-
Web Components Will Outlive Your JavaScript Framework
I was excited for web components, but the API was lacking (the final tipping point that led me to build Joystick [1]). I just couldn't get on board with a web-standard that eschewed HTML in favor of stuff like this [2] where list items are attributes. The hyphenated namespace thing has always made my eye twitch, too (silly, I know).
[1] https://github.com/cheatcode/joystick
[2] https://github.com/mdn/web-components-examples/blob/main/edi...
-
We should start to add “ai.txt” as we do for “robots.txt”
I've been (slowly) writing a new type of OSS license around this exact concept so it's easier to (legally) stop LLMs hoovering up IP [1] (under "derivative works not permitted").
[1] https://github.com/cheatcode/joystick/blob/development/LICEN...
-
React is a fractal of bad design
Joystick [1] will let you go. No Stockholm syndrome. No lotion in the basket.
-
The Great Gaslighting of the JavaScript Era – The Spicy Web
If you share the sentiment of the author and want to get on the road to recovery, I submit Joystick [1]. I had similar frustrations to this and decided to do something about it [2].
[1] https://github.com/cheatcode/joystick
[2] Please give it an honest a look and save the XKCD "muh standards" comic and accompanying snark for after you've taken it for a spin.
-
Ask HN: Freelancer? Seeking freelancer? (March 2023)
SEEKING WORK / Remote
Location: Tennessee, US
Remote: Preferred
Contact: [email protected]
---
Full-stack JavaScript developer (any front-end JS framework; Node.js on back-end with adaptability to Deno and Bun). Founder @ CheatCode and author of the full-stack JavaScript framework, Joystick [1] (fully-integrated UI framework a la React with a batteries-included Node.js back-end).
I specialize in designing and building full-stack apps, handling all UI design [2], front-end development, and back-end development. Using Joystick, I can deliver a high-quality result very quickly that can be picked by any junior-level JS developer due to the simplicity and web standards-adherent approach of the framework.
Recent Testimonial:
“We worked with Ryan to develop an internal security monitoring tool for the Coinbase security team. Ryan was great to work with. He’s an excellent developer and communicator with great vision and eye for the UI. I highly recommend working with Ryan and CheatCode if you’re looking to ship a high-quality piece of software."
- Xavier Cadena
---
-
Ask HN: What would be your stack if you are building an MVP today?
Joystick [1] using MongoDB as the primary database. Run a few instances on VPS and then a load balancer in front. This is how I run my site [2] following a massive amount of headaches and random downtime fighting w/ a k8s cluster. Zero downtime since I moved it over in October.
-
Alpine.js
How about plain HTML, CSS, and JavaScript? [1]
[1] https://github.com/cheatcode/joystick#writing-a-component
-
GitHub Is Sued, and We May Learn Something About Creative Commons Licensing
This may be of interest to others here. After reviewing the existing OSS licenses, I decided to write my own (SAUCR: Source Available Under Commercial Restriction—pronounced "saucer"). I'm still working on formalizing the details of it so others can use it, but if you're curious there's an example here [1].
tl;dr it gives specific permissions as to what derivative works are and are not permitted while making the source available for others. The key being: you can be as permissive or as limited as you want in how your code is used.
[1] https://github.com/cheatcode/joystick/blob/development/LICEN...
concise-encoding
- Ask HN: What Underrated Open Source Project Deserves More Recognition?
-
It's Time for a Change: Datetime.utcnow() Is Now Deprecated
"Local time" is time zone metadata. I've written a fair bit about timekeeping, because the context of what you're capturing becomes very important: https://github.com/kstenerud/concise-encoding/blob/master/ce...
-
RFC 3339 vs. ISO 8601
This is basically why I ended up rolling my own text date format for Concise Encoding: https://github.com/kstenerud/concise-encoding/blob/master/ct...
ISO 8601 and RFC 3339 are fine for dates in the past, but they're not great as a general time format.
-
Ask HN: Please critique my metalanguage: “Dogma”
It's to scratch a personal itch of mine: formal descriptions of binary data formats. I couldn't find anything suitable for describing the binary format for Concise Encoding (https://concise-encoding.org/), so I did the crazy thing, thinking "how hard could it be?" But it worked out and I have a formal description for it now:
* https://github.com/kstenerud/concise-encoding/blob/master/cb...
* https://github.com/kstenerud/concise-encoding/blob/master/ct...
So it's primarily geared towards documentation. That being said, there's no reason why tools couldn't use it as well (I'm trying to keep it consistent enough that tools could be built).
Error handling would be an implementation detail. The spec only describes what counts as a malformed grammar, and what counts as an ambiguous grammar (and a small bit about undefined behaviour, which counts as ambiguous).
This looks similar to https://concise-encoding.org/
Dogma was developed as a consequence of trying to describe Concise Binary Encoding. The CBE spec used to look like the preserves binary spec, full of hex values, tables and various ad-hoc illustrations: https://preserves.dev/preserves-binary.html
Now the CBE formal description looks like this: https://github.com/kstenerud/concise-encoding/blob/master/cb...
And the regular documentation looks like this: https://github.com/kstenerud/concise-encoding/blob/master/cb...
Dogma also does text formats (Concise Encoding has a text and binary format, so I needed a metalanguage that could do both in order to make it less jarring for a reader):
https://github.com/kstenerud/concise-encoding/blob/master/ct...
https://github.com/kstenerud/concise-encoding/blob/master/ct...
-
Keep ’Em Coming: Why Your First Ideas Aren’t Always the Best
Hey thanks for taking the time to critique!
I actually do have an ANTLR file that is about 90% of the way there ( https://github.com/kstenerud/concise-encoding/tree/master/an... ), so I could use those as a basis...
One thing I'm not sure about is how to define a BNF rule that says for example: "An identifier is a series of characters from unicode categories Cf, L, M, N, and these specific symbol characters". BNF feels very ASCII-centric...
-
Working in the software industry, circa 1989 – Jim Grey
It's still in the prerelease stage, but v1 will be released later this year. I'm mostly getting hits from China since they tend to be a lot more worried about security. I expect the rest of the world to catch on to the gaping security holes of JSON and friends in the next few years as the more sophisticated actors start taking advantage of them. For example https://github.com/kstenerud/concise-encoding/blob/master/ce...
There are still a few things to do:
- Update enctool (https://github.com/kstenerud/enctool) to integrate https://cuelang.org so that there's at least a command line schema validator for CE.
- Update the grammar file (https://github.com/kstenerud/concise-encoding/tree/master/an...) because it's a bit out of date.
- Revamp the compliance tests to be themselves written in Concise Encoding (for example https://github.com/kstenerud/go-concise-encoding/blob/master... but I'll be simplifying the format some more). That way, we can run the same tests on all CE implementations instead of everyone coming up with their own. I'll move the test definitions to their own repo when they're done and then you can just submodule it.
I'm thinking that they should look more like:
c1
It's weird... I was never big on writing, but when I finally tried my hand at a data format specification (https://github.com/kstenerud/concise-encoding), I found that I really enjoyed the experience.
It's 3000 lines and took me four years and countless revisions, but I feel it was worth it. I actually enjoyed writing the spec even more than writing the reference implementation :)
-
Breaking our Latin-1 assumptions
Ugh Unicode has been the bane of my existence trying to write a text format spec. I started by trying to forbid certain characters to keep files editable and avoid Unicode rendering exploits (like hiding text, or making structured text behave differently than it looks), but in the end it became so much like herding cats that I had to just settle on https://github.com/kstenerud/concise-encoding/blob/master/ct...
Basically allow everything except some separators, most control chars, and some lookalike characters (which have to be updated as more characters are added to Unicode). It's not as clean as I'd like, but it's at least manageable this way.
-
I accidentally used YAML.parse instead of JSON.parse, and it worked?
You might get a kick out of Concise Encoding then (shameless plug). It focuses on security and consistency of behavior.
In particular:
* How to deal with unrepresentable values: https://github.com/kstenerud/concise-encoding/blob/master/ce...
* Mandatory limits and security considerations: https://github.com/kstenerud/concise-encoding/blob/master/ce...
* Consistent error classification and processing: https://github.com/kstenerud/concise-encoding/blob/master/ce...
What are some alternatives?
SvelteKit - web development, streamlined
react-use - React Hooks — 👍
cue - The home of the CUE language! Validate and define text-based and dynamic configuration
svelte-native - Svelte controlling native components via Nativescript
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
next-runtime - The Next.js Runtime allows Next.js to run on Netlify with zero configuration
futurecoder - 100% free and interactive Python course for beginners
postal-codes-json-xml-csv - Collection of postal codes in different formats, ready for importing.
arduino-cli - Arduino command line tool
cue - CUE has moved to https://github.com/cue-lang/cue
htmx - </> htmx - high power tools for HTML
PropertyWebBuilder - Create a fully featured real estate website on Rails in minutes! ⛺