clamshell
shite
clamshell | shite | |
---|---|---|
8 | 24 | |
58 | 182 | |
- | - | |
0.9 | 7.6 | |
about 1 year ago | 3 months ago | |
Python | Shell | |
MIT License | 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.
clamshell
-
Shells Are Two Things
This is well made case - but I'm not sure I buy the central argument. Within some basic limits, I don't think terseness and readability have the contradiction made out here, because in programming we have abstraction, which gives us both.
To take the example command that's given:
beef.txt | grep "lasagna" | sort -n | uniq
Sure, writing the logic out for this in something like python straight out the bat with only the standard library might look messy, but with one basic convenience function it could quickly be:
search(for='lasagna', in='beef.txt', clear_duplicates=False).sorted()
Obviously you have to write the function in the first place, but I'd say if you're doing something like this often, it's easily worth spending that 2 minutes. And if you're not doing this often, you'll have a faster time writing more code, but keeping less heavy lifting of "how does bash pipe together" in your head.
I shared a project here a few weeks ago experimenting with what my dream shell might look like, what surprised me more than anything else, was how easy writing a repl environment actually is. I put a scrappy one together as one person in a few hours, so I don't understand why as developers we've reached general language models before being able to make a powerful, but new-user friendly shell.
Also, completely unrelated note, but posix only allows passing back strings - but isn't this true of web apis too which we use all the time? How come no json as a standard passback from programs?
Shameless plug for the project I mentioned earlier: https://github.com/benrutter/clamshell
-
This Week In Python
clamshell – experimenting with a python based shell
- FLiP Stack Weekly 28 Jan 2023
- FLiP Stack Weekly 28-Jan-2023
- Show HN: Clamshell- an experimental Python based shell
-
Clamshell- an experimental, interactive shell
Check it out here!
- Clamshell- an experimental, interactive daily shell
shite
-
Ask HN: What's the simplest static website generator?
Pandoc can be your friend. My site maker [1] is built around it.
I think a hundred or so well-chosen lines of your favourite scripting language can do wonders. Mine is ~300 lines of Bash because I over-engineered a thing or two for kicks. The core of it is maybe 50 lines.
[1] https://github.com/adityaathalye/shite
The README documents the architecture and rationale. Maybe it will help you figure out yours. Happy hacking!
-
Useful Uses of Cat
[1] https://evalapply.org
[2] https://github.com/adityaathalye/shite?tab=readme-ov-file#te...
-
500 Lines or Less – Writing a useful program in fewer than 500 line code – AOSA
Bookmarked! These look like amazing study projects; the kind one can copy and learn from. Quite like how they do it in art school. Each one of them looks like it solves a nontrivial problem, and edifies the reader on the basic contours/tenets of the problem/solution space.
I love this kind of stuff, because it shows one _can_ solve a pretty juicy problem with not that much code, honestly. Also because it suggests that the industrial-strength equivalent has a lot more in for use cases, corner cases, and/or optimisations that are not relevant for one's requirements (at least not yet, maybe not ever).
I aspire to write code like that. Useful, concise, but not obtuse. Some of my code is not as significant as those examples, and maybe falls short of my ideals, but it gets a lot done in well under 500 loc. e.g. my website maker in Bash [1] (hot-builds and hot-refreshes without JS), or the JS that drives text art animations for Hanukkah of Data [2].
[1] https://github.com/adityaathalye/shite is about 350 LoC counted this way (excluding the script containing HTML templates).
$ grep -E -v "^$|\\s?#" bin/{events,metadata,templating,utils,hotreload}.sh | wc -l
-
“Make” as a Static Site Generator
I love the code [1]. Mine [2] is a bit over engineered because I wanted hot-reloading (without JS), and it was a delightful yak shave.
But the basic idea is the same --- heredocs for templating, using a plaintext -> html compiler (pandoc in my case), an intermediate CSV for index generation.
Very nice!
[1] https://github.com/karlb/karl.berlin/blob/master/blog.sh
[2] https://github.com/adityaathalye/shite
- FLiP Stack Weekly 28 Jan 2023
- FLiP Stack Weekly 28-Jan-2023
- Show HN: Shite – little hot-reloadin' static site maker from shell
-
Show HN: Shite: The little hot-reloadin' static site maker from shell
xdotool emulates user actions under the X Window System (e.g. typing, mouse around, click etc.).
I'm using it to send keypresses to the browser, as you rightly observe.
So if I want to just reload a page, the browser gets F5.
To GOTO some page, it gets a stream of keystrokes for the URL characters and then Enter.
It's really that simple-minded, and it works!
This case statement covers my usage: https://github.com/adityaathalye/shite/blob/master/bin/hotre...
-
Pandoc [a universal document converter] 3.0
Pandoc powers my little static site maker:
cf. https://github.com/adityaathalye/shite/blob/master/bin/templ...
__shite_templating_compile_source_to_html() {
What are some alternatives?
shell-genie - Your wishes are my commands
logs-benchmark - Logs performance benchmark repo: Comparing Elastic, Loki and SigNoz
CameraTraps - PyTorch Wildlife: a Collaborative Deep Learning Framework for Conservation.
streamnative-rest-stocks
nitter - Alternative Twitter front-end
xontrib-pipeliner - Let your pipe lines flow thru the Python code in xonsh.
SirTunnel - Minimal, self-hosted, 0-config alternative to ngrok. Caddy+OpenSSH+50 lines of Python.
sematic - An open-source ML pipeline development platform
imaginAIry - Pythonic AI generation of images and videos
python-functown - Helper library for Azure Function programming