Live data from Hacker News

Marcel the Shell

marceltheshell.org

51–60 of 209 posts

Re: Marcel the Shell

#51
post #49

Earlier quoted context omitted.

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…

I actually agree with most of this. I tend to use Marcel for ETL sorts of processing, quick database access with data munging on either side, cluster access, etc. it works fine for basic shell usage though.

As for a more complex example: yes, the website has better examples, but they are also more involved to explain.

Re: Marcel the Shell

#52
post #49

Earlier quoted context omitted.

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…

Almost forgot: I also switch from bash to Python at a low threshold. In that case, I find Marcel’s API useful. I can then do shell-like piping inside of Python.

Re: Marcel the Shell

#53
post #24

Earlier quoted context omitted.

They are two very different products in completely different markets. In many jurisdictions any such lawsuit would have no standing.

That's not correct. In fact, there was a relatively recent Supreme Court case where a "joke products" maker (I don't remember the exact products, I think they were dog toys or something) basically made them look like Jack Daniels products. They argued it was a spoof, so should be protected. The court ruled against them, saying that even though they were selling in a totally different arena, they were still coasting o…

The Supreme Court case didn't find the dog toy satirizing Jack Daniels was infringing, just that it was possible and a jury should decide rather than the case being dismissed.

Re: Marcel the Shell

#55
post #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 like…

[deleted]

Re: Marcel the Shell

#56

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

On the bright side they're unlikely to ever see it, since this one will never appear on the first few pages of search results without additional search terms.

Re: Marcel the Shell

#58
> A more powerful form of scripting can be done from Python, using the `marcel.api` module. With this module, you have access to the operators of marcel, neatly integrated into Python.

This looks like an appealing feature! Having some more coreutils-like functions available in python (i.e., stuff that I wish was in the `os` module) would simplify some cases where I otherwise might have to resort to `subprocess` calls. The GPL license definitely narrows the number of situations where I would realistically be able to add this as a dependency, though.

Re: Marcel the Shell

#59
post #58

> A more powerful form of scripting can be done from Python, using the `marcel.api` module. With this module, you have access to the operators of marcel, neatly integrated into Python. This looks like an appealing feature! Having some more coreutils-like functions available in python (i.e., stuff that I wish was in the `os` module) would simplify some cases where I otherwise might have to resort to `subprocess` calls…

I'm not a license connoiseur. Why does GPL present a problem? (Not trying to be conentious, it's a genuine question.)

Re: Marcel the Shell

#60
post #58

> A more powerful form of scripting can be done from Python, using the `marcel.api` module. With this module, you have access to the operators of marcel, neatly integrated into Python. This looks like an appealing feature! Having some more coreutils-like functions available in python (i.e., stuff that I wish was in the `os` module) would simplify some cases where I otherwise might have to resort to `subprocess` calls…

I'm not a license connoiseur. Why does GPL present a problem? (Not trying to be conentious, it's a genuine question.)

GPLv3 is a "strong copyleft" license. It comes with some significant pros and cons compared to more permissive licenses like MIT and BSD. You can find more about the philosophy behind it here: https://www.gnu.org/philosophy

As the author, a benefit it offers you is protection against someone selling your work or a derivative of it, or redistributing it with added restrictions.

From a user's perspective, the main downside is that using GPL software as a dependency makes the user's project a derivative work, which requires them to license their own project with the GPL (or from a selection of other compatible copyleft licenses).

In that sense it's considered a "viral license," i.e. everything downstream of the GPL software needs to adopt GPL. This is less of a problem for an application, but is more troublesome for a library (with many dependents of its own, with dependents of their own, and so on). It also means that if you use it in commercial software, you essentially need to open-source all of it.

So in your case, just using Marcel as a shell with GPL doesn't put any licensing obligations on the user, but using it as a library does.

I hope that helps! Someone else feel free to chime in if I misrepresented any of that.

Post reply on HN