IRC logs for #openttd on OFTC at 2023-08-08
00:15:55 *** D-HUND is now known as debdog
00:21:41 *** FelixActually[m] has joined #openttd
00:22:56 <FelixActually[m]> Hi. Can docks not be built in canals? If not, is there any way to have ship transport work inland?
00:28:47 <_glx_> raise land
00:29:22 <_glx_> docks need one tile of water and the other on sloped shore
00:30:42 <FelixActually[m]> Can I do this on a canal?
00:31:15 <FelixActually[m]> And do I need more than one tile width if so?
00:53:45 <_glx_>
00:55:10 <_glx_> one part on raised tile, one part on water, and a free water tile in front of the dock
01:09:00 <FelixActually[m]> Thanks
01:09:56 <FelixActually[m]> Also I thought that the conditional jump in the orders list would let me have a vehicle half-load (for example) at one station and then move to another to load to full, but that doesn't seem to work. Is that possible?
01:10:28 <_glx_> it always load as much as possible
01:14:10 <Eddi|zuHause> you can't make a vehicle load less than what is available, you can only make it return immediately if it's not full (or empty) enough
01:15:23 *** luffy[m] has quit IRC ()
01:19:56 <FelixActually[m]> Perhaps a timeout would be useful for loading
01:20:37 <FelixActually[m]> So it waits for a full load for a specified amount of time, and then if it's still not fully loaded it leaves anyway
01:21:19 <Eddi|zuHause> yes, but the order GUI is heavily overloaded with features, and needs some cleanup
01:23:15 <FelixActually[m]> That's fine
01:23:30 <FelixActually[m]> I hope that suggestion can be implemented at some point though
01:25:22 <Eddi|zuHause> it works like that in transport fever. you can set minimum and maximum wait times
01:28:19 <FelixActually[m]> Do you know about the libre reimplementation of Locomotion by the way/
01:28:34 <FelixActually[m]> Unfortunately it currently requires the original game's data
01:28:59 <Eddi|zuHause> nothing that particularly interests me
02:07:43 *** royills[m] has quit IRC ()
02:13:25 *** Wormnest has quit IRC (Quit: Leaving)
02:59:07 *** D-HUND has joined #openttd
03:02:45 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:03:03 *** D-HUND is now known as debdog
03:37:12 <yemtron> the bots are alive <a:Monka:459189616033923083>
03:44:24 *** playback2396[m] has quit IRC ()
03:49:21 *** tokai|noir has quit IRC (Quit: c('~' )o)
04:02:54 *** keikoz has joined #openttd
04:10:35 *** grag[m] has quit IRC ()
04:11:45 *** jeeg[m] has quit IRC ()
04:13:35 *** osvaldo[m] has quit IRC (Quit: Client limit exceeded: 20000)
04:13:45 *** paulus[m] has quit IRC ()
04:14:15 *** phil[m] has quit IRC (Quit: Client limit exceeded: 20000)
04:24:08 *** felix has quit IRC ()
04:24:22 *** felix has joined #openttd
04:35:45 *** Elysianthekitsunesheher[m] has quit IRC ()
04:35:56 *** Flygon has joined #openttd
04:37:06 *** hnOsmium0003 has quit IRC (Quit: WeeChat 3.8)
08:33:06 *** SpComb has quit IRC (Ping timeout: 480 seconds)
08:36:06 *** SpComb has joined #openttd
09:21:59 *** tuxayo has quit IRC (Quit: Client limit exceeded: 20000)
10:09:56 <truebrain> lunch? I think so.
10:21:51 <LordAro> yes
10:28:36 <FLHerne> too early for lunch, I haven't even had breakfast yet :-(
10:28:41 <FLHerne> brunch?
10:34:23 *** sittinbythefire has joined #openttd
10:34:24 <sittinbythefire> It's 3:30am for me, should I have Dinnfeast or Brinner?
10:40:19 <LordAro> I've had breakfast at 3:30 before
10:42:29 <FLHerne> Dinnfeast seems more consistent, it would only be brinner if you were doing 'Memento' and passing through time backwards
10:42:49 <dwfreed> currently having dinner at 5:42 AM
10:43:01 <dwfreed> because I'm awake at night and sleep during the day
10:49:30 <alfagamma_0007> That's one fucked up schedule for sure
10:53:00 <sittinbythefire> I guess when you work the vampire shift you're feeding schedule becomes a little...different...
11:12:59 *** gelignite has joined #openttd
11:15:49 <DorpsGek> [OpenTTD/OpenTTD] npabisz commented on issue #10887: [Bug]: Multiplayer server listing missing servers
11:18:58 <truebrain> we should enable timestamps by default
11:19:00 <truebrain> it is annoying πŸ˜›
11:20:04 <LordAro> by all means
11:21:29 <peter1138> I'm having salad again.
11:21:48 <peter1138> I thought it was breakfast, but I forgot I actually had bran flakes this morning
11:22:51 <peter1138> Ergh, miserable weather
11:23:20 <alfagamma_0007> Relatable
11:23:33 <alfagamma_0007> It's raining day and night here
11:23:51 <peter1138> Hmm, random German language press agency account followed me on the fediverse.
11:24:19 <alfagamma_0007> Fediverse?
11:25:00 <peter1138> Yes
11:25:18 <peter1138> The activitypub federated network that is commonly miscalled "mastodon"
11:27:50 <peter1138> > Pressenza ist eine internationale #presseagentur, die sich auf #nachrichten zu den #themen #frieden und Gewaltfreiheit spezialisiert hat.
11:27:53 <peter1138> Bless you πŸ™‚
11:28:08 <peter1138> > press number is an international #press agency specializing in #news on #peace and #nonviolence.
11:53:36 *** _aD has joined #openttd
11:59:16 *** _aD has quit IRC (Quit: leaving)
12:13:58 <andythenorth> peter1138: Can’t build on some slopes though πŸ˜› Makes eye candy harbour building require objects
12:15:40 <peter1138> That's a limitation that could be fixed in the station specs...
12:15:43 <talltyler> Maybe we can just allow non-track-tile stations on one-corner-raised slopes?
12:16:19 <peter1138> Or simply allocation station tiles on slopes, whether it is tile or non-tile.
12:16:43 <peter1138> Words
12:17:43 <talltyler> Yeah, I guess track tiles would be fine too
12:18:01 <talltyler> Is there a reason this restriction exists?
12:18:27 <peter1138> Basically there's no original graphics for it.
12:19:30 <peter1138> NewGRF Stations was designed so that you could play without the NewGRF loaded, and the station would fall back to a default style.
12:20:05 <peter1138> That is a silly thing now, looking back, but it was done before we even saved NewGRF settings in the game.
12:20:16 *** Wolf01 has joined #openttd
12:22:18 <Eddi|zuHause> NewGRF stations have a lot of weird things
12:22:56 <Eddi|zuHause> one of them is that non-track station tiles still have a track.
12:23:07 <Eddi|zuHause> and that track cannot end at a raised level
12:23:13 <_glx_> legacy of being the first feature with buildings
12:25:18 <_glx_> spritelayouts as property, the weird cargo amount stuff (most likely copied from vehicles)
12:26:07 <DorpsGek> [OpenTTD/OpenTTD] Mons1990 commented on issue #10450: [Bug]: Wrong signal spacing while using autoplacement feature
12:32:54 <DorpsGek> [OpenTTD/OpenTTD] ldpl commented on issue #10450: [Bug]: Wrong signal spacing while using autoplacement feature
12:39:04 <DorpsGek> [OpenTTD/OpenTTD] merni-ns commented on pull request #11170: Feature: Count the number of towns and cities in town directory
12:43:32 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on pull request #11170: Feature: Count the number of towns and cities in town directory
12:55:08 *** gelignite has quit IRC (Quit: Stay safe!)
12:59:12 <locosage> hm, I just realized there shouldn't much problem to add "physical" trains that don't expand on diagonals as an option
12:59:16 <locosage> at least for newgrfs
13:02:10 <locosage> though it's probably hardcoded deep in movement logic
13:02:53 <locosage> but seems to be the only thing that needs changing
13:06:09 <andythenorth> I did test a patch once (can’t remember whose) for track station tiles on slopes
13:06:32 <andythenorth> Think it crashes due to disconnecting train or something
13:07:03 <andythenorth> Many years ago, details hazy πŸ˜›
13:09:58 <peter1138> I had a patch for curvy stations.
13:11:49 <Eddi|zuHause> that probably predated newgrf stations? :p
13:25:59 <peter1138> Not sure.
13:26:13 <peter1138> Probably before it hit trunk anyway.
13:41:36 <talltyler> I suspect a problem with track tiles on slopes is what happens if you remove the station tile but leave the track
13:42:22 <talltyler> Non-track tiles don’t have that problem, since if you remove the station there’s no track left
13:48:58 <FLHerne> stations on bridges would be nice :p
13:49:05 <FLHerne> my metro would be improved
13:56:49 <DorpsGek> [OpenTTD/OpenTTD] Mons1990 commented on issue #10450: [Bug]: Wrong signal spacing while using autoplacement feature
14:21:01 *** nielsm has joined #openttd
14:23:57 <yemtron> Good morning
14:24:37 <alfagamma_0007> late evening
14:24:42 <yemtron> :widdle_goblin:
14:25:25 <yemtron> Just got the dev environment set up for openttd! Hopefully I can help resolve a few bugs πŸ™‚
14:26:46 *** gelignite has joined #openttd
14:42:52 <Bouke> FLHerne: And I’d like some signals on those bridges as well while we’re at it
15:00:15 <FLHerne> Bouke: and signals in stations on bridges just to complete the set
15:00:27 <FLHerne> (and pointwork in stations)
15:00:37 <FLHerne> then I can model Cambridge or Gloucester
15:01:06 <Bouke> and s/bridge/tunnel/g
15:14:57 <peter1138> talltyler: I don't really see the issue... instead of a station tile on a slope, you have a rail tile on a slope.
15:23:05 <DorpsGek> [OpenTTD/OpenTTD] ldpl commented on issue #10450: [Bug]: Wrong signal spacing while using autoplacement feature
15:23:33 <talltyler> peter1138: But rail tiles aren’t flat on slopes, they slope down
15:23:58 <talltyler> So do they turn into a slope when the station tile is removed?
15:24:12 <peter1138> Oh! No, the point is that station tiles on slopes don't have to be flat on slopes either.
15:24:29 <talltyler> Huh, that would be a spec change indeed
15:24:42 <peter1138> A more useful spec change than keeping them flat.
15:26:00 <talltyler> Indeed. Graphics would be a problem though
15:26:19 <talltyler> I guess you’d need to enable it only for NewGRF stations that provide sloped graphics
15:27:13 <talltyler> Non-track tiles could be changed today though, right? Just allow them to be built flat on foundations, like objects?
15:30:20 <brickblock19280> why not?
15:34:42 <peter1138> Well, step 1) is to create default graphics and allow stations on slopes, step 2) is to extend newgrf specs to allow it.
15:35:11 <peter1138> Allowing non-track tiles to be flat on top of slopes means you are stuck in the future when you want to then add sloped station tiles.
15:39:00 <peter1138> And also, the flag that says "this station tile is blocked" is only ever checked once the tile is in place, not before building it.
15:40:06 <peter1138> That is probably fixable. We might even have enough free bits in the map array to store blocked status directly instead of having to look it up from the spec every tile.
15:40:29 <peter1138> But I'd rather see sloped station tiles than flat non-track station tiles on slopes.
15:53:01 <andythenorth> NotNewDocks for harbour tiles πŸ˜›
15:53:27 <andythenorth> Sloped stations for funiculars? πŸ˜›
15:54:29 <andythenorth> I can’t draw anything for a week or so but I could draw sloped stations in original style
15:55:15 <andythenorth> Not sure about the big arched shed…could we just do the simple platforms?
15:57:01 <peter1138> andythenorth: Just plain platforms works for me.
16:01:27 <andythenorth> 4 angles, but there’s symmetry?
16:02:00 <andythenorth> The ones on NE / NW facing slopes will be weird to draw πŸ™‚
16:28:19 <FLHerne> tbh, I'd prefer flat station tiles tiles (non-track, or track in slope direction) than sloped ones
16:30:05 <FLHerne> the former are useful when making stations on embankments/coastlines/multiple levels, whereas I find it hard to picture a sloped track station tile that doesn't look absurd
16:30:50 *** Wormnest has joined #openttd
16:32:29 <FLHerne> OTTD slopes are ridiculously steep, but there usually isn't much on the same tile to draw attention to it
16:43:09 <andythenorth> NewDocks for slopes πŸ˜›
16:47:55 <FLHerne> rail station tile that also works as a ship dock if it's adjacent to water tiles
16:48:57 *** gelignite has quit IRC (Quit: Stay safe!)
16:50:17 *** gelignite has joined #openttd
16:58:06 <brickblock19280> railstation that can be built on water
17:30:49 <belajalilija> Stations on - and | views would be way better imo
17:42:43 <yemtron> Getting to know the codebase! πŸ™‚
17:43:16 <peter1138> FLHerne: You can fake that with NewGRF and custom foundations
17:43:30 <peter1138> Well, for blocked tiles anyway
18:41:15 <peter1138> CPUs eh? Why bother...
18:43:50 *** gelignite has quit IRC (Quit: Stay safe!)
18:53:21 <peter1138> I miss those naive days when assumed the worst part of CPUs was IME...
19:01:27 <frosch123> new microcode fixes? let's see how many cpu models brick this time
19:02:50 <frosch123> but hey, log4j also was a trilogy
19:04:43 <jorropo> peter1138: recent one <> but less bad
19:06:12 <frosch123> that's amd, not intel
19:06:45 <frosch123> though it's probably part of the competition
19:07:05 <frosch123> are there any arm exploits yet?
19:07:30 <jorropo> yeah, variants of spectre and meltdown worked on the most high end chips
19:08:08 <jorropo> there are way less ones since arm chips are simpler and don't have as crazy speculation features
19:09:28 <jorropo> I remember seeing someone leaking RSA keys on poorly SCA hardened implementions by from and other userland process observing the boost clock and and clock temperature
19:10:00 <jorropo> on a qualcom arm chip
19:15:37 <frosch123> ah, that side-channel again. it still amazes me that even javascript engine were performant enough to require nerving of cpu time measurements
19:21:54 <_jgr_> jorropo: ARM chips with decent performance are using all the same sorts of optimisations
19:23:06 <_jgr_> Given the physical limitations it's unavoidable, so this is not a problem that is going to go away
19:48:21 <andythenorth> Downfall is quite a low key name for that vuln.
19:48:44 <andythenorth> Coud have been called Game Over Folks.
19:48:55 <andythenorth> Or Arnageddon.
19:49:34 <andythenorth> Nah Armegedon should be saved for the ARM equivalent
19:51:08 <peter1139> Well
19:51:16 <frosch123> are there words with "grf" in them?
19:51:51 <peter1138> Not in English.
19:52:59 <michi_cc[d]> CVSS score for downfall is just 6.5 Medium. Totally fine, nothing to worry.
20:02:29 <jorropo> _jgr_: was what I said unclear ? "*as crazy*"
20:02:29 <jorropo> They have most right but not all. Having simpler chips is a tradeoff, it make them smaller on die, cheaper, more power efficient, ...
20:02:36 <andythenorth> Does grf rhyme with orange?
20:04:58 <frosch123> <- oh dear
20:05:17 <jorropo> frosch123: BLGRFP ? :scared:
20:05:42 <frosch123> "Bell Labs Graduate Research Fellowship Program"?
20:05:43 <FLHerne> Words containing "grf"? I don't believe they exist
20:05:53 <_glx_> accepted for scrabble ?
20:05:57 <_glx_> crazy
20:06:36 <frosch123> i like "GRFS": grass roots football show
20:07:13 <_glx_> and most likely not "football" related at all
20:07:33 <frosch123> oh, NSFGRF, not-safe-for-grf?
20:07:43 <Eddi|zuHause> if something needs to put "grass roots" in its name, it's probably a lie :p
20:07:56 <_glx_> National Science Foundation Graduate Research Fellowship
20:27:05 <peter1138> Mmm, slightly crunchy vinyl
20:40:40 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
20:58:43 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:11:34 <truebrain>
21:11:34 <truebrain>
21:11:34 <truebrain>
21:11:34 <truebrain> after a week, stats from BaNaNaS: 60% is on 13.4, 93% of our BaNaNaS traffic is via HTTP(S), and 12% of the TCP traffic is due to listing (feels like we could improve here). On average, 26 times a minute the listing is requested, and about 34 downloads per minute happen. Listing is ~500KiB in size. On average, we need 30 mbit/s to process all BaNaNaS requests (of which 27 mbit/s is handled by
21:11:34 <truebrain> Cloudflare now)
21:12:26 <truebrain> that MBP better be on a good internet connection πŸ˜„
21:15:26 *** esselfe has joined #openttd
21:17:00 <frosch123> what's MBP?
21:17:02 <truebrain>
21:17:02 <truebrain> multiplayer shows a slightly different distribution of OpenTTD versions used. 52% is using 13.4 there. It requires 0.2 mbit/s to run our TURN services. About 96% of the connections are via IPv4, despite 25% of the connections being IPv6 capable (so either the server or the client doesn't support IPv6, causing a low total amount of IPv6 connections). 33% of the connections is via STUN. 18% of the
21:17:02 <truebrain> servers are invite-only, and the amount of active servers is between 170 and 230, with a peak around 2300 CEST. We establish on average 5 connections per minute.
21:17:16 <truebrain> MacBook Pro .. guess you missed the hackernews comments πŸ˜„
21:18:03 <frosch123> sounds like someone made stats with their dhcp server
21:18:27 <truebrain>
21:18:27 <truebrain> I did
21:18:50 <belajalilija> surprsied how few use jgrpp
21:19:55 <truebrain> and there is something weird with the game-coordinator .. the amount of active-servers counter is off ... πŸ˜›
21:20:20 <truebrain> also fun, 31% of the "connect me to server NNN" result in a: I don't know NNN!
21:20:38 <jorropo> I am trying to write a custom pathfinder, is it correct that there is no pathfinder interface ? As far as I can tell there are switchs in the consumer code that dispatch to either NPF or YAPF.
21:21:19 <truebrain> owh, and I have a similar dashboard as above for BaNaNaS .. so yeah frosch, I made a lot of stats πŸ˜› Just not with my DHCP server, sorry πŸ˜„
21:21:23 <truebrain> okay, enough numbers for one day πŸ™‚
21:22:03 <truebrain> happy to see TURN is used, and works well. That STUN is successful, and works well. And that the costs are within bounds πŸ™‚
21:22:18 <frosch123> i had a different question: how did dorpsgek manage to enable 2fa? :p
21:22:38 <truebrain> why you ask?
21:23:03 <frosch123> because gh is sending mails to every single verified email address
21:23:07 <frosch123> i got 3, dorpsgek got 1
21:23:16 <frosch123> and i was confused that dorpsgek has 2fa πŸ™‚
21:23:44 <truebrain> I enabled that months and months ago πŸ™‚
21:24:01 <truebrain> reminds me, I should move that to 1password soon, so I am not the only one who can login πŸ˜›
21:24:17 <truebrain> I should also be able to remove the PAT from DorpsGek now .. as we are finally PAT-less!
21:25:23 <frosch123> eints is the weird one, pushing via ssh
21:25:33 <truebrain> it no longer does via SSH
21:25:36 <truebrain> neither does BaNaNaS
21:26:03 <frosch123> oh, new stuff
21:26:10 <truebrain> yeah, did that with the infra migration
21:26:15 <frosch123> truewiki?
21:26:19 <truebrain> removed all usages of PATs and Deployment Keys
21:26:26 <truebrain> truewiki too, now uses GitHub App
21:26:35 <truebrain> which generates a PAT on-the-fly, basically
21:26:43 <truebrain> so all 3 are now a lot more secure πŸ™‚
21:27:06 <truebrain> (GitHub Apps use a private key to reply to a challenge to GitHub, to proof identity)
21:27:32 <truebrain> but they now all use https; no more SSH non-sense πŸ™‚
21:27:44 <frosch123> well, as long as we do not use azure-based oauth
21:27:54 <truebrain> what nightmare do you have to tell there? πŸ˜›
21:28:23 <frosch123> i understood oauth client keys and secrets were stolen from ms cloud
21:28:35 <truebrain> owh, that
21:31:44 <frosch123> meh, i have no good idea for reducing bananas listing size
21:32:21 <frosch123> authors can edit name/desc any time, so caching stuff on client side is weird
21:39:27 <_glx_> prefiltering like the 10 main tabs on web version ?
21:41:42 <sittinbythefire> Man, I can't wait for 14.0 to come out so we get this kind of sexy data about how people actually play, this is really cool πŸ‘
21:44:58 <peter1138> belajalilija: It's niche, despite what a few people here think.
21:51:34 <frosch123> 15% is niche? are you using a brittish majority voting system?
21:51:59 <peter1138> I saw 3%... must be a different chart.
21:53:05 <frosch123> i think it was 3% for bananas access, 15% for multiplayer
21:53:07 <peter1138> But yes, we also call "52/48" a "clear and decisive vote"
21:53:16 <frosch123> which is funny, i thought jgrpp was mostly singleplayer
21:54:05 <frosch123> probably all the kids checking for daily for zbase updates water down the 3%
21:55:02 <_jgr_> Niche is fine by me
21:55:09 <belajalilija> peter1138:
21:55:13 <belajalilija> this is what we got
21:55:15 <belajalilija> yay
21:56:27 <_glx_> frosch123: still less than 12.2
21:57:33 <brickblock19280> most people with jgrpp probably have all the grfs they want
21:58:05 <belajalilija> ^^
21:58:11 <_jgr_> I'm a bit sceptical of that
21:58:16 <belajalilija> i got jgrpp after getting most of my grfs
21:58:43 <belajalilija> but on the flip side i'd wager that jgrpp is better for multiplayer
21:58:48 <belajalilija> due to the network sharing
21:59:03 <belajalilija> and many casuals might not play multiplayer even
22:00:41 <frosch123> ah, infra sharing... i was wondering how you would share internet connections...
22:01:14 <belajalilija> yeah i meant network as in a transport network
22:02:38 <truebrain> frosch123: Server side search and not listing all at start .. but that is very annoying to implement
22:02:59 <truebrain> Offloading to https would make me not care about the bandwidth πŸ˜›
22:03:25 <frosch123> well, the list is mostly static
22:03:30 <frosch123> just not really predictable
22:03:33 <truebrain> I also wonder how many returning visitors there are .. we could index the lost and only send the difference
22:03:51 <truebrain> But storing as a JSON on http sounds easiest
22:04:30 <truebrain> It is a cheap solution to reduce the bill πŸ˜›
22:04:59 <frosch123> can you tell how many request the full list, and how many search for missing content to load save/join server?
22:05:19 <frosch123> only the latter needs real api access
22:05:30 <frosch123> the former is mostly static
22:05:32 <truebrain> Yeah, there is a difference between newgrf listing and the rest
22:06:47 <truebrain> 15% use the latter
22:07:23 <truebrain> But okay, not worth the effort atm .. but if we ever refactor it, we should remember this πŸ™‚
22:07:34 <frosch123> 15% sounds a lot to me
22:08:21 <truebrain> 0.6 request per minute on average open the "missing newgrf" list
22:08:48 <truebrain> (Vs 3.3 opening the "online content")
22:10:26 <frosch123> sounds weird to me. either people are scared to click download, and keep rechecking servers
22:10:45 <frosch123> or they keep trying to open scenarios which use non-bananas grfs
22:11:03 <truebrain> I can only tell you the numbers πŸ™‚
22:11:51 <truebrain> Right, sleep time
22:25:16 <FLHerne> jorropo: right
22:30:12 <FLHerne> fwiw, there was also OPF, which survived for many years as an option for ships but was removed in
22:31:56 <FLHerne> What's the aim of your pathfinder? I do occasionally have frustrations with YAPF but it's pretty good really
22:38:57 *** keikoz has quit IRC (Ping timeout: 480 seconds)
23:06:21 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:36:26 *** leothejewishturtle has joined #openttd
23:36:26 <leothejewishturtle> For someone who hasn't done much coding but is wanting to learn, what would the process look like to create a mod/script that changes the Financial Window?
23:36:26 <leothejewishturtle> I was thinking making it resizable to display more than just the last two years and adding additional data like ROI for different asset types (trains, cars, etc.) and a bunch of other financial data. Step one would probably just be adding more years to the window or making it resizable. How would I go about creating that?
23:55:45 <peter1138> Step 1 is find how the existing window works, how it's drawn, what is drawn. Where the data comes from and where and how the data is stored.