| Time |
Nick |
Message |
| 00:01 |
|
ssieb joined #minetest |
| 00:02 |
argyle77 |
Is there a difference between move_to and set_pos? I'm not seeing one. |
| 00:11 |
|
amenji joined #minetest |
| 00:19 |
GreenDimond |
argyle77: move_to interpolates the position between the original pos and the given pos |
| 00:19 |
|
paramat joined #minetest |
| 00:19 |
paramat |
argyle77 yes, i think lua_api.txt explains |
| 00:24 |
|
LevierMRQ joined #minetest |
| 00:26 |
|
LevierMRQ joined #minetest |
| 00:27 |
|
Tux[Qyou] joined #minetest |
| 00:29 |
argyle77 |
I've read it, but I'm just not seeing it. I'll spend some more times experimenting. |
| 00:30 |
p_gimeno |
* `move_to(pos, continuous=false)`: interpolated move |
| 00:30 |
p_gimeno |
not much of an explanation |
| 00:32 |
argyle77 |
like, how is it interpolated? over what period of time? Would a user see it if being transported? |
| 00:33 |
rubenwardy |
https://rubenwardy.com/minetest_modding_book/en/map/objects.html#position-and-velocity |
| 00:33 |
p_gimeno |
I think continuous=true means that if there's a wall in the middle, you'll move to the wall instead of the destination |
| 00:33 |
rubenwardy |
> set_pos immediately sets the position, with no animation. If you’d like to smoothly animate an object to the new position, you should use move_to. This, unfortunately, only works for entities. |
| 00:33 |
argyle77 |
Ah, yes, only works for entities. |
| 00:34 |
argyle77 |
I haven't tried it on an entity yet. |
| 00:34 |
|
glguy joined #minetest |
| 00:34 |
|
PipeItToDevNull joined #minetest |
| 00:35 |
p_gimeno |
in 0.4.16 at least, when a player teleports it is seen as interpolated to the rest of the players |
| 00:35 |
|
mathBrain joined #minetest |
| 00:35 |
p_gimeno |
to -> by |
| 00:35 |
paramat |
ok yes lua_api.txt wasn't very clear |
| 00:36 |
argyle77 |
Weird. |
| 00:39 |
GreenDimond |
move_to doesnt seem to have a way to set the speed of movement |
| 00:39 |
paramat |
it's instant, i think |
| 00:39 |
GreenDimond |
It is not |
| 00:39 |
paramat |
serverside |
| 00:40 |
GreenDimond |
if it were instant that would defeat the purpose? |
| 00:40 |
paramat |
then the client interpolates, |
| 00:40 |
paramat |
so it appears non-instant |
| 00:41 |
GreenDimond |
My point still stands |
| 00:41 |
GreenDimond |
there is no way to set the speed of interpolated movement |
| 00:41 |
GreenDimond |
client-side or not I dont care |
| 00:41 |
paramat |
however it is an instant setting of position serverside |
| 00:43 |
paramat |
i guess the speed is determined by the distance |
| 00:43 |
p_gimeno |
now I wonder the difference between move_to(pos, true), move_to(pos, false) and set_pos(pos) |
| 00:46 |
paramat |
'move to' is always 'as fast as possible' because it's instant serverside |
| 00:49 |
p_gimeno |
by my reading of the source, move_to(pos, false) does not send a position update to the client |
| 00:49 |
GreenDimond |
what if the client is the server |
| 00:50 |
p_gimeno |
the client is never the server, they are different threads at a minimum |
| 00:50 |
rubenwardy |
GreenDimond: impossible |
| 00:50 |
rubenwardy |
^ |
| 00:51 |
GreenDimond |
But like |
| 00:51 |
GreenDimond |
singleplayer |
| 00:52 |
p_gimeno |
same thing, singleplayer is still a server + a client (just with a special name and restrictions |
| 00:52 |
p_gimeno |
) |
| 00:52 |
p_gimeno |
https://github.com/minetest/minetest/blob/master/src/content_sao.cpp#L685 |
| 00:52 |
GreenDimond |
right |
| 00:52 |
GreenDimond |
but "as fast as possible" should be instant |
| 00:52 |
p_gimeno |
I misread, it's the opposite: continuous doesn't seme to send the update |
| 00:53 |
p_gimeno |
GreenDimond: the server still ticks at 0.1 seconds; the client still interpolates |
| 00:53 |
GreenDimond |
I guess |
| 00:55 |
|
Tux[Qyou] joined #minetest |
| 00:56 |
paramat |
ok. 'continuous' is false by default, only affects lua entities. but 'continuous' isn't documented! |
| 00:57 |
paramat |
it controls 'sendPosition()', sending position to clients |
| 01:02 |
paramat |
opened an issue for improving docs |
| 01:06 |
|
mathBrain joined #minetest |
| 01:15 |
|
mathBrain joined #minetest |
| 01:21 |
|
Miner_48er joined #minetest |
| 01:24 |
mathBrain |
I'm thinking of having a modding contest. Any opinions on that? |
| 01:41 |
|
ssieb joined #minetest |
| 01:42 |
|
kaeza joined #minetest |
| 01:45 |
p_gimeno |
is it possible to run two clients (in different worlds) without interference in the same computer? I guess I have to make the logfiles different, anything else? |
| 01:46 |
ANAND |
logfiles can be same too |
| 01:47 |
ANAND |
But I haven't exactly observed the logfiles for any anomalies, but they don't crash for sure |
| 01:47 |
ANAND |
-But |
| 01:48 |
ANAND |
It's better to have diff. log files for all intents and purposes, though :) |
| 01:48 |
p_gimeno |
ok, thanks, good to know :) |
| 01:53 |
|
riff-IRC joined #minetest |
| 01:56 |
mathBrain |
If I want to create a modding contest. Would "Modding Discussions" be the right place to announce it? |
| 02:00 |
|
kawaiipunk joined #minetest |
| 02:00 |
Emerald2 |
Hey paramat do you think that what scale and offset do could be better explained in the lua_api? |
| 02:00 |
ANAND |
The sub-forum on forum.minetest.net? That seems to be the most appropriate place, but for the sake of visibility, I suggest "General" instead. |
| 02:01 |
ANAND |
Emerald2: HUD element params? |
| 02:01 |
Emerald2 |
NoiseParams. |
| 02:01 |
ANAND |
Ah ok :) |
| 02:02 |
paramat |
possibly. lua_api has to be specific and concise, so the explanation is not as simple as it could be |
| 02:03 |
Emerald2 |
For those 2 things, there really isn't much of an explanation at all. |
| 02:04 |
Emerald2 |
The other params get a more detailed explanation. |
| 02:04 |
Emerald2 |
Scale: "Once all octaves have been combined, the result is multiplied by this. |
| 02:04 |
Emerald2 |
Can be positive or negative." |
| 02:04 |
Emerald2 |
Doesn't give any idea as to what scale effects. |
| 02:05 |
paramat |
yes, a super-simple explanation is possible, maybe it could be added |
| 02:05 |
Emerald2 |
Please. :) |
| 02:05 |
paramat |
well, also https://github.com/minetest/minetest/blob/77cfc4fcd1d10d088e8a56e38bc195a5d6fe5e57/doc/lua_api.txt#L2633 |
| 02:07 |
paramat |
i've posted simpler explanations in the forum somewhere. 'offset' is the average value, 'scale' is the typical variation either side of 'offset' |
| 02:08 |
Emerald2 |
Even putting something like that in the api would help us laypeople. :) |
| 02:09 |
paramat |
yes will consider https://forum.minetest.net/viewtopic.php?f=47&t=15272 has lots of useful info |
| 02:09 |
paramat |
noise explanations may be in there somewhere |
| 02:10 |
Emerald2 |
Yeah I've done research elsewhere to help in my understanding. It's good to have a basic reference in the api though. |
| 02:23 |
|
Camasia joined #minetest |
| 02:33 |
|
milkt joined #minetest |
| 02:39 |
|
turtleman joined #minetest |
| 02:48 |
|
mathBrain joined #minetest |
| 02:48 |
|
Camasia joined #minetest |
| 03:15 |
|
cddepppp256 joined #minetest |
| 03:21 |
|
AceNovo_ joined #minetest |
| 03:35 |
fling |
Hello! |
| 03:52 |
|
paramat joined #minetest |
| 04:10 |
|
sec^nd joined #minetest |
| 04:12 |
|
cddepppp256_ joined #minetest |
| 04:50 |
|
Elon_Satoshi joined #minetest |
| 05:17 |
|
Gundul joined #minetest |
| 06:23 |
|
SanskritFritz joined #minetest |
| 07:14 |
|
jluc joined #minetest |
| 07:29 |
|
aheinecke joined #minetest |
| 07:46 |
|
Dr-Frankenstone joined #minetest |
| 07:47 |
|
CWz_ joined #minetest |
| 08:29 |
|
Unarelith_ joined #minetest |
| 09:18 |
|
troller joined #minetest |
| 09:22 |
|
Dr_Frankenstone joined #minetest |
| 09:26 |
|
illwieckz_ joined #minetest |
| 09:27 |
|
Dr-Frankenstone joined #minetest |
| 09:48 |
|
amenji joined #minetest |
| 09:58 |
|
YuGiOhJCJ joined #minetest |
| 10:02 |
|
Dr_Frankenstone joined #minetest |
| 10:20 |
MinetestBot |
[git] paramat -> minetest/minetest: num_emerge_threads: Initialise value to cope with setting syntax erro… c0fb5dd https://git.io/fjvKs (2019-03-18T10:19:53Z) |
| 10:31 |
|
Dr-Frankenstone joined #minetest |
| 10:47 |
|
Beton joined #minetest |
| 10:52 |
|
Dr_Frankenstone joined #minetest |
| 10:55 |
|
air joined #minetest |
| 10:56 |
air |
can logger colors be changed? |
| 11:10 |
|
Jean3219 joined #minetest |
| 11:17 |
|
proller joined #minetest |
| 11:28 |
|
Dr-Frankenstone joined #minetest |
| 11:29 |
|
Fixer joined #minetest |
| 11:32 |
|
unclouded joined #minetest |
| 11:57 |
Jean3219 |
Hello, @sfan5 thank you for commenting the issue on github "Minetest 5.0.0 not announcing to servers". When do you have time, that we can debug this issue? :) |
| 11:57 |
sfan5 |
now |
| 11:57 |
Jean3219 |
great, thanks! |
| 11:58 |
Jean3219 |
so what could we do to debug this? |
| 11:59 |
sfan5 |
what is the name and IP of your server? and is it running right now? |
| 11:59 |
Jean3219 |
213.202.229.139 Port 30000 |
| 11:59 |
Jean3219 |
And yes, it is running right now |
| 11:59 |
sfan5 |
!up 213.202.229.139 |
| 11:59 |
MinetestBot |
213.202.229.139:30000 is up (5ms) |
| 11:59 |
sfan5 |
right |
| 12:01 |
sfan5 |
I don't see any server announcing with that IP |
| 12:01 |
sfan5 |
you probably have IPv6 on your server, do you know the IPv6 address it has? |
| 12:02 |
Jean3219 |
is that an ipv6 address? 2a01:480:2000:20:8ae:2dff:fe6c:1505 |
| 12:03 |
sfan5 |
yes |
| 12:03 |
Jean3219 |
then this sould be the ipv6 of this server.. |
| 12:03 |
Jean3219 |
But on my minetest.conf I configured: enable_ipv6 = false |
| 12:04 |
Jean3219 |
our should I enable it? |
| 12:04 |
sfan5 |
there is usually not reason to disable it |
| 12:05 |
sfan5 |
either: |
| 12:05 |
sfan5 |
nevermind |
| 12:05 |
sfan5 |
server_address = 213.202.229.139 should solve your issue |
| 12:06 |
Jean3219 |
Thank you very much.... the whole time my config was "server_adress = 213.202.229.139" and not "server_adress = 213.202.229.139"... |
| 12:06 |
|
proller joined #minetest |
| 12:07 |
Jean3219 |
It now works, thank you very much! |
| 12:07 |
sfan5 |
enable_ipv6 = false should have affected the announce request, so this bug should not have happened |
| 12:07 |
sfan5 |
i'll look into that |
| 12:07 |
p_gimeno |
ah single d? |
| 12:09 |
p_gimeno |
Jean3219: is the local IP the same as the external IP? |
| 12:09 |
Jean3219 |
my problem was that i typed "server_adress" instead of "server_address".. Have a nice day! |
| 12:10 |
p_gimeno |
if it's not, then I don't think there's a bug |
| 12:11 |
Jean3219 |
in my case not I believe.. |
| 12:11 |
sfan5 |
p_gimeno: by default the server list will check the IP the announce request is coming from, if that's IPv6 but the server isn't listening on that, it won't work |
| 12:12 |
p_gimeno |
ah |
| 12:13 |
sfan5 |
Jean3219: by the way, enable_ipv6 = false is not needed and you can take it out of your config |
| 12:14 |
Jean3219 |
thanks, yeah, I commented out ;) |
| 12:26 |
Jean3219 |
Maybe it makes sence to update the Box under "Announcing Servers" on https://www.minetest.net/servers/ and adding "server_address = <IPAdressOfTheServer>" there |
| 12:28 |
|
calcul0n joined #minetest |
| 12:46 |
Calinou |
server_address can be a domain name too, which will be referenced in the list |
| 12:46 |
Calinou |
(and used by clients) |
| 12:59 |
|
CWz joined #minetest |
| 14:02 |
|
glguy left #minetest |
| 14:07 |
MinetestBot |
[git] sfan5 -> minetest/minetest: httpfetch: Disable IPv6 here too if requested by settings (#8399) 426bdba https://git.io/fjv19 (2019-03-18T14:06:27Z) |
| 14:10 |
p_gimeno |
nice catch |
| 14:13 |
|
scr267 joined #minetest |
| 14:15 |
|
amenji joined #minetest |
| 14:19 |
|
Helwyr joined #minetest |
| 14:30 |
|
ensonic joined #minetest |
| 14:32 |
|
Fusl joined #minetest |
| 14:35 |
|
Fusl joined #minetest |
| 14:37 |
|
Fusl joined #minetest |
| 15:00 |
|
milkt joined #minetest |
| 15:09 |
|
epod joined #minetest |
| 15:40 |
|
puzzlecube joined #minetest |
| 15:47 |
|
koosha01 joined #minetest |
| 15:47 |
koosha01 |
Hi guys. |
| 15:47 |
koosha01 |
I got one question. Is it possible for a 5 version of minetest to connect to a 4 version one? |
| 15:48 |
sfan5 |
no, that's intentional |
| 15:48 |
koosha01 |
? |
| 15:49 |
sfan5 |
I am saying it's not possible and that this is by design |
| 15:49 |
koosha01 |
Oh, right. |
| 15:50 |
koosha01 |
How about vice versa? |
| 15:50 |
sfan5 |
not possible either |
| 15:51 |
koosha01 |
The major versions should be the same only, right? |
| 15:51 |
sfan5 |
correct |
| 15:52 |
koosha01 |
Thank you so much. |
| 16:21 |
scr267 |
Is there an AFK kick in version 5? |
| 16:21 |
rubenwardy |
not builtin |
| 16:22 |
scr267 |
hum i thought so |
| 16:22 |
scr267 |
ok thanks |
| 16:28 |
sofar |
it's not too difficult to implement, there's several mods doing it |
| 16:41 |
|
Derixithy joined #minetest |
| 16:43 |
|
proller joined #minetest |
| 16:50 |
|
Tux[Qyou] joined #minetest |
| 16:51 |
|
pope joined #minetest |
| 16:57 |
|
Blo0D joined #minetest |
| 17:37 |
|
Derixithy joined #minetest |
| 17:50 |
|
ssieb joined #minetest |
| 17:51 |
|
rosegarden19 joined #minetest |
| 17:52 |
Fixer |
!rainbow rubenwardy: burning eyes |
| 17:52 |
MinetestBot |
4rub7enw8ard3y: bur6ning e4yes |
| 17:52 |
rubenwardy |
>_> |
| 17:52 |
rubenwardy |
?_? |
| 17:53 |
benrob0329 |
My Eyes! |
| 17:54 |
VanessaE |
the goggles do nothing! |
| 18:05 |
|
disconnected joined #minetest |
| 18:07 |
|
Unarelith joined #minetest |
| 18:13 |
kaeza |
"Really, burning should be a combining modifier." |
| 18:14 |
clavi |
so is carpathian in 5.0.0 stable? |
| 18:18 |
|
Sheriff joined #minetest |
| 18:47 |
|
fwhcat joined #minetest |
| 18:48 |
Fixer |
yes. |
| 19:00 |
|
scr267 joined #minetest |
| 19:00 |
|
jluc joined #minetest |
| 19:07 |
|
BlackZ joined #minetest |
| 19:09 |
BlackZ |
hiya, when i want 2 craft a bed it is not showing ? |
| 19:32 |
|
kaeza joined #minetest |
| 19:45 |
|
JDCodeIt joined #minetest |
| 19:52 |
|
nowhereman joined #minetest |
| 19:53 |
|
ensonic joined #minetest |
| 20:12 |
|
Dr_Frankenstone joined #minetest |
| 20:16 |
|
troller joined #minetest |
| 20:17 |
|
proller__ joined #minetest |
| 20:19 |
|
FreeFull joined #minetest |
| 20:22 |
|
scr267 joined #minetest |
| 20:28 |
|
mathBrain joined #minetest |
| 20:48 |
|
nowhereman joined #minetest |
| 20:50 |
|
fwhcat joined #minetest |
| 21:05 |
|
cddepppp256 joined #minetest |
| 21:13 |
|
Blo0D joined #minetest |
| 21:18 |
|
cddepppp256 joined #minetest |
| 21:21 |
|
proller__ joined #minetest |
| 21:21 |
|
Telesight joined #minetest |
| 21:21 |
Telesight |
Hello all ... |
| 21:22 |
Telesight |
Any Ubuntu specialist? |
| 21:22 |
Telesight |
I try to update to Ubuntu 18.04 but get an error |
| 21:23 |
Calinou |
you could try #ubuntu |
| 21:23 |
Telesight |
E: GPG error: http://archives.ubuntu.com bionic InRelease: Clearsigned file isn't valid, got 'NODATA' (does the network require authentication?) |
| 21:23 |
Calinou |
(also, search the error message online, it may give you answers) |
| 21:23 |
|
diemartin joined #minetest |
| 21:24 |
Telesight |
Already searched online |
| 21:24 |
|
Unarelith joined #minetest |
| 21:24 |
Telesight |
It is for the update to Minetest 5.0.0 |
| 21:25 |
sfan5 |
sounds like your sources.list is broken |
| 21:26 |
Telesight |
I already checked the sources.list and compared it with Ubuntu examples |
| 21:28 |
sfan5 |
>deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted |
| 21:29 |
sfan5 |
is that what it says? |
| 21:31 |
erstazi |
Telesight: https://askubuntu.com/questions/474549/got-nodata-issue-nodata-does-the-network-require-authentication << nasty ISP proxy? 1st or 2nd answer should resolve it. |
| 21:31 |
Telesight |
@sfan5 Yes |
| 21:33 |
Telesight |
@erstazi I have to find that out ... |
| 21:42 |
|
makayabou joined #minetest |
| 21:43 |
makayabou |
hello, sorry i couldn't find info elsewhere: how can i retrieve schematic's raw data (at least size) from .mts file ? |
| 21:45 |
sfan5 |
https://github.com/minetest/minetest/blob/master/src/mapgen/mg_schematic.cpp#L253 |
| 21:45 |
sfan5 |
this is the function that loads schematics, it should give you enough info |
| 21:46 |
makayabou |
thanks for the link, I never dare look inside source code when i don't find info in Lua Api doc.. |
| 21:47 |
p_gimeno |
https://dev.minetest.net/Minetest_Schematic_File_Format |
| 21:47 |
p_gimeno |
that's a bit more human-readable :) |
| 21:56 |
makayabou |
Thank you that's a bit more me-no-dev readable.. But it is a bit too complicated for me.. I had tried first to catch minetest.deserialize("fullpath.mts") but nothing. |
| 21:57 |
makayabou |
After trying to read your docs, i tried to get fullpath.mts[u16] then I realized it was stupid.. I don't even know what are big-endian byte and i don't know how to get to them... |
| 21:58 |
makayabou |
tried print(dump(schematic_file["u16"])).... |
| 21:58 |
p_gimeno |
makayabou: you'd need to use io.open on the file and read a few bytes from it into a string |
| 21:59 |
makayabou |
ah yes i see.. |
| 22:00 |
p_gimeno |
in the string, the first 4 bytes should be "MTSM", the next two bytes would always be 0 and 4, the next two bytes give the size X, etc. |
| 22:01 |
|
Jinx joined #minetest |
| 22:02 |
p_gimeno |
makayabou: if you read the first 12 bytes into a string called s, this will give you the size X: s:byte(7)*256 + s:byte(8) |
| 22:02 |
|
Silizium joined #minetest |
| 22:02 |
p_gimeno |
similarly the sizes Y and Z can be obtaining by changing 7 and 8 to 9 and 10 for Y and 11 and 12 for Z |
| 22:06 |
makayabou |
p_gimeno thanks for all that, I'll try |
| 22:08 |
p_gimeno |
if you have lua 5.3, decoding is somewhat simpler, but then you lose compatibility with 99% of the installations :) |
| 22:08 |
sfan5 |
100% actually, minetest can not be built with lua 5.3 |
| 22:09 |
p_gimeno |
oh oops |
| 22:19 |
|
Dr-Frankenstone joined #minetest |
| 22:21 |
MinetestBot |
[git] Niwla23 -> minetest/minetest_game: Mapping kit recipe: Use "group:stick" instead of "default:stick" eaf6eac https://git.io/fjvFL (2019-03-18T22:20:24Z) |
| 22:36 |
|
mathBrain joined #minetest |
| 22:50 |
makayabou |
p_gimeno: I don't get the *256, it gives me a hudge result.. I don't know how to read only first 12 bytes of file. I can't understand anything with output of bytes, I can't see MTSM in the first 4, ... I tried to open the file with "b" option but it's not better.. |
| 22:51 |
p_gimeno |
makayabou: sounds like it's not a .mts file you're reading if it doesn't begin with MTSM |
| 22:52 |
p_gimeno |
makayabou: do you have a link to an example file you're trying to read? |
| 22:53 |
makayabou |
The file is okay when using minetest.place_schematic(pos,filename,...) |
| 22:54 |
makayabou |
It's more I really don't know how to write lua code and code in general, just trying to learn, and I should have make a mistake. |
| 22:55 |
p_gimeno |
makayabou: this is an example .mts file: https://paste.scratchbook.ch/view/c683fb6f |
| 22:55 |
makayabou |
I created local s = io.open(filename,"r"):read() |
| 22:56 |
makayabou |
then should print(s:byte(7)*256+s:byte(8)) return me the x size of mts ? |
| 22:56 |
sfan5 |
no |
| 22:56 |
p_gimeno |
if it's a real mts, yes |
| 22:56 |
sfan5 |
you need to read things from the file first |
| 22:57 |
sfan5 |
nevermind |
| 22:57 |
sfan5 |
you did |
| 22:57 |
sfan5 |
does :read() do the same as :read("*all") ? |
| 22:59 |
|
SanskritFritz joined #minetest |
| 22:59 |
makayabou |
https://paste.scratchbook.ch/view/25252483 |
| 23:01 |
diemartin |
I think no arg is "*l" (read a line) |
| 23:01 |
p_gimeno |
makayabou: try read(12) instead of read() |
| 23:03 |
p_gimeno |
https://paste.scratchbook.ch/view/d6e53e81 worked as expected for me |
| 23:03 |
diemartin |
https://www.lua.org/manual/5.1/manual.html#pdf-file:read |
| 23:06 |
p_gimeno |
also, it's not good style to leave the file open :) |
| 23:07 |
makayabou |
Yes it works! read() was not good, it's ok with "*all" and didn't try yet with 12. |
| 23:07 |
makayabou |
Yes, i close it after |
| 23:08 |
makayabou |
diemartin: yes, obvious after I get it ! |
| 23:08 |
p_gimeno |
well, you don't need to read the whole file into memory just to get the size, it's a waste of memory |
| 23:08 |
p_gimeno |
you only need the first 12 bytes |
| 23:09 |
makayabou |
thanks everyone, I learned a lot of things with it and it's a big step for my project ! |
| 23:09 |
makayabou |
yes I will use read(12) |
| 23:09 |
p_gimeno |
!next |
| 23:09 |
MinetestBot |
Another satisfied customer. Next! |
| 23:09 |
diemartin |
Yw |
| 23:10 |
makayabou |
Totally! |
| 23:17 |
p_gimeno |
is there any interest in animated chests? |
| 23:19 |
kaeza |
Yes. |
| 23:20 |
p_gimeno |
from what I've seen so far, it seems that an animated model suffices, no changes to the code would be needed |