MightyPirates / OpenComputers

Home of the OpenComputers mod for Minecraft.
https://oc.cil.li
Other
1.59k stars 432 forks source link

Should previously magically present programs (such as pastebin/wget) be bundled with OpenOS after all #1856

Closed IgorTimofeev closed 8 years ago

IgorTimofeev commented 8 years ago

Today I've updated the beta2, and was surprised that such a must-have things as pastebin and wget programs was removed from quck access. Of course, I can write my own script for component.internet, but why do I need such artificial complexity? Could you please add them in the OpenOS bin/ folder so that people did not experience difficulties with access to the most basic and most necessary programs?

P.S. Adding devfs and other geek things is good, but removing most needed programs is not.

Fingercomp commented 8 years ago

They are not removed, but moved to loot disks. For example, the programs that were on internet card before beta 2, are on 'internet' loot disk now. To cycle through loot disks just craft one (e. g., OpenOS) with a scrench. Unfortunately, the rework of install.lua is missing in this version. So you need to copy files on loot disks manually.

IgorTimofeev commented 8 years ago

@Fingercomp Thanks for the explanation, but it's really illogical. Perhaps, authors of OC done it to save disk space, but some insignificant 10 kilobytes for wget/pastebin will highly unlikely fill our hard drives :D

In the new OC version in the bin/ folder there is a lot of unnecessary programs for a mere mortal, however, the most commonly used software like internet-programs is absent. This is very disappointing.

gjgfuj commented 8 years ago

It's because it hardly makes sense for software to just exist on a card. Look. You install openos from a floppy, then if you want internet stuff you install the internet apps (from the same floppy even.)

On Wed, 8 Jun 2016, 6:09 PM Igor Timofeev notifications@github.com wrote:

@Fingercomp https://github.com/Fingercomp Thanks for the explanation, but it's really illogical. Perhaps, authors of OC done it to save disk space, but some insignificant 10 kilobytes for wget/pastebin will highly unlikely fill our hard drives :D

In the new OC version in the bin/ folder there is a lot of unnecessary programs for a mere mortal, however, the most commonly used software like internet-programs is absent. This is very disappointing.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/MightyPirates/OpenComputers/issues/1856#issuecomment-224518843, or mute the thread https://github.com/notifications/unsubscribe/AC1W3Al02JLUn70pWbDvnXRDqdpQiVEPks5qJniygaJpZM4IwoQF .

IgorTimofeev commented 8 years ago

@gjgfuj We did not understand each other. I propose to include internet software on a OpenOS loot disk to the bin/ directory, along with other standard applications, not on internet card.

It's just terribly inconvenient - we need to install OpenOS first, then we need to craft a floppy disk with internet utilities, then copy them from mnt/, blah-blah. It requires a lot of time and certain knowledge for newbies.

For example, here is an analogy: in OpenOS bin/ folder we have an utility for BIOS rewriting - not everybody uses it and not every often. However, it is really helpful program, and it is good that it exists by default. But a wget/pastebin programs are used almost by everyone to download existing programs from the Internet, and they were transferred to a separate loot disk, creating additional difficulties. I'm just trying to understand the logic of OC mod developers, and I'm asking them to reduce this difficulties, that's all.

gjgfuj commented 8 years ago

An improved install program is planned for the future (that can install another disk), and you would already have a loot disk due to the fact that it's required for openos. Including these utilities with openos wouldn't be helpful as not every computer running openos would be able to use them. So theyd be a little useless to be part of the distribution. You could always just make a custom openos floppy to install from in your world if it's that big a deal.

On Wed, 8 Jun 2016, 7:21 PM Igor Timofeev notifications@github.com wrote:

@gjgfuj https://github.com/gjgfuj We did not understand each other. I propose to include internet software on a OpenOS loot disk to the bin/ directory, along with other standard applications, not on internet card.

It's just terribly inconvenient - we need to install OpenOS first, then we need to craft a floppy disk with internet utilities, then copy them from mnt/, blah-blah. It requires a lot of time and certain knowledge for newbies.

For example, here is an analogy: in OpenOS bin/ folder we have an utility for BIOS rewriting - not everybody uses it and not every often. However, it is really helpful program, and it is good that it exists by default. But a wget/pastebin programs are used almost by everyone to download existing programs from the Internet, and they were transferred to a separate loot disk, creating additional difficulties. I'm just trying to understand the logic of OC mod developers, and I'm asking them to reduce this difficulties, that's all.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/MightyPirates/OpenComputers/issues/1856#issuecomment-224535554, or mute the thread https://github.com/notifications/unsubscribe/AC1W3G13sJb_tE6_tRdXfVDnXeMV43iGks5qJomzgaJpZM4IwoQF .

IgorTimofeev commented 8 years ago

@gjgfuj For me - it's not a big deal. But newbies are still shouting like an "whhaaaaat where is pastebin.lua?", "why file not found", "what does it mean", etc. There's no information about internet loot disk in OC guide book, there's no info about it in OC wiki:

2016-06-08 12 43 38

Where mortals can get information about this changes? And even if not every computer can run these programs without internet card - that's a reason to delete them? Really? The modular software systems are good, but not in this case. Insignificant kilobytes of the disk space against the usability? Yes, removing them definitely worth it.

Inari-Whitebear commented 8 years ago

It's new. It's in beta. There might not be information yet. So if your suggestion is to add such information, then make that.

SaphireLattice commented 8 years ago

Documentation always tends to be a bit behind the actual code and changes. As for usability, the program that will make it easier to install the drivers should be coming soon. And it will all boil down to something like install internet. Of course people will have to craft floppies.. But after they do all that microcrafting and get everything working on the computer, I'm pretty sure it won't be that hard for them to craft the driver disk and install it. Unless their computer was build by another person. But that's completely different problem, isn't it?

gjgfuj commented 8 years ago

Nothing was deleted, because it was never there in the first place.

On Wed, 8 Jun 2016, 8:20 PM Danil Krivonos notifications@github.com wrote:

Documentation always tends to be a bit behind the actual code and changes. As for usability, the program that will make it easier to install the drivers should be coming soon. And it will all boil down to something like install internet. Of course people will have to craft floppies.. But after they do all that microcrafting and get everything working on the computer, I'm pretty sure it won't be that hard for them to craft the driver disk and install it. Unless the computers were build by another person. But that's completely another problem, isn't it?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/MightyPirates/OpenComputers/issues/1856#issuecomment-224548840, or mute the thread https://github.com/notifications/unsubscribe/AC1W3Iv9cY78gCuJGZnSCtHsRnuqMlzuks5qJpdlgaJpZM4IwoQF .

skyem123 commented 8 years ago

The reason why you have to install it manually is this:

fnuecke commented 8 years ago

FWIW, in addition to the above, I personally don't have a strong opinion either way (included in OpenOS vs. loot disks), I just want to get rid of the magic file systems. For those that missed it, there was a strawpoll on that topic, which favored the loot disk approach. Hence the currently in-progress work on install.lua. If that does still prove to be too annoying, we might still throw it into OpenOS in addition to the loot disks (which should remain for other OSes to access those libs without having to use the OpenOS floppy), my main concern with that being having to maintain the same code in two places...

You do make a fair point with this definitely having to be mentioned in the manual, though. I'll try remember adding it.

IgorTimofeev commented 8 years ago

@skyem123 If the authors of OC have decided to remove "magic" file system components - so I asking them to add two programs to default OpenOS. I and many of my friends have a lot of online-installers for different programs, based on wget.lua, and with the new update they are simply does't work, because the above-mentioned programs are not available. Of course, we can install it via loot disk, but again, more difficulties to God of difficulties!

Such compatibility troubles appears not in first time: since 1.6 update io.open method started to work relatively to shell working directory. I don't understand why, I just accepted this fact and started to use shell.setWorkingDirectory(). For example, if I'm in /home/ directory, I can't open file from the root. It's really strange.

And now there is another compatibility problem, so I asking to solve it by adding wget/pastebin files - especially it's very easy.

skyem123 commented 8 years ago

Firstly, the point of OC 1.6 is to be a breaking change update. If this update didn't break things, then it would be OC 1.5.23.

Secondly, you don't need to use shell.setWorkingDirectory(), instead, you should use absolute paths (they start with /). I tested this on 1.6.0 Beta 2.

IgorTimofeev commented 8 years ago

@skyem123 "Breaking change update" means a complete absence of support of applications that written using legacy API? Oh, great. I already feel the smell of beautiful and smart code.

P.S. Thanks for "/" tip.

LizzyTrickster commented 8 years ago

The API is still there, just you have to go a different way of getting said API.

skyem123 commented 8 years ago

@IgorTimofeev, there has been many more changes that break code even more than it has done now, for example, moving OpenOS to a floppy disk from being a built into every computer broke everything at the time.

Also, programs aren't APIs, by the way, if you were talking about the internet and HTTP API then I could understand it, but using programs as APIs is why things like the GNU coreutils are a complete mess.

Finally, the io.open thing was actually a bug on your side that was hidden by the fact that the home directory didn't exist before.

fnuecke commented 8 years ago

1.6 is a breaking change anyway (in the sense that things have to be adjusted to by the players), so it is the best opportunity to address long-standing things that people (me) are not happy with. And as mentioned, it's not the API that's changed, it's the way it's made available, so I disagree that this should have anything to do with the actual code involved :P (not saying that that's not grown somewhat convoluted over the mod's lifetime and numerous ports, but that's a different and unrelated topic).

IgorTimofeev commented 8 years ago

@skyem123 You can call it whatever you want - api, applications, libraries, blah blah, it does not matter. There is a simple fact: before the OC 1.6 update all programs works fine, after update - no. Reason: OC source code changes and absence of backward compatibility. Also note that adding this compatibility will not affect the performance. And this is the main point.

skyem123 commented 8 years ago

@IgorTimofeev, the point of OC 1.6 is to change things for different reasons. Some of them are performance related, others, like the change that caused this, are more idealogical, where they are changed because we don't like how it worked before, and since this update breaks other things, they might as well be broken as well.

SaphireLattice commented 8 years ago

You already have been told many times: this is a major release. It can and will break things. I don't see the reason to point that out if a easy and backward compatible fix exists.

On Wed, Jun 8, 2016, 21:25 Igor Timofeev notifications@github.com wrote:

@skyem123 https://github.com/skyem123 You can call it whatever you want

  • api, applications, libraries, blah blah, it does not matter. There is a simple fact: before the OC 1.6 update all programs works fine, after update
  • no. Reason: OC source code changes and absence of backward compatibility. Also note that adding this compatibility will not affect the performance. And this is the main point.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/MightyPirates/OpenComputers/issues/1856#issuecomment-224605947, or mute the thread https://github.com/notifications/unsubscribe/AEFMuNpRXQL-Q0yIE_-jcZFC99vjYi1Mks5qJtD2gaJpZM4IwoQF .

fnuecke commented 8 years ago

The ideology in this particular case being trying to reduce implementation complexity and special cases. As well as reducing OpenOSes status as a special case (since those magical file systems are tailored towards OpenOS).

IgorTimofeev commented 8 years ago

@skyem123 Well, apparently, the "idealogical" reasons - is the creation of artificial difficulties for users and compatibility issues for developers.

@dangranos No matter how big release is, the solution is very simple: add two tiny program in a standard directory. It turns out very funny: in the bin/ folder there is a lot of unnecessary programs for regular users, but the most frequently used software was transferred to a floppy disk. It's just not fair.

skyem123 commented 8 years ago

@IgorTimofeev, thing is, the programs you want to add require a component, while the ones that were added don't require a component.

IgorTimofeev commented 8 years ago

@skyem123 Really, that is a reason?

if not component.isAvailable("internet") then
  print("This program requires internet-card to work")
  return
end
skyem123 commented 8 years ago

Yes, it is. Because then it becomes unfair to other components. I think the expectation is that all preinstalled programs will work without special components. When I say work, I mean "doesn't crash and doesn't refuse to work"

fnuecke commented 8 years ago

As I said, I'd like to wait for the reworked install.lua, if it turns out that's too annoying still (beta3 or so :P), I'd willing to put at least the internet programs into OpenOS. However, just to be quite clear, that still won't save people from having to reinstall OpenOS.

IgorTimofeev commented 8 years ago

@skyem123 Why it's unfair? For example, Windows have pre-installed browser, but it will not work without internet. It's very simple and logical, isn't it?

@fnuecke Of course, reinstall is no problem. Thanks.

skyem123 commented 8 years ago

@IgorTimofeev: actually, windows got into a lot of trouble for having Internet Explorer preinstalled.

IgorTimofeev commented 8 years ago

@skyem123 Well, Internet Explorer at least exists by default, but Pastebin.lua... not(

skyem123 commented 8 years ago

There is no benefit aside for a small amount of convenience, at the cost of making the user think there's internet access, while in reality, the program doesn't even start.

It's also worth noting that it is not much more inconvenient to install the drivers than it is to reinstall OpenOS

IgorTimofeev commented 8 years ago

@skyem123 I don't understand you.

"This program requires internet card to work" - there is no internet access
"Downloading from pastebin..." -  there is internet access

Programs starts and says me to insert internet card. It's illogicall or what?

skyem123 commented 8 years ago

It defies the expectation that all the programs will work out of the box

IgorTimofeev commented 8 years ago

@skyem123 Now I don't understand you even more. It is bad that the program works out of the box, without annoying user? You're need more complexity, more difficulties? Interesting... Do psychiatrists have the appropriate term for this syndrome?

skyem123 commented 8 years ago

Nothing is wrong with wanting it to be perfect. I'm a perfectionist.

Vexatos commented 8 years ago

@IgorTimofeev My main concern with putting the internet programs wget and pastebin into OpenOS directly is related to addons: Three components in Computronics (the tape drive, the SD card and the SSD) add programs themselves. Now, if internet-dependent programs would be in OpenOS natively but a tape-drive dependent one would have to be installed via a floppy disk, that would be much more inconsistent and confusing, no? And what about the generator upgrade? That one has a program as well! Why would that not be in OpenOS?

IgorTimofeev commented 8 years ago

@skyem123 Complexity and not out of box working can not be perfect. You're really bad perfectionist.

@Vexatos Maybe because of pastebin.lua is used by mostly everyone? Maybe because of first thing that people do on our server is running "pastebin run..."? And maybe because of Computronix is an add-on and it's not installed by default? Is that not logical or not obvious?

Inari-Whitebear commented 8 years ago

Well internet cards are also not installed by default :D

Inari-Whitebear commented 8 years ago

Kay, solution proposal: Make the internet lootdisk bootable, allow people to run a pastebin file from booting. That way they can run whatever installer file they please and don't need 2 loot disks if they just want some other software and not OpenOS itself.

For MineOS, it could just install OpenOS then via the pastebin installer.

Vexatos commented 8 years ago

used by mostly everyone

On your server, maybe. I know quite a few people who rarely use pastebin. I agree it's a useful program, but it would be inconsistent to have that program inside of OpenOS and a tape program not. From a point of immersion, there is no difference between the two so why should one be preferred over the other just because some people use it?

IgorTimofeev commented 8 years ago

@Inari-Whitebear Enough of playing with words - you perfectly understand what I'm saying. Computronix is an additional modification that not installed on every server. So that's the reason why software for it must not be added to OpenOS.

Vexatos commented 8 years ago

@Inari-Whitebear that could be done with an internet-boot EEPROM...

Inari-Whitebear commented 8 years ago

@Vexatos true, or that :)

Vexatos commented 8 years ago

@IgorTimofeev OC isn't supposed to have anything hardcoded to OC itself and not open for addons. This would just be an inconsistency.

IgorTimofeev commented 8 years ago

@Vexatos I have already explained the reason above. Any third-party modifications programs should not be added to the OS. But the movement of one of the most frequenlty used programs for native OC component to the external floppy disk - is illogical move, which creates difficulties for users.

OC isn't supposed to have anything hardcoded to OC itself and not open for addons.

Really? How about flash.lua program? BIOS rewriting is a hardcoded program that is used very seldom. Devfs is also hardcoded thing that needed to an extremely small number of users.

Inari-Whitebear commented 8 years ago

All computers have an EEPROM though. So the logic of there should be a program for it applies. Not all computers have a internet card however.

@Vexatos point was mostly just saying (I think), that ideally OC should just be implemented as an addon to OC. That is, both AddOns to OC and the core OC components should behave similarly. I migth be wrong there, but I believe I've heard Sangar say something to that extend.

lordjoda commented 8 years ago

I just wanted to remind everybody, that while it is very nice to have consistency and realism, you should also have the "noob" in mind that want's to get started with OC but might turn away, if the complexity is to high for the first simple tasks. This is not a "must have magic" vote or anything, but rather a impulse to also open the discussion how to make OC more beginner friendly.

fnuecke commented 8 years ago

(Just to make sure there's no misunderstanding here, pastebin has not been removed from OpenOS. It's moved from the magical filesystem that was only present when an internet card was installed to a floppy.)

Inari-Whitebear commented 8 years ago

So... assuming that AddOns add loot disks too. For e.g. tape there would also be a loot disk, right?

If so, then couldn't we use the new device info stuff to denote driver files for components and on which loot disks those are found? Maybe per architecture too, to not exclude older architectures... So driver = {"lua5.2" = {{name="pastebin", disk="internet"},{name="wget", disk="internet"}} or something of the sort.

Then OpenOS could read that info from the device info of the components in the computer on boot (or when someone inserts a component). It could then see "oh, there is no pastebin installed, but someone just inserted a internet card (or newly booted with one)" and be all Windows-style and user friendly, going "Hey, I noticed you installed a new device there, want me to install the driver for it? If so, please insert and continue"

fnuecke commented 8 years ago

I actually did think about something along those lines on the bus, but then forgot again :P Good point, yes. A more useful error than "file not found", ideally pointing to the name of a containing loot disk would probably make things a lot less frustrating at least (if not less annoying maybe :X). As to how that table would be filled... kind of messy, but might be worth looking into creating each registered loot disk's file system once and parse it to generate such a list automatically, and provide it via the computer API or so...

Vexatos commented 8 years ago

@IgorTimofeev devfs is hardcoded to OpenOS, not OpenComputers. Big difference. The default BIOS merely looks for an init.lua file, I see nothing bad there.