IRC logs for #openttd on OFTC at 2025-09-11
⏴ go to previous day
02:13:35 *** Wormnest has quit IRC (Quit: Leaving)
03:24:02 *** WormnestAndroid has quit IRC (Remote host closed the connection)
03:24:06 *** WormnestAndroid has joined #openttd
03:32:57 *** dh1 has quit IRC (Ping timeout: 480 seconds)
03:57:53 *** Zathras_11 has joined #openttd
04:01:25 *** Zathras has quit IRC (Ping timeout: 480 seconds)
04:38:04 <DorpsGek> - Update: Translations from eints (by translators)
04:56:32 *** dh1 has quit IRC (Ping timeout: 480 seconds)
05:09:52 *** toktik has quit IRC (Remote host closed the connection)
06:07:33 *** Flygon has quit IRC (Remote host closed the connection)
06:40:54 *** gelignite has joined #openttd
07:42:31 <LordAro> first thing i've done at work this morning is to split out a load of commits from 3 separate (stalled) branches into a single "various fixes" MR
07:42:36 <LordAro> it contains 17 commits
07:46:19 <peter1138> I've moved a helper class from one classlib to another so that it can be reused.
07:46:33 <peter1138> Still feels like the wrong place :(
07:46:41 <peter1138> Maybe I should just throw exceptions everywhere.
07:47:37 <peter1138> (It's just a helper class to return the state of an operation with more detail than just true/false)
07:53:23 <LordAro> if there were a single file version of postgres, i would
07:53:35 <LordAro> (no, pglite doesn't count)
08:00:27 <andythenorth> I have formatted things in google sheets
08:12:27 <peter1138> My washing machine's 30 minute quick wash lasted 45 minutes this morning.
08:21:23 *** orudge` has joined #openttd
08:21:23 *** ChanServ sets mode: +o orudge`
08:21:58 <andythenorth> was it lunch yet?
08:22:39 <peter1138> It was pain-au-chocolat time, at least.
08:29:21 <andythenorth> probably time for a babybel
08:37:13 <andythenorth> more for me then
09:00:14 <peter1138> Hmm, should I get a new Garmin... I don't need one, but...
09:01:15 <LordAro> probably a lot of Wahoo's going cheap at the moment
09:01:17 <peter1138> Slightly larger screen.
09:01:40 <LordAro> because of the whole GPS snaffu
09:01:42 <peter1138> I've not paid much attention to Wahoo.
09:02:54 <LordAro> GPS time rolled over and broke things
09:04:44 <peter1138> Now that the Garmin 8xx model has the same buttons as the Garmin 5xx I'm tempted to go for an upgrade.
09:05:24 <peter1138> With the 530/830 is was buttons or touch screen. The 850 now has the same buttons as the 550.
09:05:33 <peter1138> Buttons good wearing gloves.
09:06:15 <LordAro> Heiki: huh, guess it wasn't that one then
09:07:03 <peter1138> Hmm, battery life is worse though.
09:07:07 <LordAro> at least, not directly
09:07:33 <peter1138> Though maybe not worse than a 3 year old unit.
09:07:47 *** jfkuayue has joined #openttd
09:09:08 <peter1138> I wonder if they'll do a solar version, or if they gave up on that.
09:09:20 <jfkuayue> The 2012 SLC camera still takes photos of better quality than the 2024 bridge camera...
09:10:03 <jfkuayue> (Canon 650D vs Panasonic FZ82D)
09:10:42 <kuhnovic> peter1138: Won't work where you live
09:10:58 <peter1138> kuhnovic, it will for about a week or two.
09:11:58 <jfkuayue> But heavier, for sure
09:12:07 <peter1138> But also, that would be one of its problems, the solar was only enough to stop it draining so fast.)
09:12:15 *** reldred has joined #openttd
09:12:15 <reldred> I found my Garmin foretrex 401 today
09:12:32 <reldred> Bit of a crude unit but it spits out numbers
09:12:36 <peter1138> Both of those camera types are way better than a computer webcam though.
09:13:12 <peter1138> I just want a webcam with a decent sensor and lens :o
09:16:05 <reldred> There’s a couple decent ones on the market now but a lot of folks are just using hdmi capture cards and connecting whole ass cameras
09:16:28 <reldred> which feels a bit over the top
09:17:10 <reldred> also bridge camera, damn, that’s a term I haven’t heard in a very long time
09:18:42 <peter1138> I tried using my DSLR with an HDMI capture device, but...
09:19:34 <jfkuayue> 7kg carry-on baggage limit... including the left one...
09:19:36 <peter1138> I don't have a power adapter so the battery runs out quickly, the mini HDMI socket is flakey, the output is not clean so needs to be cropped, and there's a dead pixel which is noticable when used in video mode. (In a photo it disappears as noise.)
09:20:51 <jfkuayue> Anything with batteries has to be carry-on. While I have many such devices...
09:22:27 <peter1138> I'm not sure I would trust baggage with cameras anyway.
09:22:31 <jfkuayue> Theoretically I can check in the camera without batteries. But it is said they deal with those suitcases violently.
09:23:07 <jfkuayue> And I want to take photos of planes at airports
09:23:21 *** orudge` has quit IRC (Quit: Goodbye.)
09:24:10 <peter1138> I also want a Garmin watch but cannot decide what.
09:24:25 <peter1138> They don't have cameras though.
09:30:28 <jfkuayue> The smartest watch I had worn was a electronic watch
09:30:31 <reldred> My camera isn’t great, an old 2nd hand Olympus em5mk2. I’ll probably swap to Fuji or Sony next year. Though for the Sony system I want I could go Fuji medium format which is stupid money. The Fuji x system is a bit more reasonable to buy into. Or I could get a Panasonic g9m2 and ride out micro four thirds for a bit longer and keep using my two pro lenses
09:30:51 <jfkuayue> * just a plain electronic watch with timer and stopwatch function
09:31:09 <reldred> Or I could buy a Shen Hao 6x17cm panoramic bellows camera
09:31:21 <reldred> But that would be a little silly
09:31:32 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
09:32:29 <reldred> And 120 slide film is expensive
09:32:39 <reldred> And I’d still need a scanning solution
10:45:02 *** gelignite has joined #openttd
11:26:32 <peter1138> Use a digital camera to take a photo of the slide.
11:27:39 <peter1138> Remember when a scanner was something people just had? They were cheap enough that they'd be bundled with computers and things, because everyone needed a scanner for their photos.
11:28:04 <peter1138> I used to have a huge SCSI scanner hooked up.
11:52:30 <peter1138> Still wonder how best to determine if a rail or road type is unused.
11:52:47 <peter1138> Scanning 4096x4096 tiles every tick is not my preferred option :D
11:53:25 <peter1138> Could potentially track it alongside infrastructure cost tracking.
11:53:40 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
11:54:28 <peter1138> (Could almost even just use the infrastructure cost tracking, except roads don't need to have an owner.)
11:57:33 <ahyangyi> Put it into some kind of global statistics?
11:57:44 <ahyangyi> Which might be useful on its own.
11:58:07 <ahyangyi> I mean, a player might be interested in knowing how many tiles of a certain road type has been built.
11:58:59 <jessicathegunlady> ahyangyi: I mean, it's still a question of *how* you get that data in the first place.
11:59:20 <jessicathegunlady> I have some ideas, but I'm also just not a developer experienced with C++ or the OTTD codebase.
11:59:22 <ahyangyi> That's just the same method as instructure cost tracking
11:59:39 <ahyangyi> Reuse the code but do not associate it with player IDs
11:59:59 <jessicathegunlady> Oh, I see what you mean.
12:00:55 <jessicathegunlady> May depend on the use case and potential performance implications, though...
12:01:57 <_jgr_> It sort of depends on what this information is going to be used for. Mostly likely finding unused types every tick is not actually necessary.
12:02:08 <jessicathegunlady> I was meaning to say that, yeah.
12:02:32 <ahyangyi> _jgr_: On the other hand, if you already have the count, looking at 64 numbers every tick is pretty cheap as well.
12:02:56 <ahyangyi> It's very likely that the cheapest way to have the count is to have it all the time
12:03:12 <ahyangyi> So that you only do the bookkeeping when building/destroying roads.
12:05:29 <jessicathegunlady> ahyangyi: An array counting roads placed by each road type that gets filled/removed from when loading the map and placing/deconstructing roads seems sensible to me. But I still only know C#, and don't know how much of a headache it would be to implement for this game's code.
12:09:17 <peter1138> _jgr_, "every tick" is indeed arguable, though whatever I do it needs to be in sync.
12:10:19 <peter1138> Potentially it could be something that happens only when needing to allocate a slot if all slots are occupied.
12:10:47 <peter1138> _glx_, yes, except for roads.
12:11:47 <peter1138> It may be a be a case of having separate storage that tracks unowned pieces, which would avoid double-tracking things.
12:12:02 <michi_cc> "Easy" way is just to never deallocate?
12:12:22 <peter1138> michi_cc, I need to be able to reuse slots.
12:12:40 <peter1138> (You can probably all work out what I've been doing by now...)
12:13:47 <michi_cc> Eh, if many of the possible rail/road types in a game are never actually placed on the map by players, it might just be fine 😛
12:14:09 <_glx_> I think the idea is to load more than 64, but only have 64 active, but I can be wrong
12:15:06 <peter1138> Now, in my opinion that means there'll be too my types available, but that's not the point.
12:15:40 <michi_cc> Hierarchical railtype dropdown menu when? /s
12:15:54 <michi_cc> With categories by badges?
12:17:15 <peter1138> Well, if all the different xUSSR types could be grouped, for instance, that wouldn't be bad.
12:17:45 <peter1138> But now that the toolbar menus support staying open, a huge railtype list is not so impossible to use. Still a bad UX though.
12:56:28 *** jacky39xbox has joined #openttd
12:56:28 <jacky39xbox> Just out of absolute curiosity, how hard would a Console port of the OTTD game be?
12:56:55 <jacky39xbox> I presume insanely difficult and in no way rewarding for anyone involved
13:02:12 <jacky39xbox> LordAro: Aye as I thought. Tbf I wouldnt really care anyway as I am absolutely nailed on to get a PC Christmas or New year
13:02:31 <jacky39xbox> I try to play on my phone but the display is just too tiny lol
13:05:02 <peter1138> Well, a console port isn't much use for a phone I suppose.
13:12:31 <ahyangyi> jacky39xbox: Unless you consider Steam Deck I guess
13:29:08 <peter1138> michi_cc, and not deallocating means using up all the slots in multiplayer becomes a form of griefing... :)
13:29:34 <peter1138> (It still kinda could be, while a bad company exists.)
13:29:47 <peter1138> As someone say, new gameplay meta: filling up the slots...
13:31:13 *** longtom_jr has joined #openttd
13:31:13 <longtom_jr> jfkuayue: You do get a lot more zoom for the package with this bridge camera than you would get out of the SLR with that lens (right?)
13:32:18 <longtom_jr> Because of the smaller image sensor on the bridge camera. That at least make it useful for compact (and hobby) bird photography
13:33:57 <peter1138> If the sensor is smaller then its sensitivity is potentially not going to be as good, and smaller more denser sensors can suffer from noise.
13:37:23 <peter1138> Maybe I should replace my PC with a Pi 500. It's ARM so must be good ;)
13:40:14 *** toktik has quit IRC (Remote host closed the connection)
13:42:17 *** toktik has quit IRC (Remote host closed the connection)
13:48:51 <jacky39xbox> ahyangyi: I looked into those, they seem expensive and I am unsure how worth it would be without a home PC 1st
13:49:19 <peter1138> I think the experience of playing on a tiny screen with thumb controls would be suboptimal.
13:49:28 <peter1138> THe screen resolution isn't that great either.
13:51:58 <jessicathegunlady> I think it works fine with peripherals. Are we talking in regards to OpenTTD or games generally, though?
13:54:15 <yiffgirl> jacky39xbox: got ours for cheap from a friend of the family and it instantly became my favourite console ever. i don't even like steam but it's seriously fantastic. plays just about anything I've thrown at it flawlessly and runs like a dream
13:54:15 <yiffgirl> all that glazing aside, playing openttd on it doesn't sound like a fun experience
13:58:43 <jessicathegunlady> Yeah. I find it hard to imagine having any selection method other than the mouse... So much moving around and clicking.
13:58:46 <peter1138> Probably better than a phone, but I doubt its worth buying one just for it :)
14:11:24 <andythenorth> michi_cc: "hi" 👀
14:13:30 <peter1138> Useless messages on Discord.
14:15:32 <ahyangyi> I would use more IRC if I have set up a bouncer 🙁
14:44:49 <jacky39xbox> jessicathegunlady: If you rigged to one of the sticks and maybe a button I suppose it might work
14:47:20 <peter1138> ahyangyi, that's not quite what I meant :)
14:48:21 <peter1138> For instance, if andythenorth's picture is a response to #14599, then a good place to put that would be on there.
14:52:17 <ahyangyi> peter1138: Ah, I wasn't directly responding to that. It was just a reminder that, I have been annoyed by not having a proper bouncer for quite a while and too lazy to do anything about it.
14:54:39 <andythenorth> pff yes I could add it to #14599
14:55:24 <andythenorth> I kind of get grumpy about the internet turning up and scrawling their own UI design opinions over what is supposed to be an amusing provocation 😛
15:43:02 <_glx_> UI discussions on GitHub are not that bad, just filter between useful and useless
15:51:56 <peter1138> There's always the suggestions section on tt-forums ;-)
15:52:18 <peter1138> Although... orudge, did PHPBB never gain a nice easy to use image hosting/inserting system...?
16:10:47 <andythenorth> I just drag and drop to the text area
16:10:57 <andythenorth> 'nice' would be a strong word, but it works well
16:14:02 <peter1138> You can't do that with tt-forums.
16:14:17 <peter1138> The image has to be hosted elsewhere.
16:15:42 <peter1138> Okay, I have 131 railtypes and 84 roadtypes loaded.
16:15:50 <andythenorth> do you need more?
16:15:57 <andythenorth> I could auto-generate a grf
16:16:00 <andythenorth> what's the limit? 😛
16:16:02 <peter1138> Probably, that's barely scratching the surface.
16:16:34 <peter1138> RailType/RoadType are still uint8_t for now, so 255.
16:16:49 <peter1138> But if that's changed to uint16_t, then 65535.
16:17:25 <peter1138> Ridiculous, but might quench the thirst...
16:18:26 <peter1138> but as _glx_ said, only 64/63 on the map at once time, and that's across all companies.
16:19:03 <peter1138> (Per-company would make company takeovers and bankruptcy painful)
16:19:32 <_glx_> map array itself would be an issue
16:20:25 <_glx_> checking owner+road type on the tile itsel
16:20:49 <_glx_> versus only owner or only road type
16:22:19 <peter1138> Ah yes, more complicated indeed.
16:24:40 <peter1138> Oh, I should probably exclude Iron Horse from my testing. Not because of the rail types, but it breaks AIs a bit.
16:26:22 <peter1138> Ah, that should help.
16:27:24 <peter1138> AroAI says "Sleeping because there is nothing to build." Hmm
16:38:37 <peter1138> LordAro, yeah, there does seem to be pattern with that issue.
16:42:52 <peter1138> Also, Iron Horse has some railtypes that are not assigned, but that might be some compatibility.
16:43:46 <peter1138> dumpinfo railtypes shows 3 with a GRFID, and 3 without.
16:46:38 <peter1138> One of them is hidden for whatever reason.
16:47:32 <peter1138> I guess it is because it's using the default rail graphics.
16:55:00 <peter1138> Did you know that in order for changes to take effect, the game must be restarted...?
17:43:19 *** Wormnest has joined #openttd
17:53:08 <peter1138> Hmm, that's not good. Tile with both road and tram types as invalid :o
18:09:59 <peter1138> Ah, not saving trams correctly, so that's that savegame trashed.
18:18:17 <andythenorth> in the Iron Horse on bananas, the railtypes are weird
18:18:27 <andythenorth> I messed with ELRL, which was unwise
18:21:44 <peter1138> I've got a badge-test version.
19:06:13 *** mindlesstux is now known as Guest26336
19:06:14 *** mindlesstux has joined #openttd
19:07:19 *** Guest26336 has quit IRC (Read error: Connection reset by peer)
19:27:51 <peter1138> (If it's what I think, it may awkward.)
19:41:26 <peter1138> Bloody hell, requiring 10+ levels is at the point of "don't both" really.
19:43:19 <peter1138> "don't bother" I mean.
19:44:20 <peter1138> Anyway, CB24 is not used during the height test, because the station doesn't (cannot) exist yet.
19:44:41 *** WormnestAndroid has quit IRC (Read error: No route to host)
19:45:42 *** WormnestAndroid has joined #openttd
19:48:00 <peter1138> Maybe CB24 can be used.
19:48:29 <peter1138> I nearly named something fs14607.
19:48:52 <peter1138> We have not used that for quite some time.
19:50:11 <peter1138> Okay, using CB24 seems to work, at least for this one :o
19:51:13 <peter1138> Land info variable will return incorrect data, though.
19:58:26 <rito12_51026> peter1138: The tower is high
19:58:39 <peter1138> The rest of it isn't so much.
20:03:01 <rito12_51026> I haven't played with tile types
20:06:59 <rito12_51026> The error message `Bridge is too low for station` could contain the required height
20:07:43 <peter1138> If this station is intended to be one specific size, then you could limit it to that and use a static layout instead.
20:08:10 <peter1138> That would perform better and allow the different parts to have appropriate minimum heights.
20:09:45 <peter1138> Also you should crop the sprites properly, they should generally occupy on the area of the tile they are on.
20:10:34 <peter1138> Is this station rendered from a 3D model?
20:10:44 <peter1138> (Doesn't look like it)
20:11:11 <rito12_51026> no it is generated from png file
20:11:19 <peter1138> I wish I could draw, then I'd be able to write up instructions on how sprites should be properly cropped.
20:11:39 <peter1138> Because this is not correct.
20:12:06 <andythenorth> drawing is just counting pixels
20:12:41 <rito12_51026> peter1138: I'm not the sprite author but it is probably my foult
20:15:28 <peter1138> Who ever had the idea that sprites should just be cropped into 64-pixel wide overlapping chunks?
20:15:36 <rito12_51026> peter1138: I haven't really considered the best approach for station buildings and have used the code I had for more complex stations (from that station class).
20:17:33 <andythenorth> I had an idea once
20:17:43 *** toktik has quit IRC (Remote host closed the connection)
20:17:59 <peter1138> Is it "don't show peter1138 anything, he'll just be toxic and criticise it"?
20:18:27 <andythenorth> I don't think it was that one
20:18:34 <andythenorth> doesn't sound familiar
20:18:56 <rito12_51026> criticising is good and important
20:19:35 <peter1138> In this instance it would be helpful if I could properly describe what I mean instead though.
20:19:35 <rito12_51026> peter1138: How do I crop it correctly?
20:20:55 <_glx_> imagine a building using a 2x2 space, it should consist of at least 4 sprites, 1 for each occupied tile
20:22:26 <rito12_51026> I have 10 files for 2x5 building
20:22:47 <_glx_> yup 2x5 building is 10 sprites
20:23:47 <rito12_51026> _glx_: But they probably shouldn't look like this, right?
20:24:26 <peter1138> andythenorth, yours is a different case, they are basically standlone building abutting.
20:25:08 <peter1138> Cropping example from NewStats
20:25:34 <peter1138> Although this might be kinda extreme.
20:26:11 <peter1138> (As this one also has to account for trains running on line)
20:26:34 <rito12_51026> It shows the point
20:27:59 <peter1138> If I could draw I could do it better. Let me try :D
20:28:16 <_glx_> basic cropping is following the tile limit while keeping the height as it is
20:28:21 *** Wormnest has quit IRC (Quit: Leaving)
20:28:54 <_glx_> so the building consist of multiple columns
20:29:42 <rito12_51026> so a mask should be use in cropping function?
20:31:21 <_glx_> hmm in NewStats bottom of building is part of platform ?
20:32:46 <peter1138> So actually when marked like this is does like like MB's style of cropping.
20:33:17 <peter1138> In theory it should be possible to design 4 cropping templates, and "automatically" apply them based on the location of the tile.
20:34:22 <peter1138> They are: top corner, left north edge, right north edge, and the rest are just cropped to cover only a tile, nothing vertical.
20:34:49 *** dh1 has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)
20:35:21 <peter1138> The way andythenorth draws things is different, it's basically one building per tile, and in that case it's fine to literally just place the building on the tile without cropping -- it's how towns are built up after all.
20:35:37 <peter1138> (Although multi-tile town houses also need this cropping treatment :))
20:36:15 <peter1138> I should've drawn two more purple lines, on the far west and east sides.
20:37:06 <peter1138> Anyway, using this cropping pattern nothing will overlap, and nothing extends beyond the left and right edges of a tile (though yours aren't anyway)
20:37:12 <_glx_> the most important point is a tile "behind" should never draw on the "front"
20:38:03 <michi_cc> I guess the main reason to use a different cropping pattern (like andy) is if you re-use a tile in multiple position, so you need it to be "complete".
20:38:09 <peter1138> If you enable transparency mode with x, you'll see where the sprites overlap as well. When it's "correctly done" there'll only be one layer of shading.
20:38:58 <peter1138> michi_cc, yeah, his buildings don't overlap across tiles, so as is is fine.
20:39:12 <peter1138> My vertical lines aren't even vertical :D
20:40:19 <peter1138> So my mapped rail/roadtypes patch was mostly working, then I fixed something, and now it crashes in the title screen when I configure NewGRFs.
20:41:31 <peter1138> (ReloadNewGRFData() is erasing state that shouldn't be erased, or should be recreated. It's just "funny" how it was working before I fixed something else.)
20:42:14 <_glx_> intro game is not supposed to have anything newgrf related
20:42:53 <peter1138> No, but ReloadNewGRFData is called anyway.
20:43:15 <_glx_> so if you are actually injecting newgrf stuff in it on reload it won't like that
20:44:09 <peter1138> When you change the newgrf configuration, things like the default railtypes and roadtypes are reinitialised.
20:44:16 <peter1138> This affects the title game.
20:44:43 <_glx_> they accidentally got a different index ?
20:45:35 <peter1138> I am storing state in RailTypeInfo/RoadTypeInfo, so that gets lost.
20:45:51 <rito12_51026> Why is sprite: 1420 different for each rail type?
20:46:24 <peter1138> Sprite 1420 is sprite 1420.
20:46:41 <peter1138> If it's different by railtype then it'll be a different sprite.
20:47:56 <peter1138> The ground sprite of stations depends on the railtype, so if you use sprite 1420 as the ground sprite, it'll be changed for monorail and maglev.
20:48:03 <peter1138> It's no longer sprite 1420 though :)
20:49:25 <rito12_51026> How can a station know If sprite 1420 is 1420 or not?
20:52:38 <_glx_> station handling does some magic around 0x42D
20:53:58 <peter1138> I can't remember if there's a way to turn off that handling.
20:54:20 <rito12_51026> So it can prevent this from happening
20:54:30 <peter1138> Given that one of MB's non-track stations has the hall-of-mirrors, probably not.
20:55:25 <peter1138> _glx_, problem is the special handling is applied even if the sprite isn't 0x42D.
20:56:52 <_glx_> oh I missed the comment in this PR
20:57:10 <peter1138> Honestly if OpenTTD only applied the offset to 0x42D/0x42E, and left other sprite as is, what would break?
20:58:10 <peter1138> Actually I'm probably misremembering how the magic works.
20:58:55 <peter1138> Yeah, 42D is the platform sprite :o
20:59:27 <peter1138> Ignore everything :)
21:00:01 <peter1138> Static layout would help wit 14607
21:00:21 <peter1138> #14607, but most others are used to doing it the other dynamic way.
21:01:17 <_glx_> if only station feature was added after industries/objects, but sadly it was not
21:02:03 <peter1138> How many increment operators can I put in the last part of a for () loop?
21:02:05 <_glx_> luckily nml hides a lot of the weirdness
21:02:29 <peter1138> `for (uint j = 0; j != plat_len; ++j, tile += tile_delta, ++it)`
21:02:42 <peter1138> This seems to be a bit much.
21:02:45 <_glx_> as many ops as you want `,` is infinite
21:03:02 <peter1138> Yes, I'm asking more about code-clarity :)
21:03:45 <_glx_> all increment in a single location help clarity
21:27:22 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:27:47 <peter1138> MNT Reform is not exactly... sleek.
21:32:25 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:32:34 <peter1138> Anyone infiltrating Master Hellish's game?
21:34:27 <peter1138> Hmm, I wonder how often I need the reverse lookup.
21:34:42 <peter1138> Oh, probably quite a lot :o
continue to next day ⏵