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

Created on 8 Jun 2016  Â·  106Comments  Â·  Source: MightyPirates/OpenComputers

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.

Most helpful comment

The / for absolute paths is literally how Lua works.
The only thing that changed is that the default directory was changed from / to /home/ (and maybe bug fixes, but OpenOS is not going to be "bugwards compatible" like Windows is).

All 106 comments

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.

@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.

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 [email protected] 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
.

@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.

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 [email protected] 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
.

@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.

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.

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?

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

On Wed, 8 Jun 2016, 8:20 PM Danil Krivonos [email protected] 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
.

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

  • components having their own filesystem with programs (magic!) is not that realistic, and also unfair to non OpenOS operating systems.
  • having them installed to OpenOS itself is unfair to addons with their own components, and could possibly get confusing.
  • having to install it manually is equally unfair, so that means that it's fair, as you know you've got a good compromise when everyone hates you. :P it's also more realistic.

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.

@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.

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.

@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.

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

@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.

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).

@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.

@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.

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 [email protected] 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
.

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).

@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.

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

@skyem123 Really, that is a reason?

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

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"

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.

@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.

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

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

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

@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?

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

@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?

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

@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?

@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?

Well internet cards are also not installed by default :D

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.

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?

@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.

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

@Vexatos true, or that :)

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

@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.

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.

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.

(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.)

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"

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...

@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.

@Inari-Whitebear It would be adding a tape floppy, yes. And with the rewritten install, you'd install those floppies running it and selecting tape or running install tape, however @payonel would implement it (maybe allow for both options?)

@fnuecke I am not sure how well that would fit into the challenge of saving RAM... Furthermore, it should merely point the user to the existence of the loot disk instead of connecting to the internet like @Inari-Whitebear suggested. Such a file would have to be hardcoded into OpenOS again though as a computer can't know about nonexistance otherwise, really, no? This would be making it difficult to do the same for tape drives, which means we are back to the original issue once more.
Putting it into the component would make it be a magical table pointing at filesystems instead of magical filesystems, which isn't much better.

Hmm, where was there mention of downloading it from the internet? I can't seem to find that part. Only the one about telling the user which loot disk to insert.

As for RAM, I'd doubt this would consume much at all. It'd be a relatively small table of string->string mappings that'd be queried from wherever.

@Vexatos I wasn't saying it should connect to the internet. I was saying if someone e.g. inserts an internet card, it could read which drivers that usually uses from the device info and then tell the user to insert the internet lootdisk.

The suggestion about giving it a URL was much earlier about making the internet lootdisk itself bootable. Wasn't meaning to make it that anymore now.

@Vexatos So I propose to add pastebin to the standard programs of _OpenOS_, not _OpenComputers_. Just for time saving and creating more noob-friendly software environment.

@IgorTimofeev Again, if pastebin and wget would be put into OpenOS, why wouldn't refuel, for instance? Or, once more to mention the necessary consistency with possible addons, tape?

@IgorTimofeev all we're trying to say is that "x driver file" doesn't make sense without "x device". If you buy some new wizbang device off the shelf, and you want full wizbang support on your computer, you'll get the disk that came in the box, put it in your computer, and install the wizbang drivers.

In this same analogy we could make the argument to require a similar process for even the internet card.

But one last thing to add to this discussion. The updated install that is very soon to come out is not the final version, just an important step in the right direction. We're still discussing the right experience we want for the users.

_adding_ -- yes wget is very important. I agree. But, an argument in favor of NOT including it in vanilla OpenOS is only that it is a useless file without having the device that supports it. If we build the expectation that a device is not necessarily complete without its drivers...then perhaps it is reasonable to put wget in a lootdisk. This is not me declaring a final verdict on this (i don't even hold that authority). I'm just asking us to consider this perspective.

@Vexatos By the way, about refuel - the idea is good. You can simple add one line to install.lua, why not?

if component.isAvailable("robot") then copy(".../refuel.lua", "bin/refuel.lua") end

This is a one of reasons why many of people still using ComputerCraft - it is just more friendly to new users and it's simplier and pleasanter to work with it. Of course, I do not agree with them, but I understand perfectly their point of view. Of course, you, as a programmers, maybe are much more interested to create such "geeky" things, but it is necessary to not forget about regular users.

@payonel I understand this. And If you decide to make an analogy with reality, the majority of modern devices works out of the box immediately when connected to USB - either by pre-installed drivers, or by searching for these drivers on the Internet, either through the built-in firmware. Thus, when you connect a mouse in most cases you do not need to install any additional software, because it is already pre-installed in the OS.

I also want to note that bin/pastebin.lua - this is not the driver, it's a software package, that working via lib/internet.lua library, that works directly with component.internet. This is a very big difference - in fact, internet-card works perfeclty by itself, it has it's own java-driver, it does not require the installation of third-party drivers - but for user-friendly using (wget http://blah-blah) it needs a software package, which will cause its methods to download files from the Internet, etc. And the software package can be pre-installed directly to your OS. This is exactly what I'm trying to convey to you.

if component.isAvailable("robot") then copy(".../refuel.lua", "bin/refuel.lua") end

But what about custom Machines addons could create that accept generator upgrades? Imagine someone creating another type of computer that accepts generator upgrades and can run full operating systems. Don't say it's unlikely, it's possible and that's enough of a reason not to do this. It would be hardcoded to OC robots.

the majority of modern devices works out of the box immediately when connected to USB

Indeed. Just like any OC component works as soon as you plug it in... but if you plugged in your printer for the first time and it would automatically install a printer preview or (yet another) scanning tool... Not sure it's something I'd not consider redundant. Same problem existing if it only installed this piece of software if your PC is running Windows, for instance. Same hardcodedness.

but for user-friendly using it needs a software package

There have been talks about putting software recognition hooks for OpenOS into OPPM once, akin to apt-get:
The program 'pastebin' is currently not installed. You can install it by typing: oppm install pastebin
Putting this software onto OPPM as an alternative (would probably require registering this very repo on OPPM so we don't have to worry about file duplicates). Problem here being that it will always be the very latest version of pastebin for the very latest version of OpenComputers, not sure how much of an issue that would be.

Doing this would be doable as OPPM is built on OpenOS itself anyway, but it would require caching, and OPPM is designed to be as light on space as possible, mpt has already shown how big a package cache can become (could easily fill a tier 1 hard drive). This is the main problem. Furthermore, it would obviously once more _require an internet connection_ to work at all, at least to acquire the cache.

But what about custom Machines addons could create that accept generator upgrades?

Well, if I was a developer of the mod, I would add a autorun system, which copies all of the necessary libraries for component when it's connected, if copying is possible. This is a simple and elegant solution. For example, a component may have an EEPROM analogue that containing a small amount of code for maintaining component functionality. That's how I would do it. But since you have decided to get rid of the "magic file systems", then this option does not suit you.

Same problem existing if it only installed this piece of software if your PC is running Windows, for instance. Same hardcodedness

It's not about hardcodeness, it's about usability of results of your coding process. I would note that 4 of my Windows laptops have easily installed drivers for network and wi-fi cards without Internet connection. This is exactly that small amount of pre-installed code that must be present on every computer, because it provides the most common needs of the user.

Of course, user can manually install drivers, customize interface for himself, but wtf, manual internet software installing? As I said, it's just a software, not a drivers. Driver is a component.internet. Also I want to remind about the main age of Minecraft audience. So the creating flexibility of OS by removing few extra kilobytes for libraries and most common utilites is very strange.

There have been talks about putting software recognition hooks for OpenOS into OPPM once, akin to

Good decision, why not. It will be very easy and convenient to use this by mortals. However, in this case you will contradict yourself, creating software that can not work without an Internet card, so it is also a double edged sword. But it's a really literate and logical solution, and it would be very nice to see something like this in OpenOS. Of course, this requires intelligent help-message system that prints not "file not found", but "please install pastebin via typing 'apt-get pastebin'".

Anyway, discussions like this is very useful for creating the perfect software package, as the union of diverse people always leads to the creation of ideal solutions to meet the demand of a maximum percentage of the audience members.

It's worth noting that automatically installed drivers in the real world tend to be low quality if it's anything more complex than a USB storage device.

In Linux, there is no support for Windows drivers, and it's worth noting that people here tend to use Linux more often than your average person.

@skyem123 Well, people can use anything: Linux, OpenOS, MS-DOS - it is their personal decisions. However, there is a fine line between usability and flexibility of OS, and it is better to observe it using brain and logic, not by personal preferences. And to adjust it to the wishes and requests of other users, especially if they ask for it politely and offers their own solutions.

Also, by your logic, OpenOS would require an Internet connection to download drivers automatically. That's how Windows does it. :P

Instead of automagic stuff, there should be a documented way to install drivers, with a guide in the install.lua program (maybe a second stage install that happens on the first boot that walks the user through it?)

Also, this should be documented in the manual, as some form of OpenOS user guide. (and people who aren't willing to read manuals probably won't be suited to this mod, as this mod is about programming, which requires reading manuals. :p)

I'm for less magic and more installing things and actual computer usage.

@skyem123 I'm tired of explaining basic things. Or my English is really such bad or you're just a troll, distorting main part of what I'm saying.

By my logic, it should present basic and most frequently used software in OpenOS, including pastebin, github and, of course, wget programs, and more, more. Or, if you really do not want to allocate a measly kilobytes of disk space, Vexatos offered an very good solution with apt-get analog.

OpenComputers is already not too friendly to beginners, and changing its essence even more in the direction of deep technical knowledge - this is an extremely unwise move for developers. By the way, this is a one of reasons why people gains aversion to programming - just because someone likes to complicate things.

I don't understand what's difficult about installing programs from disks?

You plug the disk into the drive, run the install program that's been discussed, and then you have the program you want. Isn't that enough?

I don't think requiring an internet card & connection is a good idea at all.

@Forecaster Smart code and friendly software - it's not magic, it's a merit of the developers. Simply, there are two ways: first one, easy, where the program simply exists, and second one, difficult, where programs are adapted to the understanding by of the majority of users. Not everyone sees the second way, alas.

And there is no problem to install software from disks - It is simply not very convenient as compared to what it was before. As I see on YouTube guides, for example, by installing a program for the WarpDrive ship control, there is many people that already shout in the comments like "Whaat file not found!" All this fuss with a floppies - is just another step back from the friendliness and simplicity.

and second one, difficult, where programs are adapted to the understanding by of the majority of users

This makes no sense. If this is the "understanding of the majority" how is that not a good thing?

Also citing YouTube comments is not a good way to prove your point. I would not rely on those as a metric of skill level of any user base.

I might even be prepared to argue that this would provide a greater understanding of how programs work in OpenComptuers, instead of the software just magically existing somewhere users can become aware that a component actually operates using Lua programs that can be dissected and learned from, or you just install and use them.

@Forecaster YouTube is exactly right place to see what knowledge level majority have. You have very strange point of view: to complicate everything utterly, to reduce everything to a low level, creating more difficulties for letting users have learned to overcome them? Overcoming - that's good, but why skilled people have to suffer by inserting a floppy disk, copying files from mnt/ over and over again, why should they rerecord instructions for installing their programs on YouTube, to rewrite the guides on the forums just because the OC authors suddenly decided to complicate things?

Make your own openos, dude. Put the internet apps on it. And just pop that
on a loot disk on your server if thats what you want. (Oc still supports
custom loot disks right?)

On Thu, 9 Jun 2016, 6:55 PM Igor Timofeev [email protected] wrote:

@Forecaster https://github.com/Forecaster YouTube is exactly right
place to see what knowledge level majority have. You have very strange
point of view: to complicate everything utterly, to reduce everything to a
low level, creating more difficulties for letting users have learned to
overcome them? Overcoming - that's good, but why skilled people have to
suffer by inserting a floppy disk, copying files from mnt/ over and over
again, why should they rerecord instructions for installing their programs
on YouTube, to rewrite the guides on the forums just because the OpenOS
authors suddenly decided to complicate things?

—
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-224837460,
or mute the thread
https://github.com/notifications/unsubscribe/AC1W3A4ChVUbgYya75loD9GGPb0dk9Efks5qJ9UJgaJpZM4IwoQF
.

@gjgfuj It does

I mean though.... there actually could be a reason to pop at least wget on
the openos loot disk. (It's a actually pretty useful program.) I mean, as
Igor said, wget and pastebin are very useful programs, they crash
gracefully if the internet card isn't installed, and it would help users.
Of course, that's absolutely up to whoever is in charge of openos as to
whether they want to include it, as openos is a program like that.

On Thu, 9 Jun 2016, 7:00 PM Martin [email protected] wrote:

@gjgfuj https://github.com/gjgfuj It does

—
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-224838538,
or mute the thread
https://github.com/notifications/unsubscribe/AC1W3Am2LWwXv-lbUkunA-qQYEWlUa-iks5qJ9YogaJpZM4IwoQF
.

@gjgfuj It seems like at any problem alomost everybody has one answer: "make a custom loot disk, modify mod's configration file, if you need it, etc", almost nobody wants to make software better and simplier, there's only excuses and artifical difficulties. Apparently, something like that I should say to all the newbies, that complaining of "file not found". For a 1.5 years everything was fine, and then suddenly "not found" without explanation. By the way, OC devs can create something like universal help script, which shows user a reason why "file not found".

Note that it's not a criticism, it's just an some offers to make software better and more user-friendly, because since the 1.6 update OC goes deeper and deeper into the jungles of hardcode and special knowledges.

Your metric of "better" might just differ from ours. :)

Anyone who wants to use the mod shouldn't have much of an issue to stick in a disk and install something. For anyone else, custom lootdisks can be provided as has been said. Or heck, you can even just make floppies and hand them out if you're just a player on the server...

But hey, personally I dislike the trend towards making mod-usage super simple and super braindead, so my opinion might be biased there.

Actually in 1.6 OC goes less into hardcode, that doesn't mean it becomes "simpler" though.

at any problem alomost everybody has one answer

Are you serious? That's some amazing exaggeration there. This issue is not "any problem", it's one specific topic.

@Inari-Whitebear Oh, it is. I'm trying to think as regular user thinks, as if he didn't work with this mod already. And from this point of view, everything has become much more complicated since 1.6.

Actually in 1.6 OC goes less into hardcode

Really? Delayloaded methods, defvs, home dir, "/" for absoulute paths, user profiles, missing unicode chars in new font... It's hardly understandable things for users who came from 1.5 or even earlier versions.

@Forecaster Yes, alas, I'm serious. Not the first time I suggest a few ideas that not only I wish, and for all the offers I get about the same answer: "if you need it, then rewrite config files, create custom loot drives, create own OpenOS", etc. Of course, I can do it - but it does not solve the problem, it is a departure from it. Perhaps offers are shitty, but the same type of response to each of them guards me. It's just strange.

"/" for absolute paths is kind of a general unix concept as far as I'm aware?

And well, OC is built to be open, exactly to allow you to customize it to your own wishes to a degree. Why is it bad to suggest to do that?

The home dir is meant for convinence, a place to store your files. Windows 95 was considered friendly for adding My Documents.

Also, the best solution for this is to have a fancy installer that guides the user, and something like Windows' "found new hardware".

The '/' for absolute paths existed since the first version of OC, most likely, if not it was a bug, by the way.

shellPath = "home/files/blah/"
io.open("test.lua") - opens "home/files/blah/test.lua"
io.open("/test.lua") - opens "test.lua"

@skyem123 It is strange and not very obvious concept, but I'll just accept it because of absence of analogues. But where is information about this changes? It's beta, I understand, but really, most of my programs were written without "/", so shell.setWorkingDirectory() is the only solution to get them work. Or complete rewriting of tons of files, of course.

Idea about intellectual installer is good - and it will be even better if it will have simple GUI, with different color palette for each tier of monitors. Something like this, but with more options, I guess, will be good:

iv6vl1tgu3i

The / for absolute paths is literally how Lua works.
The only thing that changed is that the default directory was changed from / to /home/ (and maybe bug fixes, but OpenOS is not going to be "bugwards compatible" like Windows is).

@skyem123 So you're saying that for 1.5 years OC used buggy absolute paths, but now it has been fixed and we have lots of non-working programs? Great. What literate and clever code!

Yeah, that's kind of the point of it being a breaking change still... it means, stuff will likely break. And this is just one of many changes in that regard I think. Hence why its 1.6, not 1.5.XX. If you upgrade, expect stuff to change.

No, you always used relative paths. You just always were in /, which is a
bad place to be because you have no place for it. So please prefix with a /
if you want absolute paths. That's how it works, that's how it always
worked, and if a user put your code in another place, or changed directory
to another folder, your code would stop working, for the same reason it
does now. So.... relax.

On Thu, 9 Jun 2016, 9:56 PM Igor Timofeev [email protected] wrote:

@skyem123 https://github.com/skyem123 So you're saying that for 1.5
years OC used buggy absolute paths, but now it has been fixed and we have
lots of non-working programs? Great)

—
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-224873731,
or mute the thread
https://github.com/notifications/unsubscribe/AC1W3HvMiKiabB2kT504DGzo5hZX1xZyks5qJ_9ogaJpZM4IwoQF
.

@Inari-Whitebear Sadly. But some small things clearly explains why most programmers trying to reinvent the wheel)

@gjgfuj No, it's not. I'm not always used relative paths, for example, sometimes shell working directory was "Applications/Shop.app/Resources/", but io.open("Config.cfg") opens exactly "/Config.cfg", not "Applications/Shop.app/Resources/Config.cfg". Since 1.6 upgrade everything's become like what you're saying.

Are.... you sure about that? Clearly that's a bug, and you should have
never used that behaviour in the first place.

On Thu, 9 Jun 2016, 10:05 PM Igor Timofeev [email protected] wrote:

@Inari-Whitebear https://github.com/Inari-Whitebear Sadly. But some
small things clearly explains why most programmers trying to reinvent the
wheel)

@gjgfuj https://github.com/gjgfuj No, it's not. I'm not always used
relative paths, for example, sometimes shell working directory was
"Applications/Shop.app/Resources/", but io.open("Config.cfg") opens exactly
"/Config.cfg", not "Applications/Shop.app/Resources/Config.cfg". Since 1.6
upgrade everything's become like you're saying.

—
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-224875419,
or mute the thread
https://github.com/notifications/unsubscribe/AC1W3LgIEAuTg4gqZ60VxWIhNySqRstXks5qKAF9gaJpZM4IwoQF
.

How does reinventing the wheel relate, like remotely, at all. o.o There are going to be some changes to make things better/nicer/different in certain ways. Hence those are done at major versions so users will be aware of that things can break... If you are proposing that things should never break with updates, then yeah... good luck with that I guess

Look, it was a bug. Try using io.iopen() in a real Lua program running on your computer (install Lua for windows, try it!).
It might have surprised you, but a bugfix is not something to complain about.

@gjgfuj Sure, but just in case I'll check this in a free moment.

@Inari-Whitebear Well, my scripts have been developed by 2 years, and they have great backward compatibility even on newest versions. Even if some methods realization completely changes, they can be used by old scripts without any errors. There is no need in "luck" - only a straight arms.

You can start absolute paths with a / on old versions of OpenOS.
Also, you relied on a bug. That bug got fixed. You had to fix a bug / oversight in your software.

Related is how the programs you expect to exist are removed, you seem to be complaining just because you have to change the install instructions.

I can understand why you are annoyed, but that's the point of this update, to break things to not get stuck in the tar pit of backwards compatibility.

Why not help @payonel with the OpenOS installer to make it user friendly?

@skyem123 Apparently, it is necessary. Maybe I should write some script that replaces all non-absolute to absolute, it will be easy enough.

Well, if he will do me that honor, then it will be pleasant.

If you would like our install to be more user friendly? see #1861
Could the new install use more work to make it even more user friendly? Absolutely! I would be sincerely honored to review some PR's to improve it.

However, in this case you will contradict yourself, creating software that can not work without an Internet card

​

Or, if you really do not want to allocate a measly kilobytes of disk space, Vexatos offered an very good solution with apt-get analog.

I think you missed half of my comment:

Doing this would be doable as OPPM is built on OpenOS itself anyway, but it would require caching, and OPPM is designed to be as light on space as possible, mpt has already shown how big a package cache can become (could easily fill a tier 1 hard drive). This is the main problem. Furthermore, it would obviously once more require an internet connection to work at all, at least to acquire the cache.

@Vexatos Why not to make OPPM requests to get application list through an external website database? It's not necessary to cache a bunch of data on such tiny computers.

Seriously? Get the computer to hit the internet every single time a command
is typed in that's unknown? What if the connection is slow, then it lags
out a while.

On Fri, 10 Jun 2016, 5:02 PM Igor Timofeev [email protected] wrote:

@Vexatos https://github.com/Vexatos Why not to make OPPM requests to
get application list through an external website database? It's not
necessary to cache a bunch of data on such tiny computers.

—
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-225108438,
or mute the thread
https://github.com/notifications/unsubscribe/AC1W3LjubW_IfFgwA5A7o9oNqd-Ss2AYks5qKQwQgaJpZM4IwoQF
.

I suggest this: OpenOS will install as normal, as it guides you through how to install it well enough.
However, on the first boot, there should be a utility that prompts users to insert driver disks and, if they want, other loot disks, to install onto the system.

This firstboot / out of the box experience should also show the devices (excluding components that OpenOS already knows how to use such as Screens, GPUs, Keyboards, Drives, FSes, etc... BUT it should still list stuff like internet cards, tape drives, whatever robots have, etc.

I'm new to OC, but not new to computers.
It took me a whole RL day (!!!) to find out how to get the internet api and pastebin.
I wrote my first program in 1974 (!!). That's before the internet existed, for those keeping score. I wrote that program on paper and then punched cards to run it, and had to use a core dump to verify the program actually worked. It _almost_ took less learning curve to do that, once I understood the assembler.

It should not be this hard. If it's essential to the user experience, it should be readily available.

This is why I think it should be in a single disk, and the installer should prompt the user to install it.

The installer should just mention the other disks and ask if you want to install them :P

exactly

windows does it!

Guys, I really understand @IgorTimofeev - he wrote an OS for OC Mod. Changing 200 or more lines of code is difficult.

Changing 200 lines of code sounds like a pretty minor refactoring :p

To be honest, the real issue here is not that it breaks things, it is that there is no indication to the user on how anything works.

I've decided to merge the internet floppy into OpenOS, simply because it's so often used exactly by people who usually don't (yet) know what they're doing. It's the one exception I'm willing to make. Everything else driver like will remain on floppies.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

SoniEx2 picture SoniEx2  Â·  93Comments

IgorTimofeev picture IgorTimofeev  Â·  37Comments

SoniEx2 picture SoniEx2  Â·  32Comments

Tcll picture Tcll  Â·  18Comments

S0ZDATEL picture S0ZDATEL  Â·  32Comments