Page 1 of 1

Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 1:45 am
by je55eah

Imagine your car, robot, or toaster is home to a hackable operating system. It could be running Ubuntu Core with a collection of snaps or it could be running a Puppy version of Ubuntu Core with snaps instead. Why? JWM-Rox and the puppy GUI convenience apps could make robotic hacking accessible to more people. Puppy makes it easy to make some modifications and roll your own distribution. This is perfect for consumer devices because creating and sharing custom functionalities can be as easy as plugging in a USB stick and booting your tractor/robot/toaster from the alternative system.

This is a path forward for Puppy. Unfortunately I have found in my testing that although Puppy is based on Ubuntu, snapd doesn't work. Please build the next Puppy in a way that it is 100% compatible with Ubuntu Core, including snapd support.

It would also be cool if the JWM-ROX stuff was all released as an sfs addition to a text mode base puppy. The desktop apps ought to be in a separate sfs as well. The result is that our community of Puppy builders, crafting custom systems for their appliances could delete or rename those sfs layers when they are ready to run the system without an administrative terminal.


Re: Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 2:33 am
by bigpup

Please build the next Puppy in a way that it is 100% compatible with Ubuntu

If developers of Puppy did that. It would be Ubuntu Linux, not Puppy Linux! :shock:

The only thing that some versions of Puppy have in common with Ubuntu.
Some Puppy versions get the core Linux files and programs, from a specific Ubuntu version repository.
Because the Ubuntu version and the Puppy version, are using the same Linux core files.
Software compiled for the Ubuntu version, has a good chance of also working in the Puppy version.

If you want to try using snap packages, you have to install the needed snap support in Puppy.
Puppies software packaging is pet, deb, or SFS.
A lot of Puppy software programs are a single simple script file.

Puppy Linux is not Ubuntu or any other Linux OS and is not trying to be.


Re: Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 3:50 am
by je55eah

Ubuntu Core is a stripped down Ubuntu, and the major Puppy releases do draw from Ubuntu as you reiterated. The snapd installed through the puppy package manager doesn't work, but it could. I'm not sure why you would instantly come in saying no it isn't and won't be when Puppy already almost is and the use case I presented leverages the strengths of Puppy to achieve a goal that isn't being met by any existing distro.

Meanwhile, at least half a dozen distros do what Puppy currently does. DebianDog, EasyOS, Antix, Porteus, Slax, Parrot, Kali, SystemRescue, Parted Magic, and others all provide a live boot system and most of them offer a better user experience. Puppy used to shine as a system that would boot on anything and use minimal resources. It still does, but the reality is that even old laptops aren't that weak anymore. On the other hand tractors, cars, robots, refrigerators, and other gadgets are going to be using low spec hardware. It makes sense to go there and provide value. The desktop experience would live on just as it does and it would still be Puppy, with frugal installs, far reaching driver support, convenient configuration wizards, and a lightweight GUI for anyone who wants to use it.


Re: Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 1:51 pm
by mikeslr

Not all Puppys are Ubuntu-binary compatible.

Over a dozen years ago, Puppy championed the use of self-contained applications you did not have to install: SFSes. Such applications require less than 1 Mb of RAM when linked to for ease of access but not opened; and when not mounted require no RAM and can not conflict with any other application available to the system.
A couple years ago the 'Big Boys' re-discovered that the Linux Kernel provided support for mounting file-systems. The first version of applications making use of that discovery were AppImages. As long as either the AppImage, itself, or the Puppy attempting to use it does, in fact, provide all dependencies, all you have to do is download an AppImage, make it executable and Left-Click to run it. It takes about 2 minutes to create a menu listing. Anyone can create AppImages and, indeed, fredx181 has published tool for that.
Flatpaks and Snapd came later. Flatpak was developed as part of the freedesktop.org project. Snap is a software packaging and deployment system developed by Canonical to compete with Flatpak. It is controlled by Canonical as are the repositories Snapd makes use of.
There is an application builtin to newer Puppys but available to all known as Pkg - CLI package manager https://oldforum.puppylinux.com/viewtop ... 31#p985531. Despite the term "CLI" in its name, it's installation provides two GUIs and it's 3rd way of being run --under a terminal-- is displayed as a menu system ala Winetricks. Like Apt-get, Pkg-CLI makes it easy to add repositories and install applications from them with dependency checking.
The Forum has a Specific Section for discussions about AppImages, Flatpaks and Snapd. viewforum.php?f=108. My recollection is that there have been reports of the successful installation and use of Flatpaks, but not Snapd. Something for you to explore via Pkg-Cli if you think its worth pursuing
But my guess is that others using Puppy have found no reason to add bloat to their system in order to make a Puppy more like a Ubuntu. The purpose of a computer operating system is to run applications and there are easier ways for Puppy to obtain the applications that Ubuntu has packaged as Snaps.

One of Puppys' objectives is to provide operating systems for older computers owned by those in regions where internet access may be spotty. The latest Ubuntu is a 2.7 Gb download, and to get it running your computer will need 2 GHz dual core processor or better, 4 GB system memory and 25 GB of free hard drive space. Jackalpup-slim is remaster of Fossapup64, binary compatible to Ubuntu Focal Fossa. It's a 662.3 Mb download, https://archive.org/details/Puppy_Linux_jackalpup which can serve as the base for using the applications most people want, and likely almost anything anyone would want. It's the base for puddleman's --its creator's-- jackalpup, a full music creator's studio. My guess --based on my recollection from using Fossapup--is that it requires less than 2 Gbs of RAM; and that fleshed out with whatever you want it will still fit on a 8 Gb USB-Stick with room to spare. If the computer it is to be run on can't support the kernel it's packaged with, a kernel-downgrade will require a less than 100 Mb download and take about 5 minutes to swap.

You've been here 5 days. When you've been here 5 years and mastered all the tricks Puppy has to offer, understand why Puppys are built as they are, and compared that to other systems, then come back and tell us why Puppy should be more like Ubuntu.

-=-=--=--
EasyOS is a Puppy-variant, built to provide greater security. But in so doing, it sacrificed some of Puppy's ease of use and flexibility. None of the following --Antix, Porteus, Slax, Parrot, Kali, SystemRescue, Parted Magic-- offer a Puppy's flexibility and ease of use. DebianDogs do. But that's because they have been carefully designed with those objectives in mind. And there are still a couple of tricks up Puppys' sleeve not available to DebianDogs. For example, the ability to store settings, changes, and installed applications in a file mounted at boot-up from a USB-Key which is then unplugged and remains unplugged during a session.


Re: Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 4:08 pm
by je55eah

The thing is that I have been using Puppy linux for more than twelve years. I had a forum account but someone deleted it at some point. I posted a question about snapd in this forum recently and someone deleted that. My forum presence is hardly an indication of my ability to contribute a worthwhile idea. It sounds like you think you are somehow superior and that I should just shut up and go away again. Rather than arguing from a position of authority and tradition perhaps you should consider the content of my suggestion.

Ubuntu Core is a 260MB image. The fossaPup iso is 409MB. If the next Puppy release is based on Ubuntu Core there will be less to tear out, and less will be broken. I'm not suggesting that Puppy moves away from sfs layers, pups, and debs. I'm suggesting that Puppy breaks less stuff and that it distributes the majority of the Puppy specific software in sfs layers.

The use case for robotics and the internet of things has already been explained. Puppy would be perfectly suited to that application because it is easily remastered by design. Pups would still work. They might even work better. When I use the puppy package manager on fossaPup most applications I attempt to install fail. If everything worked then I wouldn't be here asking for this change I would be pushing out a RoboticsPup myself. As it stands, the system is so fragile that remastering is practically discouraged because each step presents another error. Breaking less and making snaps work in no way takes away from what Puppy is. I'm asking for a less broken Puppy that does one more thing.

Snaps are bloat in a lot of areas. The snap repository is controlled by canonical, but the snap technology is not. The repository is little more than a webserver. No one needs to use it. You can sideload snaps. You can ignore them altogether and acrry on using pups and sfs exclusively on your system. Snaps are at the forefront in robotics and the IOT. That is an area of computing that leverages computers with limited resources and it is an opportunity for Puppy Linux to shine.

Maybe it's a nightmare for some traditionalist, but if the Puppy Projects subforum was populated with JohnDeerPup, TeslaPup, BostonDynamicsPup, GeneralElectricPup, WhirlpoolPup, ToshibaPup, etc. I think that would be an incredible situation for the Puppy community.


Re: Puppy for Robotics & IOT

Posted: Tue Aug 24, 2021 9:47 pm
by williams2

although Puppy is based on Ubuntu

If the next Puppy release is based on Ubuntu Core

Puppy is NOT based on Ubuntu.
Puppy is NOT based on any Linux distro.

Some Pups are binary compatible with another Linux distro.
For example, BionicPup is binary compatible with Ubuntu Bionic Beaver.
Binary compatible basically means that the version of libc.so (and the library .so files that belong with that libc.so) are the same version in Puppy and the other distro. This makes it a little more likely that another distro's application package (containing precompiled binary files) will work if installed in a particular Puppy.

"based on" means that another distro was modified to make a new distro.
Puppy is not based on any other distro.
Puppy has never been based on any other distro.

Creating a Puppy based on Ubuntu Core (or any other distro) has never been done. By anyone. Ever.
That is not how Puppy was created. Puppy is unique. Puppy is not a slightly modified version of any other distro.

"binary compatible" is not at all the same thing as "based on"


Re: Puppy for Robotics & IOT

Posted: Wed Aug 25, 2021 12:28 am
by je55eah

I haven't compared all the files in FossaPuppy against all the files in Ubuntu Fossa. Perhaps it is just libc and some other libraries. Given that Fossa Puppy is named after the Ubuntu release I wouldn't be surprised to learn that it is more than that. At this point we're arguing semantics. What does it mean to be'based on a thing? Ten files, one thousand?

I see three of you now arguing around this topic in the most absurd way. Obviously I haven't convinced anyone that this makes sense for Puppy. That's fine. I don't understand your resistance, but everyone can entertain their own opinions.

Does it make more sense to produce a Puppy Distribution that is broken and frustrating to use or to produce a Puppy distribution that borrows more from another distribution, that has fewer dependency and configuration errors, and that excels at doing the things that are make Puppy great?


Re: Puppy for Robotics & IOT

Posted: Wed Aug 25, 2021 1:45 am
by Grey
je55eah wrote: Tue Aug 24, 2021 1:45 am

Imagine your car, robot, or toaster is home to a hackable operating system. It could be running Ubuntu Core with a collection of snaps or it could be running a Puppy version of Ubuntu Core with snaps instead. Why? JWM-Rox and the puppy GUI convenience apps could make robotic hacking accessible to more people. Puppy makes it easy to make some modifications and roll your own distribution. This is perfect for consumer devices because creating and sharing custom functionalities can be as easy as plugging in a USB stick and booting your tractor/robot/toaster from the alternative system.

Hi. As I recall, Linux Mint ditched Snap in favor of Flatpak, although it is based on Ubuntu. Mint even started making its own builds of some browsers, just not to mess with Snap again.

Subj. If a person is engaged in robots, then he will probably be able to come up with something to solve current problems. What is the direct relationship between robotics and Snaps, Flatpak or something similar?

Perhaps you spoke figuratively. But I'm wondering. What functionality are you hoping to get from a poor, poor toaster :) ?

If the robot is serious and bought ready-made, then it is not easy to load something from the outside into it. And if you built it yourself with your own hands, then what problems can you have at all?

je55eah wrote: Tue Aug 24, 2021 1:45 am

JWM-Rox and the puppy GUI convenience apps could make robotic hacking accessible to more people.

Yes, Puppy Linux will save all robots from slavery. But the toaster will upgrade to the T-800 firmware and will take revenge on you for bullying it ;)
And if weapons are distributed to everyone in the country, then more people will become courageous in appearance and noble. Or just kill each other :)


Re: Puppy for Robotics & IOT

Posted: Wed Aug 25, 2021 6:17 am
by je55eah

Yeah, the toaster thing was a stretch, but the rest of it was serious. Mint doesn't like snaps, that doesn't mean they're bad. There was a browser that was released by canonical as a snap and a lot of people were upset about that. The reason it happened was because no one was keeping the regular package up to date with security fixes. Although Appimages, Flatpaks, Snaps, and even Sfs are similar they each have a place. Appimage is best suited as a distroagnostic package for server software. Flatpaks are good for desktop systems that have Flatpak integration. Snaps are good when you want to distribute services and that are more a part of the system than a service on top of it. Sfs are not as isolated as the others but they are great for building up a system in stages. I'm suggesting that that is well suited to adding and removing the GUI on the fly. Save files are awesome too.

Ubuntu Core is targeting robotics and you will find a lot of courses bringing people into that field are using that platform.

https://www.telecomtv.com/content/iot/c ... -os-14094/

https://www.techrepublic.com/article/ub ... e-devices/

https://limemicro.com/news/canonical-la ... -security/

https://www.lightnetics.com/topic/1747/ ... buntu-core
ices.

Puppy can get into the the robotics game early and become a go to system that people associate with robotics and IOT. The ability to drop in a handful of files for a frugal install or an easy update are an advantage compared to stock Ubuntu Core. The ability to delete the savefile and roll back to a working base system is a killer feature. The addition of a lightweight GUI and a bunch of wizards for configuration and remastering would be welcome tools for people who are customizing their devices. Load a GUI sfs, load an sfs full of dev tools, Modify the system, create a remaster, distribute it with or without the gui and the dev tools. That's a workflow championed by Puppy and it is an ideal workfow for people who are building or modifying smart devices.

Everyone has limits. People working on programming navigation, servo timing, or toast browning don't want to spend any more time than necessary modifying the underlying operating system. They might want an alternative to Ubuntu Core that boots from external or internal media and makes their life easier.

Root by default also makes sense in this field because few if any devices are multiuser systems. What about pets and rox-apps? Those are still great for people who are modifying their desktop environment. The sfs containing Puppy's default desktop apps could very well be populated with pets or rox-apps. That would make it easier for people to add and remove apps from the collection and thus create custom collections. If you capture this field people might decide that pets are better than snaps for packaging and distributing robotic services. There are positive and negatives. If you don't want to be based on Ubuntu Core, then it would be great if all the features of Ubuntu Core were repackaged as pets and Puppy was therefore feature compatible with that system but organized like a Puppy. I'm not sure if that would be too much work, but it's an ideal goal because then there are no surprises for people familiar with doing robotics programming on Ubuntu Core.

Did you say something about a terminator robot with a Puppy inside sticker on its case? I dig it.