this post was submitted on 09 Mar 2024
545 points (96.0% liked)

memes

10686 readers
2473 users here now

Community rules

1. Be civilNo trolling, bigotry or other insulting / annoying behaviour

2. No politicsThis is non-politics community. For political memes please go to [email protected]

3. No recent repostsCheck for reposts when posting a meme, you can only repost after 1 month

4. No botsNo bots without the express approval of the mods or the admins

5. No Spam/AdsNo advertisements or spam. This is an instance rule and the only way to live.

Sister communities

founded 2 years ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 126 points 9 months ago (6 children)

It's really simple, it's a container containing a virtual os, which runs a browser and a webserver to run the app. The app connects to several external api services to do it's thing.

It's like, really simple!

[–] [email protected] 36 points 9 months ago (1 children)

I‘m very scared that this might actually be the case in some apps out there.

[–] [email protected] 5 points 9 months ago (1 children)

If they're running a virtual OS in a container, they're doing it very wrong. Containers and VMs are quite different, even on a Windows host.

[–] [email protected] 3 points 9 months ago (1 children)

I‘m not sure I understand. At least docker containers have their own os, mostly alpine linux. Dunno if that applies to other apllications.

[–] [email protected] 14 points 9 months ago* (last edited 9 months ago) (1 children)

Nah, a container isn't running nearly as much as an entire OS. Not by a long shot. The Kernel isn't there at all and the entire device stack is gone. Most don't even have an init system running like systemd. They're closer to a chroot in a single terminal than running an entire OS.

The OS flavor in a container is mostly about what flavor of supporting tools are available inside the container. Almost everything else is a thin wrapper making calls in to your host OS or container services.

[–] [email protected] 2 points 9 months ago (1 children)

Hmmm! Interesting! I knew the container shares the kernel with the host OS but I thought most of the rest would be there. I did never really have time to go through every detail tbh. Running 60 docker containers is too time consuming :) thanks for elaborating though.

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago) (1 children)

Yea, I still need to learn a lot myself. Heck, I still have https://optimizedbyotto.com/post/linux-containers-docker/ open in a tab waiting to be read... For a couple weeks now. Sigh.

[–] [email protected] 2 points 9 months ago (1 children)

Dont worry. Learn as you go. I rather make projects to learn things in a practical way.

[–] [email protected] 2 points 9 months ago

I try to do both study and practice. So many things either don't exactly work as advertised, or have really obscure catches that are really difficult to tease appart yourself. So the only way to get a clear picture is to both study and practice. Then, you get to know all of form, intent, and function and not just what you can working.

[–] [email protected] 10 points 9 months ago

It probably was very simple for the kid who wrote it, just import everything and write a couple of lines to use all this stuff that already exists!

[–] [email protected] 7 points 9 months ago (4 children)

Gotta love using a base container image that is far too overkill for what you're trying to run.

load more comments (4 replies)
[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

It also sends your IP and location to Firebase, because the response comes as a push.

Every third time it outputs an ad text and plays an audio ad in the background.

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

I get to witness to enterprise services flavor of that. Where the company pays software architects that aren't actually coding and coders not allowed to make architectural decisions.

You have software that takes http? You need to rewrite it so that you only speak rabbitmq, and use it for every http request or Web socket message, don't worry, we have a team that specializes in making http translate to rabbit mq, so you only have to rewrite the server code, another team will handle the http listener that translates to you.

What's that, you have a non http protocol? Well, the other team isn't scoped to handle that, so you'll need to convert your listener to rabbitmq and create a whole separate container to actually receive the packets in udp and then translate to rabbitmq. No "processing" software is allowed to speak anything but rabbitmq, and network listener containers are only allowed to dumb receive and Forward.

[–] [email protected] 2 points 9 months ago

Tech hipsters be like: you had me at container!

[–] [email protected] 52 points 9 months ago (2 children)
[–] [email protected] 44 points 9 months ago (2 children)

You left "sudo" off that last frame.

[–] [email protected] 5 points 9 months ago

The script will prompt you.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

Blackarch be like

[–] [email protected] 9 points 9 months ago (3 children)

Some of those can be good if you want a single command to install on any OS.

[–] [email protected] 5 points 9 months ago (1 children)

And not have to wait for a maintainer to update the package to have the latest version.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

You think of distribution packaged rpms/deb, but the softwate developer can self publish, and you'll see plenty of self published packages in ppa, copr, flathub, and even just loose websites because it's not rocket science to make an apt or yum repository. However the distribution versions may take a little more time, but more likely to work together as a cooperative whole. Flathub has a decent shot by allowing concurrent versions of dependencies to install, while preserving the concept of updating dependencies independent of the package maintainers.

However, as you go down his chart, it's less likely that you'll reasonably update after install. You may get the latest at the second you install, but 6 months later you'll likely be stale. You may neglect to update npm in each and every project, or it may automatically dependency lock (because self publish nature results in developers having to vet dependency updates, and devs are lazy about that).

[–] [email protected] 3 points 9 months ago (2 children)

Bash/Sh on Windows? And what's so bad about 2-3 separate commands anyway?

[–] [email protected] 3 points 9 months ago* (last edited 9 months ago)

I assume he refers to npm/pip/cargo to be the multiple os option, not saying the last one is obviously better for multiple os. At least that has to be because that's the only option that is os independent.

Of course it sucks because the essentially uncurated dependency trees result in either instability on updates, or missing updates. Of course also the natural OS updater won't help you out with pip/cargo/npm, but it will help with apt, yum, snap, and flatpak.

load more comments (1 replies)
[–] [email protected] 1 points 9 months ago

Gets the job done, but shoudn't and isn't intended for non-programmer end user.
I'm not mad at small programs or developers with not much time to setup a distribution pipeline, they should be praised for their work at the program itself. But different OSes have different places to unpack a program and this allows simple updates, we should respect that for consistency at user end. Expect it's Windows, which is a unspecified mess anyway, let's go and unpack everything raw on C:\ or into user directory.

[–] [email protected] 48 points 9 months ago

How much you wanna bet the "dev" doesn't realise chromium is a dependency, in this scenario?

[–] [email protected] 32 points 9 months ago

What do you mean you don't have to restart your terminal software every afternoon when the four windows consume six gigabytes of RAM?

[–] [email protected] 31 points 9 months ago (2 children)

I saw a terminal app a few weeks ago that had AI INTEGRATION of all things.

[–] [email protected] 33 points 9 months ago (3 children)

Genuinely, fuzzy search and autocomplete is a great application of "AI" (machine learning algorithms).

They just need to stop branding it as AI and selling everything they feed the models....

[–] [email protected] 4 points 9 months ago

Hopefully that day is soon what with those 1-bit models I've been hearing about. I'd be all for that, but I'll be damned if I'll be putting an OpenAI key into my terminal lol.

[–] [email protected] 2 points 9 months ago (2 children)

Do those really require ML? For an e-commerce with millions of entries maybe, but for a CLI I don't see it.

[–] [email protected] 5 points 9 months ago

"need"? Of course not. Though I do see it being capable of much more sophisticated autocomplete. Like a tab-complete that is aware of what you've already typed in the command and gives you only compatible remaining flags, or could tab-complete information available in the environment, like recognize it's running in Kubernetes and let you tab through running hosts or commands that'd make sense from 'here', etc, etc.

Sure, it's all things a very nice and complicated algorithm could do, but ... that's all "AI" thus far. There have been zero actual artificial intelligences created.

[–] [email protected] 3 points 9 months ago

So I didn't do it in the CLI direct, but I had a whole lot of files in a collection that obviously had duplicates.

So I first used fdupes, which got a lot of them. But there were a lot of duplicates still. I noted a bunch were identifiable by having identical file size, but just some different metadata, so I made a quick work of presenting only files with identical stuff and went about reviewing and deleting.

Then I still see a lot of duplicates, because the metadata might be slightly different. Sizes were close, but non dupes also were close. I might have proceeded to write a little something to strip it the metadata to normalize, but decided to feed it to an LLM and ask to identify likely duplicates. It failed to find them all, and erroneously declared duplicates, but it did make the work go faster. Of course in this scenario a missed duplicate isn't a huge deal, so I had to double check their results and might have missed some things, but good enough for the effort.

Sometimes my recall isn't quite good enough for ctrl-r, but maybe an LLM could do better. Of course a better "search engine" also could do well. Also a mind numbingly obvious snippet could be generated without the tedium. Again, having to be careful to reviee because the LLMs are useful, but unreliable.

[–] [email protected] 1 points 9 months ago (1 children)

But shouldn't it be feature of the shell (extension), not terminal emulator app?

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago) (1 children)

Not sure what you mean. It's already a completely superfluous and additional feature. It "should" execute completely separate of everything regardless of what integrations it has.

Though if it doesn't yet exist as a separate thing to hook in to (and it doesn't), it's got to execute somewhere. Makes sense it'd show up as a canned extension or addition to something before it'd show up as a perfectly logically integrated tool.

[–] [email protected] 2 points 9 months ago (1 children)

Terminal emulator is the window, the tabs, integration with your desktop, etc.
Shell is more complicated but TLDR is this is everything showing in your terminal window by default, the base program you use that runs other programs. The prompt showing current user, saving history, coloring the input, basic editing keyboard shortcuts, etc.

By having this AI integrations in a terminal emulator we are very much limiting ourselfs. It would look more fancy in popup windows, but it won't work over remote connections and not be as portable.
Usually when we do some smart functions like autocomplete, fuzzy search or integrations like that we do it as an shell (fish, bash, zsh) extension, then it will work on any emulator and even without a GUI.

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago)

Yea, I agree it 'should' be integrated in a more general way. Though my point is from the dev's perspective: Why go through the extra effort to 'properly' do it if it is an unproven tool many people don't want?

Not saying it should stay there, just saying it makes sense it showed up somewhere less sensical than the ideal implementation.

[–] [email protected] 5 points 9 months ago (2 children)

Warp.dev! It’s the best terminal I’ve used so far, and the best use of AI as well! It’s extremely useful with some AI help for the thousands of small commands you know exist but rarely uses. And it’s very well implemented.

[–] [email protected] 8 points 9 months ago* (last edited 9 months ago) (1 children)

I don't understand what is the benefit here over a terminal with a good non-LLM based autocomplete. I understand that, theoretically, LLMs can produce better autocomplete, but idk if it is really that big of a difference with terminal commands. I guess its a small shortcut to have the AI there to ask questions, too. It's good to hear its well implemented, though.

[–] [email protected] 4 points 9 months ago* (last edited 9 months ago)

There are two modes of AI integrations. The first is a standard LLM in a side panel. It’s search and learning directly in the terminal, with the commands I need directly available to run where I need them. What you get is the same as if you used ChatGPT to answer your questions, then copied the part of the answer you needed to your terminal and run it.

There is also AI Command Suggestion, where you’ll start to type a command / search prefixed by # and get commands directly back to run. It’s quite different from auto-complete (there is very good auto-complete and command suggestion as well, I’m just talking about the AI specific features here).

https://www.warp.dev/warp-ai

It’s just a convenient placement of AI at your fingertips when working in the terminal.

[–] [email protected] 2 points 9 months ago (1 children)
[–] [email protected] 2 points 9 months ago

Alas. They have said they plan to open some of the source and potentially everything, but it’s little progress.

They recently ported to Linux, which I think will give them much more negative feedback here, so hopefully with more pressure they’ll find the correct copy left license and open up their source to build trust.

[–] [email protected] 17 points 9 months ago (5 children)
[–] [email protected] 22 points 9 months ago (2 children)

https://hyper.is

came to mind. It uses web technology to make a terminal. I've never used it, so I have no idea if it works well or not.

[–] [email protected] 2 points 9 months ago

I've used it a while back, it works fine, probably not as effecient as other emulators but works well enough

[–] [email protected] 2 points 9 months ago (1 children)

I stopped using iTerm because it was using too much power while I was on battery. Kitty is by far the best terminal.

[–] [email protected] 3 points 9 months ago

Kitty is really popular. I'm using foot, as long a terminal has the basic functionality I need, best latency is what I care about.

[–] [email protected] 3 points 9 months ago
load more comments (3 replies)
load more comments
view more: next ›