Jump to content




Yet another shared files suggestion?


  • You cannot reply to this topic
33 replies to this topic

#1 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 03 December 2014 - 07:45 PM

All the posts about changing the bios, or crafting chips into a computer, security issues etc. I haven't found any posts about shared files. To accommodate safe, grief resistant, non-bios related file sharing that doesn't require a change to the ROM folder, I propose this:

A SPECIAL CC "CLONING" TABLE WITH 64 SLOTS.

Place up to 64 devices (pocket computers, computers, turtles) into the Cloning table, Click "Clone" and all of them will have the same ID (according to lastID.txt). This will allow all these devices to share data files, and no existing folder structures will have to be changed (actually they would all be pointing to the same folder / files).

Before the Clone button is clicked:
The user can optionally specify a label to be given to all clones in this set.

When the Clone button is clicked:
The lastID.txt file would have to be updated.
all devices in the cloning table would have to be given the same ID.
a folder with that ID would have to be created in the world\computer folder.
if no label is defined by user, all clones of this set would get the label "Clone" + id ("clone"..(id))

I suppose it could also be used for cloning disks, so if I edit a file on one disk all the clones get changed too.
Disks would not be allowed to be cloned with computers/turtles/pocket computers.

Once this set of clones is crafted, you CAN NOT use any of them to clone more of the same.
attempting to use one of them would essentially change its id to the new clone set id, and you would lose it as a member of the original clone set.

The only problem I can think of is a griefer changing / deleting the code in one of them, would do the same in all clones of that set.

I currently have to go into the server's file system, make the LastID.txt file read-only, place each device and click on it, create a file ("s") in one of them, and then go back into the server's file system to unread-only the LastID.txt file (which I have forgotten to do a few times).

This works, but limits the process to server-admins, and WILL cause problems if another user happens to place a new device in the world while the LastID file is frozen.

Also, this is a hack, and I feel dirty using it.

Edited by infinitebrainspace, 03 December 2014 - 08:04 PM.


#2 Lyqyd

    Lua Liquidator

  • Moderators
  • 8,465 posts

Posted 03 December 2014 - 08:07 PM

I suspect that this would be extraordinarily unlikely to ever be implemented. It completely breaks the fourth wall, as well as enabling instantaneous communication regardless of distance.

If you're really insistent on having such a thing, you should be able to set it up using just creative mode (though not across multiple types of devices). Place and label one computer, then break it and place as many as you like of the dropped computer/turtle.

#3 ElvishJerricco

  • Members
  • 803 posts

Posted 03 December 2014 - 08:12 PM

View PostLyqyd, on 03 December 2014 - 08:07 PM, said:

If you're really insistent on having such a thing, you should be able to set it up using just creative mode (though not across multiple types of devices). Place and label one computer, then break it and place as many as you like of the dropped computer/turtle.

And with cheat mode in NEI i believe you can copy the labelled device as well. Still doesn't let him go across device types though.

Anyway yea this suggestion doesn't really fit. Copying devices isn't the way we're intended to be doing communications.

#4 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 03 December 2014 - 08:21 PM

View PostLyqyd, on 03 December 2014 - 08:07 PM, said:

If you're really insistent on having such a thing, you should be able to set it up using just creative mode (though not across multiple types of devices). Place and label one computer, then break it and place as many as you like of the dropped computer/turtle.

This is true, and I have done it that way. My co-administrator and I don't like going into creative mode (its a pride thing). And true, it does allow instantaneous communication without the distance limitation. I didn't know it was a wall (let alone know there were 4 of them). I'm not using it to bypass the wireless range limitation, but it does allow me to access my inventory system from any location (put stuff in or take stuff out). It also provides me with a pocket teleporter - which only works if I tickle the server in the world spawn chunk at log-in (but you already read my bug report about the startup not working). anyway thanks for the heads-up on the unlikely implementation. At least I know why (sort of). I guess I should ask "what are the WALLS" so I don't post anymore suggestions that will break them.

#5 ElvishJerricco

  • Members
  • 803 posts

Posted 03 December 2014 - 08:32 PM

View Postinfinitebrainspace, on 03 December 2014 - 08:21 PM, said:

I guess I should ask "what are the WALLS" so I don't post anymore suggestions that will break them.

The fourth wall is an imaginary wall on the set of a TV show. The idea is that in TV shows (particularly sitcoms), the camera gets to face the scene from a direction that you normally don't get to look at. The wall that should be where the camera is, is called the fourth wall because the three other walls are visible in the scene. Breaking the fourth wall is the writers of a show letting the audience know that the fourth wall doesn't actually exist by referencing that this is in fact a TV show. For example, having a character look directly into the camera and say something. Or making a joke about one of the actors' real name.

Breaking the fourth wall in the context of CC means doing things that make sense to us as users, but don't make any sense from the perspective of how a computer should work in a 3D world. For example, this suggestion. In the real world, I can't just take two computers and make them quantumly entangled copies of each other. That doesn't make sense. But in CC it's possible. So you're suggesting that we make this a part of the mod, which breaks the fourth wall by looking into the camera and saying "these aren't real computers, this is a mod where impossible things are possible".

Edited by ElvishJerricco, 03 December 2014 - 08:35 PM.


#6 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 03 December 2014 - 08:38 PM

View PostElvishJerricco, on 03 December 2014 - 08:12 PM, said:

And with cheat mode in NEI i believe you can copy the labelled device as well. Still doesn't let him go across device types though.

Anyway yea this suggestion doesn't really fit. Copying devices isn't the way we're intended to be doing communications.

The multiple devices thing is irrelevant. They are not "Copied". You would have to have crafted them all first, then put them in the cloning table. As far as I know, turtles, computers, and pocket computers all use the same lastID.txt file, and all create a sequentially numbered folder in the same parent folder. Disks have their own folder, and their own lastID file - that's why they couldn't be cloned with the others.

Creative mode lets me make them without crafting, so I have to craft them all in survival mode, go into creative, godmode and copy as Lyqyd suggested, then destroy the ones I crafted in survival (this at least keeps me honest). Oh well, I guess I'll just have to cheat to get what I want (and stay as honest as I can).



#7 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 03 December 2014 - 08:44 PM

I understand. I don't like it, but I understand.


I don't like overcooked asperagas (cant spell it) either, but I - well come to think about it... Never mind.

Thanks for the description of the fourth wall. I will try not to look into the camera and say anything about Dan200.


#8 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 03 December 2014 - 11:47 PM

If you want a bunch of computers with an identical startup file, one other way to do it is to put that file on a disk, insert it into a disk drive, then connect all your computers to that drive via network cables. They'll all boot off the one disk.

#9 Cranium

    Ninja Scripter

  • Moderators
  • 4,031 posts
  • LocationLincoln, Nebraska

Posted 04 December 2014 - 12:26 AM

View PostBomb Bloke, on 03 December 2014 - 11:47 PM, said:

If you want a bunch of computers with an identical startup file, one other way to do it is to put that file on a disk, insert it into a disk drive, then connect all your computers to that drive via network cables. They'll all boot off the one disk.
That's exactly the method I thought of first to solve the "identical bootup sequence" issue addressed here.

Alternatively, if you're wanting a certain file to be available in all computers, you can simply use resource packs. But that makes them read/execute only.

#10 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 04 December 2014 - 02:02 PM

View PostBomb Bloke, on 03 December 2014 - 11:47 PM, said:

If you want a bunch of computers with an identical startup file, one other way to do it is to put that file on a disk, insert it into a disk drive, then connect all your computers to that drive via network cables. They'll all boot off the one disk.

I'm talking about SHARING DATA files, if turtle A changes the file "boogers.dat", I want turtle B to see the change as soon as it happens. If my turtles are moving around, or 3000 blocks apart, they cant share data on a floppy disk.

I totally understand the wall thing, and agree that CC should not implement such a feature. However, I am going to do this in vanilla CC with vanilla MC. I just have to figure out how (and I'm going to do it without going into Creative mode, or humping the lastID.txt file). When I do, I'll be sure to post the method.

if all my computers were sitting in a single loaded chunk, I would net-cable them all to 1 floppy drive, and share the data on 1 disk, but that's not the case.

Don't get me wrong, all these suggestions are valid, and appreciated, they just don't fit my needs.

#11 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 04 December 2014 - 02:18 PM

View Postinfinitebrainspace, on 04 December 2014 - 02:02 PM, said:

if all my computers were sitting in a single loaded chunk, I would net-cable them all to 1 floppy drive, and share the data on 1 disk, but that's not the case.
except Turtles cannot accept that kind of connection. perhaps you could make some kind of program and release it on the forums. It'd be no small task, but you could make the program run behind a shell and detect any FS changes and sync them out over a rednet protocol to all other devices that can listen, each in turn perhaps relaying them on to try and get good coverage on the change.

#12 Cranium

    Ninja Scripter

  • Moderators
  • 4,031 posts
  • LocationLincoln, Nebraska

Posted 04 December 2014 - 05:04 PM

View Postinfinitebrainspace, on 04 December 2014 - 02:02 PM, said:

Don't get me wrong, all these suggestions are valid, and appreciated, they just don't fit my needs.
To be frank, your needs are quite strange, and you're making things more difficult in the long run than you need to.
I can't possibly think of any valid reason to change things to make this a default behaviour, even if it were enabled by config. As you said before, it's incredibly easy for someone to completely wipe one computer, and thus all files are lost forever. If you want communication to be coordinated across turtles several thousand blocks between each other, you can always increase the rednet range, or use the built in repeater system in CC 1.6x. If you want all computers to share a file that can be executed, read, and written to, and keep the file synced across devices, then you just need to build a file sync function. All you'd need to do is check the current file against the broadcasted file through rednet, and if it changes, simply rewrite the file.

#13 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 06 December 2014 - 03:47 AM

I have discovered (with much work) a way to accomplish what I want with vanilla MC / CC (and not in Creative mode or by fidling with the lastID.txt file. It does require a command block, but I can make a computer or a turtle have whatever ID I want it to. I'm still working on Expanded turtles, but with the base turtles I can always add the equipment I need after it is created. I have tested it, and discovered the following:
If you want a turtle, you type (or put into a command block)

"give @p ComputerCraft:CC-Turtle 1 (x)"
where x is:
Base turtle (ID * 4) + 4.
Mining turtle (ID * 4) + 5.
Wireless Turtle (ID * 4) + 6.
Wireless Mining Turtle (Id * 4) + 7

For Computers "give @p ComputerCraft:CC-Computer 1 (x)"
where x is:
Computer (ID + 1)
Advanced Computer (ID + 16385) - so if you wanted ID 10 you would use 16395

I hope to have Pocket Computers, Advanced Turtles, and Expanded Turtles figured out soon. It would help a lot if Someone out there knows the formulae for these.

This was all tested on SP, and I will test it on MP when I figure out the rest of the devices.

#14 valithor

  • Members
  • 1,053 posts

Posted 06 December 2014 - 06:10 AM

View Postinfinitebrainspace, on 06 December 2014 - 03:47 AM, said:

-snip

The method you posted works for everything except Pocket Computers. Pocket Computers use a different way to store ID, so you will most likely not be able to spawn them in using these commands.

#15 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 08 December 2014 - 08:25 PM

-

View Postvalithor, on 06 December 2014 - 06:10 AM, said:

The method you posted works for everything except Pocket Computers. Pocket Computers use a different way to store ID, so you will most likely not be able to spawn them in using these commands.
Yes, They update the lastID.txt file as soon as they are "given", regardless of the value used for damage in the give command. The others don't update the lastID.txt file until the user places them, and then only if they didn't have a specific ID assigned at the time of "give".
Using a 1 for damage in the give always produces an advanced pocket computer, and using 0 always produces a basic pocket computer, but always gives according to the lastID.txt file. Still trying to find the secret though. I've tried numbers between -32767 and 65536, and none of them worked, so its not going to be easy. Maybe I need to learn java (or maybe Dan200 will tell me the secret... NOT!)

Edited by infinitebrainspace, 08 December 2014 - 09:31 PM.


#16 Cranium

    Ninja Scripter

  • Moderators
  • 4,031 posts
  • LocationLincoln, Nebraska

Posted 08 December 2014 - 10:08 PM

The fact still remains that this isn't something that most computers do now. What you may be thinking is shared storage for computers, but that goes back to my previous suggestion. If it's the automatic synchronization of files between computers, so that each computer has the most recent copy of the updated program, then you want to do it through programming, not hacking.

If you're wanting something to "clone" computers, this is easily done with a program that checks file dates that were added with a modified fs api.

#17 valithor

  • Members
  • 1,053 posts

Posted 08 December 2014 - 10:09 PM

View Postinfinitebrainspace, on 08 December 2014 - 08:25 PM, said:

-snip

As i said your method will not work with pocket computers. I know because I have written a bukkit plugin for a server I managed specifically for spawning computers in with a certain id. Pocket Computers, however, do not use damage values to store ids. They use something else, so as I stated before your method will work for everything except pocket computers.

#18 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 09 December 2014 - 02:12 PM

View PostCranium, on 08 December 2014 - 10:08 PM, said:

The fact still remains that this isn't something that most computers do now. What you may be thinking is shared storage for computers, but that goes back to my previous suggestion. If it's the automatic synchronization of files between computers, so that each computer has the most recent copy of the updated program, then you want to do it through programming, not hacking.

If you're wanting something to "clone" computers, this is easily done with a program that checks file dates that were added with a modified fs api.

The real fact is, that we are doing it right now. Both your computer and mine are sharing the same files on a database on another computer somewhere. Yes, it is through the internet, and yes they are separate PC's and YES they both have different ID's and YES we may both be using wireless to get to the internet. That said, it is also a fact that ComputerCraft does not have and internet. The real world has all the chunks loaded all the time. I don't have to worry about the Computercraft.info website ever being in an unloaded chunk (well maybe that's what happened this last weekend).

Maybe what is needed is a VPN Router device that can be linked to other VPN Routers which share a common folder (as opposed to a common ID). Then the communication between Client computers would be wireless / wired to the VPN Router at each location. The linked VPN's would share files, but would not have any direct interface to those files. The client computers would be able to share information with other clients through the VPN. The only user interface on the VPN device would be the linking of the VPN's (associating them with a common vpnid). The client would "map" the VPN to a logical drive (using rednet.map(vpnid)?), and be able to use the VPN as if it were a network drive. If one VPN is in an unloaded chunk, the files would still be available to the client in the local VPN chunk which would be loaded as long as the user stayed in that chunk. Placing VPNs in locations where users frequent would allow them to access their data from that location. This would keep the fourth wall intact, and be well within the realm of relative reality, without negating the need for wireless / wired devices. I don't want synchronized data, I want shared data (not copies of data). In effect I suppose it could negate the wireless range limitation, but you would still have to be in range of the "mapped" VPN, and that is also not beyond relative reality - I cant get to ComputerCraft.info if I'm out of range of my wireless Router, but as long as I am within range I can.

Edited by infinitebrainspace, 09 December 2014 - 02:15 PM.


#19 KingofGamesYami

  • Members
  • 3,002 posts
  • LocationUnited States of America

Posted 09 December 2014 - 02:16 PM

That still breaks the fourth wall. You just made range limitless. If you really want to do something like that, buy a server and code a php script to interact with the http api.

#20 infinitebrainspace

  • Members
  • 47 posts
  • LocationMichigan, USA

Posted 09 December 2014 - 03:27 PM

.

View PostKingofGamesYami, on 09 December 2014 - 02:16 PM, said:

-snip That still breaks the fourth wall. You just made range limitless.
-snip buy a server

I fail to see how this breaks the fourth wall. I am not proposing that some magical unrealistic device do something that is unbelievable, or pointing out that these computers are obviously just pixels on your monitor. I think the fact that "Texas becomes non-existent the moment you travel to Arizona and the movie you were recording in Texas just stops recording, and only resumes when you get back" - breaks the fourth wall. That's where relative reality comes in to play.

Range would be limited between the client and the VPN, just not between VPNs. Example: My laptop can't talk directly with yours wirelessly because we are out of range, but if we are on the same network, or we are both on the internet, we can. I'm proposing a virtual internet in CC. Not just for me, or my needs, but because it is inevitable that the Mod should progress in it's technology - which means the old technology may get left behind. Why should we still be mailing floppy disks to our cousins in Hawaii when we can simply e-mail them with an attachment (if their chunk is loaded). ComputerCraft allows / provides computers for Minecraft. Should those computers be Tandy TRS80's using 300 baud modems and talking to BBS's forever, or should they progress to relatively modern computers, with relatively modern capabilities? Wireless range is a realistic limitation, I agree. I just think that once you have wirelessly connected to a Virtual network (or virtual internet) you should be able to use it as such.
Everyone thinks I am trying to bypass the wireless range. I am only trying to have a way that my inventory computers can look at a file in real time, and tell me what I have in inventory. If that data is on one computer, and that computer is in an unloaded chunk. My data is not available. Repeaters only work if they (and the target Computer) are in loaded chunks. Providing hundreds of repeaters is acceptable, but employing hundreds of world anchors is not. If I have 30 locations, and each location has a computer looking at the same data, my problem is solved, because wherever I go, the chunk is loaded, and the data is available. The range limitation of wireless is not the problem, the distance from a loaded chunk is. Even if the wireless range was infinite, my data would not be available if it is stored in an unloaded computer. how realistic is that. woops, Texas just unloaded so I can't get to my data, or maybe just one of the repeaters between here and there unloaded, either way, I cant get to it. I'm all for the wireless range limitation, it's a good thing. if we could just get the signal to work in an unloaded chunk, I would be happy.

If I had the money to buy a server, I would not be playing games on a computer. I would be out riding snowmobiles, or motorcycles, or something much more fun.

Edited by infinitebrainspace, 09 December 2014 - 03:49 PM.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users