Live data from Hacker News

Marcel the Shell

marceltheshell.org

41–50 of 209 posts

Re: Marcel the Shell

#41
post #26

Earlier quoted context omitted.

Being legally right and being morally right are often two very different things though. Like, they even have the full domain name of the original thing. If I were the owner of the original video and the subsequent film, I know I'd be, at least, annoyed.

What's the original thing? Sorry, I don't know the reference.

https://www.google.com/search?hl=en&q=marcel%20the%20shell

Re: Marcel the Shell

#43
post #25

Earlier quoted context omitted.

Out of curiosity, did you reach out to them? I think the project is neat, just feels a bit like you're leaning on an established (and extremely creative) piece of work instead of creating your own brand. Hope I'm wrong.

Actually, I did. My daughter loves marcel the shell, I was writing a shell, so it's an obvious choice. It is far enough afield that I can't believe they would care. But I reached out to them, and explained what I was going. They were amused, said they might want to object later, but they never have.

Thanks! That's a relief.

Re: Marcel the Shell

#44
I haven't kept up on my Python-flavoured shells. How is this different with xonsh? What similarities does it have with xonsh?

Looking for a compare/contrast, not a ranking. Diversity is usually good

Kudos to author, this looks really good

Re: Marcel the Shell

#45

It's cute, but I suspect the rightsholders for the character won't be thrilled about the name appropriation.

Just using the name "Marcel the Shell" probably isn't enough to be legally actionable.

Plenty of books, films, and TV shows have the same titles, which indicates that titles alone typically don't enjoy the protection of exclusivity.

Copyrighted characters and trademarks have a better chance of that, but those aren't being appropriated here, just the name.

"Marcel" is also a common first name, which makes it less likely that the creators of the film can claim any exclusive use of it, and "the Shell" is completely descriptive in this context, so unlikely to cause copyright issues.

Re: Marcel the Shell

#46
post #15

Earlier quoted context omitted.

Yep. It's a very clean, powerful and well thought out API. And I'm saying that coming from a place of love towards unix and its pipes. I'd almost argue it's better than the unix model. Almost . Been able to give poweshell commands in FOIA litigation and its power is on full display with one liners where it's hard for a gov agency to say no to something so simple.

That’s really interesting; how do you use powershell in that context? I’m assume it isn’t just Here’s FOIA request for the output of the command find /home/jbiden -name “*secret*doc” haha.

It was most notably helpful in litigation against the White House Office of Management and Budget. Was suing for one week of email metadata records (to, from, CC, bcc, time, date) in the last week of Jan 2017. They said that they had no way to complete the request. So we sent them multiple one liners that extracts the info from outlook 365, which pipes it to a csv export command. They told us that they didn't run that sort of command as a routine practice, but we found a separate lawsuit that found emails of the exact command we were asking them to run.

Re: Marcel the Shell

#49
post #5

How does this compare to nushell? I am in the market to learn something other than bash and right now nushell seems like the best candidate.

I wrote marcel. In my view, nushell and marcel are very similar. nushell has tabular output, which I haven't thought was all that useful. Marcel is python-based. The nushell guys have had to invent a lot of language. By basing marcel on python, I don't have to invent language. Any logic to be added is expressed in python. E.g, do a recursive listing of files and find those that changed in the last 3 days: ls -fr | se…

This looks interesting, but the examples don't really show off Marcel's power. The example you just gave without Marcel is:

  find . -type f -mtime -3
The example on this page: https://www.marceltheshell.org/list-processes

  ps -u djt | map (p: p.signal(9))
That's:

  pkill -9 -u djt
The example for summing files by extension is a bit more interesting:

  ls -fr | map (f: (f.suffix, 1)) | red. + | sort
Vs something like:

  find . -type f | awk -F. '(NF>1){print "."$NF}; (NF==1){print ""}' | sort | uniq -c
That said, every time I look into one of these shells, I end up sticking with bash. When it gets to the point that I need something more powerful than bash and the Unix command line environment, I'd just as soon write a stand-alone program which I can check into version control, use on remote systems that don't have one of these fancy shells installed, add proper tests, etc.

This is a neat project though. I'll keep an eye on it.

Re: Marcel the Shell

#50
post #44

I haven't kept up on my Python-flavoured shells. How is this different with xonsh? What similarities does it have with xonsh? Looking for a compare/contrast, not a ranking. Diversity is usually good Kudos to author, this looks really good

Thank you!

Integration with Python: Xonsh defines a language that is a superset of Python and shell, as I understand it. Marcel takes a different approach, defining only a bash-like shell language. Any customization is done in Python, delimited by parens. The separation between shell and Python is much stricter. Also, Marcel provides a Python API so that you can write shell-like marcel commands inside of a Python program. Shelling out from Python is notoriously ugly; the marcel API fixes that.

Sublanguages: In bash, there are lots of sublanguages, e.g. the arguments to 'date', awk, find, sed, and so on. Marcel's idea is to use Python as the sublanguage, because so many people already know it. I guess xonsh has a similar approach here.

Pipes: I think that xonsh, like more familiar shells, pipes strings. Marcel pipes python values in streams. So if you run ls, you don't get a stream of filenames, you get a stream of File objects, and you can operate on them downstream.

Database access: A stream of Python tuples is very similar to database query output. So database access is simple. There is an sql command which produces a stream of Python tuples. And a stream of tuples can be piped into the sql command, e.g. to populated a database.

Remote access: If you have a cluster, you can use marcel to upload a file to all nodes of the cluster, download from the nodes, or to execute the same command on each, streaming results back as streams of python tuples, each with an element identifying the node from which the data originated. I don't think xonsh does this.

https://marceltheshell.org has lots of information and examples of all this.

Post reply on HN