As part of the project, I have to solicit contributions from 3rd parties that may or may not have a “stake” in the final outcome. As I have not succeeded in gaining any local, personal, involvement, I have had to go out to the community at large via the various model railroad forums. There are problems with this approach as it isn’t really possible to ensure that the concept of a “project” as used in TM470 is understood, that the scope of the project needs to be constrained due to time pressures, that it is not intended to model the real world in its entirety or that it is not destined to be a commercial product.
There is another issue – The model railroad fraternity demographic is heavily weighted to the senior end of the scale – people with time, money and skills. This puts their professional computer technical knowledge in the “I used to” category, mostly. Few have kept up to date, unlike myself who has needed to stay current in order to complete my honours degree (and to make my living). The technical contributions have mostly missed the point of what I am trying to do.
However, I did get some contributions so I felt that it was worth discussing these. There are too many words for this to be included in the current assignment (TMA03) so I decided to present them as a Blog entry and reference the whole page from the TMA.
Contributions to this blog
Have you considered the “off stage” portion of the layout as multiple destinations? The idea in my mind would be that it would better represent a connection to the rest of the world rather than simply “staging”. It would be simply that, of course, but the origin or destination might be Seattle, Ogden, Los Angeles, etc. – Neil Erickson
LongHairedDavid – In reply to sarahdaddy.
I had but hadn’t got around to clarifying it. However, as far as the software is concerned, everything is routed to Hartford or Boston (in my test scenario). The real world doesn’t exists and the software is only concerned with the physical model so it doesn’t matter if a reefer is actually going to New York – Hartford is good enough for us.
Model Train Forum
1905dave 05-28-2017, 04:42 AM
What happens when your railroad has more than one yard on a division? My layout will end up with 3 yards on the same branch, one at the junction, one at the end and one in the middle.
LongHairedDavid – In reply to 1905dave
Trains can originate from any yard. However, cars on trains will not be assigned to a yard destination (that doesn’t make sense unless it is an empty being returned to its home railroad (out of scope for this project). Empties be taken to the final destination yard whilst loads will have their own destinations. Extra yards do not change any of this.
1905dave 05-28-2017, 04:42 AM
There are 3 types of industries, one only outputs like coal, another brings in loads of lumber and glue and outputs furniture as an example, the next would only input like a coal power generating system. Any reason why you didn’t just make all the industries type 2, both receiving and shipping? For ship only you just don’t define any inbound loads and for the inbound only you just don’t define any outbound shipments. It just seems like it would be simpler.
LongHairedDavid – In reply to 1905dave
“For ship only you just don’t define any inbound loads ” That is what the flags on the car record do. They stop the creation of final destinations for empties (unless one is set).
Model Railroader Forums
05-24-2017, 11:14 PM flyboy2610
I can’t contribute anything to your project, but I wish you all the best of luck!:)
05-25-2017, 01:46 PM dave1905
Its interesting that you don’t think the databases need to be normalized, especially since the prototype ones are.
05-26-2017, 07:19 PM davidpen
Not using a SQL database. On a Key/Value database, there isn’t any normalising. You have multiple copies of data under different keys.
05-27-2017, 12:58 AM dave1905
On a key/value database, if you change something don’t you then have to track down all the places that field exists and change the value in multiple tables?
05-27-2017, 12:56 PM davidpen
Only if you are using it as though it was a SQL db (which would be pointless). KV databases are used for fast access by keys – not by searching. There are objects in buckets accessed by keys. You use it by dumping and reading complete records (not an expression that I like – I prefer “objects”). So, in my prototype, there is very little data that gets changed for each train creation. Think of a railroad with 100 locos and 450 cars. At any one time, you are building a single train with 3 locos and 50 cars, say. That looks like a lot of data to be saved as each car needs to know what train it is on and where it is going. However, each car record is minuscule and without the payload of a SQL record. Modern servers can write that lot out almost instantly. – 3 loco objects updated, 50 cars re-written, one new train saved. When you want the data, the train holds the ids of all the cars and locos so no searching required.
05-28-2017, 04:52 AM dave1905
I was thinking more along the lines of let’s say I have a station “Coateville”. So, all the routes and all the customers and cars at that station get the station name applied. About the 3rd session, I notice that I misspelled it and it should be “Coatesville”, with an S in the middle. Wouldn’t the system have to check every record in every table in the database to correct the spelling? Trivial example but it can happen and if you match on spelling it can create mismatches if its not consistent.
05-28-2017, 09:42 PM davidpen
I think that you are thinking about traditional databases. The only thing that matters in this scenario is “this train”. The system builds the train for you. You use the information; tell the system that you have moved all of the items; the system updates for the new locations and then that whole action is forgotten. There is no concept of a history report – who cares what happened 10 trains ago?
05-31-2017, 08:08 PM dave1905
If you don’t have an empty reefer in the yard, at least in the first iteration, you will never spot a reefer to the industry because it will be dropped. Even in the future version, it will just roll the demand to the next train. If there were unfulfilled orders for that cycle it would continue to roll them to the next train and so on. The problem I see with this is that if you have the engine proposing a higher demand than there are cars available, the owner will never know he is short of cars, and conversely if he never knows the engine is generating a higher demand, he won’t know to adjust a parameter if the engine is generating too high a demand. The system should tell the user that there were XX cars assigned to spot, but YY orders for cars that were unfulfilled. Similarly, there needs to be a report that indicates there when cars were trimmed from a train due to length or power.
05-31-2017, 08:20 PM davidpen
Short of cars isn’t an issue – so the train runs light. Must happen in the real world. Too many – good point but we aren’t running a railroad, only a model so generating lots of lists for things that didn’t happen aren’t really necessary. If we generate 5 cars extra for every train, it would mean that, somewhere, there is a parameter that needs tweaking, rather than “Fred Brown is late getting his two box cars so we must ensure that we deliver them ASAP”. Remember that most people run a model railroad for a couple of hours and then come back to it sometime. Being reminded that there are 50 cars so far that haven’t been shipped isn’t really part of the “model” scenario.
I have lightly t the above and have omitted lots of extraneous content proposing functions that are outside the scope of the project. This is mostly because the contributors are forgetting that this is trying to run a model railroad and not model a real railroad.