Back to Home / #openttd / 2013 / 05 / Prev Day | Next Day
#openttd IRC Logs for 2013-05-02

---Logopened Thu May 02 00:00:45 2013
00:18-!-Meechmunchie [~meechmunc@] has joined #openttd
00:20-!-Meechmunchie [~meechmunc@] has quit []
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
01:09-!-Prof_Frink [~proffrink@] has quit [Remote host closed the connection]
02:10-!-cyph3r [] has joined #openttd
02:21-!-DDR [] has quit [Quit: DDR is not Dance Dance Revolution.]
02:40-!-Devroush [] has joined #openttd
02:40-!-Supercheese [~Password4@] has quit [Quit: ChatZilla 0.9.90 [Firefox 20.0.1/20130409194949]]
02:48-!-Zuu [] has joined #openttd
02:54-!-Cybert1nus is now known as Cybertinus
02:54-!-Psyk [] has quit [Ping timeout: 480 seconds]
03:01-!-Zuu [] has quit [Ping timeout: 480 seconds]
03:23-!-sla_ro|master [~slamaster@] has joined #openttd
03:26-!-valhallasw [] has joined #openttd
03:33-!-andythenorth_ [] has joined #openttd
03:36-!-andythenorth_ [] has quit [Remote host closed the connection]
03:47-!-andythenorth_ [~andytheno@2002:4d66:7022:0:c0d:7f66:1da1:fc] has joined #openttd
03:52-!-andythenorth_ [~andytheno@2002:4d66:7022:0:c0d:7f66:1da1:fc] has quit [Remote host closed the connection]
04:12-!-Ristovski [~rafael@] has joined #openttd
04:16-!-Progman [] has joined #openttd
04:31-!-dlubi [] has quit [Ping timeout: 480 seconds]
04:54-!-Wolf01 [~wolf01@] has joined #openttd
04:54<Wolf01>hello :D
04:56-!-oskari89 [] has joined #openttd
04:58<NGC3982>I lub UKRS2.
05:00-!-Ristovski [~rafael@] has quit [Quit: Leaving]
05:03-!-pugi [] has joined #openttd
05:09-!-andythenorth_ [~andytheno@] has joined #openttd
05:13-!-Mucht [] has joined #openttd
05:19<peter1139>Order Status: Packed and ready for despatch
05:19<peter1139>well despatch it then :S
05:24-!-frosch123 [] has joined #openttd
05:46<andythenorth_>where's my bloody amazon order, that's what I want to know
05:46<andythenorth_>"Delivery: 1st May"
05:46<andythenorth_>so check the date :|
05:46<__ln___>doesn't say what year
05:47<peter1139>should i get a trackball?
05:47<andythenorth_>I have some
05:47<andythenorth_>in cupboards
05:48<andythenorth_>never as good as they should be
05:48<andythenorth_>just buy a tablet and be done with it
05:48<Eddi|zuHause>trackball? how very 90's :)
05:49<peter1139>hmm, tablet
05:56-!-andythenorth_ [~andytheno@] has quit [Ping timeout: 480 seconds]
05:58<peter1139>hmm, logitech T650
06:13<Wolf01>why does LEGO puts a spare 1x1 red flat tile but not for 1x1 trans-white plate? I think a little transparent piece is easier to get lost
06:14<peter1139>to annoy you
06:15<Wolf01>no, the annoying part is to have slightly different coloured yellow pieces, or bluish/reddish white pieces
06:16<peter1139>always been consistent for me
06:16<peter1139>but then i was buying lego 25 years ago
06:16<Wolf01>I built a wall with white pieces and "see, it looks like the USA flag"
06:16<Eddi|zuHause>ah, there is the middle stop hack
06:17<peter1139>the what?
06:17<Eddi|zuHause>set stop in middle as default when loading old savegames
06:17<peter1139>which causes what?
06:18-!-andythenorth_ [~andytheno@] has joined #openttd
06:19<Eddi|zuHause>saves me clicking on 150 trains to set it myself for each order
06:21<Wolf01>nice, I have more spare parts than the smallest set I have
06:21<Eddi|zuHause>i have a big basket of legos somewhere
06:22<Eddi|zuHause>not touched for at least 10 years
06:27<frosch123>is there a eastern equivalent to lego?
06:31<Wolf01> this, if I understood the question correctly
06:34<frosch123>nah, not that far east :p
06:34<Eddi|zuHause>we had two, actually
06:35<Wolf01>minitalia, but it didn't had so much success
06:36<Wolf01>and since most patents from lego are now invalid/expired, there are clones from all over the world, so it's difficult to tell the origin from just the name
06:39<Eddi|zuHause>frosch123: and
06:41<frosch123>hmm, i wonder whether i had some pebe stuff
06:41<frosch123>i got some weird stuff from friends of my older sibliings
06:46-!-Mucht [] has quit [Remote host closed the connection]
06:48-!-Elukka [] has joined #openttd
06:56-!-Fuco [] has joined #openttd
07:05<@planetmaker>pebe = DDR lego?
07:05<frosch123>yeah, that was the topic
07:12<Eddi|zuHause>so... where was that timetable patch i wanted to try?
07:19<peter1139>what about 32bpp colours?
07:20<Eddi|zuHause>why would i need those?
07:25<peter1139>for eyebleed
07:26<Eddi|zuHause>DBSet doesn't have company colours anyway
07:28<peter1139>that is true
07:34-!-HellTiger [] has joined #openttd
07:41<frosch123>i thought it had the colours of the db company
07:49-!-Alice3 [] has joined #openttd
07:53-!-HerzogDeXtEr [] has joined #openttd
08:00-!-Mucht [] has joined #openttd
08:08-!-dlubi [] has joined #openttd
08:22-!-Alice3 [] has quit []
08:24-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
08:31-!-TheMask96 [] has joined #openttd
08:33-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
08:56-!-dlubi [] has quit [Remote host closed the connection]
09:10-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
09:13-!-ntoskrnl [] has joined #openttd
09:13-!-TheMask96 [] has joined #openttd
09:19-!-dough [] has quit [Quit: changing servers]
09:37-!-andythenorth_ [~andytheno@] has joined #openttd
09:38-!-Ristovski [~rafael@] has joined #openttd
09:52-!-tokai|noir [] has joined #openttd
09:52-!-mode/#openttd [+v tokai|noir] by ChanServ
09:58-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
10:03-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
10:29-!-roadt [~roadt@] has joined #openttd
10:36-!-parkette [] has quit [Ping timeout: 480 seconds]
11:09-!-LordAro [] has joined #openttd
11:22-!-Fuco [] has quit [Read error: Connection reset by peer]
11:30-!-glx [] has joined #openttd
11:30-!-mode/#openttd [+v glx] by ChanServ
11:42-!-valhallasw [] has quit [Ping timeout: 480 seconds]
11:48-!-KouDy [~KouDy@] has joined #openttd
11:56-!-parkette [] has joined #openttd
11:59-!-FLHerne [] has joined #openttd
11:59-!-Alice3 [] has joined #openttd
12:20-!-andythenorth [~andytheno@] has joined #openttd
12:23-!-DDR [] has joined #openttd
12:37-!-parkette [] has quit [Ping timeout: 480 seconds]
12:38-!-andythenorth_ [~andytheno@] has joined #openttd
12:38-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
12:43-!-andythen_ [~andytheno@] has joined #openttd
12:43-!-TheMask96 [] has quit [Ping timeout: 480 seconds]
12:49-!-andythenorth [~andytheno@] has quit [Ping timeout: 480 seconds]
12:49-!-Zuu [] has joined #openttd
12:49-!-andythen_ [~andytheno@] has quit [Remote host closed the connection]
12:49-!-TheMask96 [] has joined #openttd
12:58-!-Psyk [] has joined #openttd
13:03-!-FLHerne [] has quit [Remote host closed the connection]
13:03-!-roadt [~roadt@] has quit [Ping timeout: 480 seconds]
13:18-!-Mortomes [] has joined #openttd
13:19-!-Mortomes is now known as Guest4120
13:21<Eddi|zuHause>hm, i think this part is completely wrong...
13:21<Guest4120>With NoAI, is there any way to make an AI say something in chat or react to chat messages?
13:22<Eddi|zuHause>at least, instead of TIP_SAVEGAME_VERSION it should put in 67
13:22<Eddi|zuHause>ah, no, i missed a line
13:22<Eddi|zuHause>Kommando zurück! :p
13:23<Guest4120>(Or is there a more appropriate channel for NoAI related discussion?)
13:23<Eddi|zuHause>it's still weird, but not "wrong"
13:23-!-Guest4120 is now known as Mortomes
13:23<Eddi|zuHause>Guest4120: no, AI cannot listen to chat
13:24<Mortomes>Can't talk in chat either?
13:24<Eddi|zuHause>not that i know of, but not sure
13:24<Eddi|zuHause>might want to ask stuff in the forum, though, to reach a wider target audience of AI coders
13:26<Mortomes>No way to do something similar with gamescript either?
13:27<Mortomes>Ok, I'll try that, thanks.
13:27-!-oskari892 [] has joined #openttd
13:28<Eddi|zuHause>gamescripts can communicate via the admin port
13:32-!-oskari89 [] has quit [Ping timeout: 480 seconds]
13:34-!-Markk [~mark@] has quit [Ping timeout: 480 seconds]
13:35-!-Supercheese [~Password4@] has joined #openttd
13:37-!-Markk [] has joined #openttd
13:37-!-Mucht [] has quit [Remote host closed the connection]
13:38<frosch123>ais and gs can communicate with each other via signs
13:42-!-Alberth [] has joined #openttd
13:42-!-mode/#openttd [+o Alberth] by ChanServ
13:42<Mortomes>heh, interesting
13:43-!-Mucht [] has joined #openttd
13:43<Mortomes>On a related note, any way to enable chat functionality in single player?
13:44<frosch123>there are other interfaces to communicate with gs
13:44<frosch123>goals, question windows, news
13:44<frosch123>a story book is planned
13:45<Mortomes>Yeah, this is not so much about communicating with gs as with the player
13:45<Mortomes>Through something less obscure than logging :P
13:45<@DorpsGek>Commit by translators :: r25216 /trunk/src/lang (3 files) (2013-05-02 17:45:18 UTC)
13:45<@DorpsGek>-Update from WebTranslator v3.0:
13:45<@DorpsGek>galician - 90 changes by Michi
13:45<@DorpsGek>icelandic - 9 changes by Stimrol
13:45<@DorpsGek>gaelic - 24 changes by GunChleoc
13:45<frosch123> <- that's what is planned
13:47-!-Mucht [] has quit [Remote host closed the connection]
13:51-!-valhallasw [] has joined #openttd
14:03-!-andythenorth_ [~andytheno@] has joined #openttd
14:03<@Alberth>hi andy
14:07-!-Defaultti [] has quit [Quit: Quitting.]
14:09-!-Psyk [] has quit [Read error: Connection reset by peer]
14:10-!-Psyk [] has joined #openttd
14:24<oskari892>What is that error:
14:25-!-Defaultti [] has joined #openttd
14:26<Eddi|zuHause>oskari892: need to talk to Ammler
14:27-!-andythenorth_ [~andytheno@] has quit [Remote host closed the connection]
14:27<Eddi|zuHause>oskari892: but that log doesn't show any error, only warnings
14:28<oskari892>"Preferred package location '/home/openttd/public_html/nml/nightlies/r2072/rpms' is not a directory
14:28<oskari892>cp: cannot stat '/home/ottdc/chroots/devzone-openSUSE_12.3-i586-nightlies/home/abuild/rpmbuild/BUILD/finnishtrainset/*.zip': No such file or directory"
14:28<Eddi|zuHause>those seem to be from "make clean" and shouldn't be critical, if you're using the makefile correctly
14:29<oskari892>ISR seems also be affected
14:30<oskari892>and xussrsete too
14:36<Eddi|zuHause>hm, what am i missing? "src/duration_gui.cpp:232:9: error: ‘HEBR_EDITING’ was not declared in this scope"
14:37<Eddi|zuHause>it's not defined in any of the patch files
14:37<Eddi|zuHause>so it must have come from trunk, but it's not in trunk anymore
14:42<@Alberth>duration_gui ?
14:42<@Alberth>that's a new one to me
14:43<Eddi|zuHause>yes, it's from the timetable improvement patch
14:43<Eddi|zuHause>but i mean the HEBR_ stuff
14:44<Eddi|zuHause>it was apparently removed from trunk recently
14:44<Eddi|zuHause>something to do with edit boxes
14:47<frosch123>Eddi|zuHause: editboxes were completely changed
14:47<Eddi|zuHause>yes, i figured. but i can't find the revision
14:47<Eddi|zuHause>or the explanation what changed
14:47<frosch123>it's HKPR_EDITING now
14:47<frosch123>but the other enum values changed their meaning
14:47<@Alberth>r24729 ?
14:48<frosch123>i guess you are bet off ripping off all the editbox stuff from that patch, and reimplement it :p
14:48<Eddi|zuHause>still, i need the revision of the change, to see what was done for the other windows
14:49<frosch123>try svn log -r24324:head src/network/network_gui.cpp
14:50<frosch123>90% of those commits are related to editboxes
14:52<@Alberth>r24735 still removes uses of HEBR_EDITING
14:53<Eddi|zuHause>i'll look into it
14:55-!-ntoskrnl [] has quit [Ping timeout: 480 seconds]
14:56-!-ZxBiohazardZx [] has joined #openttd
14:57<@Alberth>Eddi|zuHause: r25092
14:57<@Alberth>thg grep for the win :)
14:59-!-ZxBiohazardZx [] has quit []
14:59<Eddi|zuHause>in SVN it's easy to search for when a line was added, but not when it was removed
14:59<frosch123>well, most likely you just have to remove the whole function which used HEBR_EDITING
15:01<frosch123>the HKPR_ constants are only used in 4 files in trunk, so it's very unlikely your window would need them :p
15:10<Wolf01>random question time: anybody here used to multiple-and-hierarchical data structures? Maybe there is something like it in the OTTD code too :P
15:11<frosch123>the name does not trigger anything for me
15:12<frosch123>is the "and" a logical "and" ?
15:12<frosch123>and in multiple hierarchies, combines with "and" ?
15:12<Wolf01>I need both, so, yes
15:13<frosch123>so "multiple" and "hierarchical" are independent things?
15:13<frosch123>what's a "multiple datastructure" then? :p
15:14<@Rubidium>hierarchical smells like trees
15:14<frosch123>yeah, "hierarchical" is easy. but i have no idea what the "multiple" should mean
15:14-!-andythenorth [] has joined #openttd
15:15<Wolf01>multiple is like "a taxonomy with many terms", combine it with hierarchical and you have "a taxonomy with many terms with childs which can belong to more than one term"
15:15<Wolf01>hello andythenorth
15:15<Eddi|zuHause>Wolf01: maybe you should rather explain what you try to do, instead of throwing around random buzzwords
15:16<Wolf01>s/childs/children <- italianism
15:16<frosch123>so, you have "multiple hierarchies"
15:16*andythenorth -> logs
15:16<frosch123>are the hierarchies independent/disjunct?
15:17<Wolf01>I'm trying to develop an application which makes use of Euler diagrams to handle a clients wallet
15:17<frosch123>i.e. can you separate parents/children into the hierarchies? or is there no rule whether a child is a child via one or the other hierarchy?
15:18<andythenorth>Wolf it sounds like each child has forward reference to each of its parents?
15:18<frosch123>that sounds more like you just want a directed non-cyclical graph
15:18<Wolf01>I already lost you :D
15:19<andythenorth>Real world case I have: sales that have both company and customer
15:19<frosch123>Wolf01: do you know distributed version control systems? hg? git?
15:19<frosch123>their history is a dac (directed acyclical graph"
15:20<@Rubidium>oh... git for ages 4 and up?
15:20<frosch123>every item can have multiple parents and children
15:20<frosch123>but no child can be the grandparent of its own parent
15:20<andythenorth>How do you quickly walk the tree?
15:20<frosch123>Rubidium: exactly :p
15:20<andythenorth>In the web app case I just have to walk lots of nodes looking at properties
15:20<Eddi|zuHause>just use a database :)
15:22<andythenorth>Wolf what are the real world entities you are modelling?
15:22<Eddi|zuHause>i still have no clue what you're actually trying to do
15:22<frosch123>Wolf01: you can also just google for "directed acyclic graph <insert-your-programming-language-here>" :)
15:23<andythenorth>Might be overkill though
15:23<Wolf01>I have companies with salesmans, each salesman have its own clients, clients could belong to more salesmen (because interested on different products)
15:24<andythenorth>Ok do that's similar to the real world sales tracking app I have
15:24<Wolf01>but seem you already put me in the right way with the acyclic graphs
15:24<Eddi|zuHause>i'd still just use a database
15:24<Wolf01>I already use a database
15:25<Eddi|zuHause>just model a many-to-many relation
15:25<andythenorth>If there's only one layer of hierarchy, you don't need graph algos
15:25<Wolf01>ok, I already tried with nested set model, but is a pain in the ... when you need to find a path from a client to a "product"
15:26<andythenorth>You have to look in a lot of rows
15:26<Wolf01>and I don't say when I remove a salesman what should happen
15:26<Eddi|zuHause>removing a salesman is handled by foreign key relationship
15:27<Eddi|zuHause>whatever your RDBS does in that case
15:27-!-andythenorth_ [~andytheno@2002:4d66:7022:0:64e0:71af:b493:4a12] has joined #openttd
15:27-!-andythenorth [] has quit [Quit: Leaving]
15:27<andythenorth_>tablet typing got boring
15:28<andythenorth_>it's just sql stuff no?
15:28*andythenorth_ can't do it, but eh :)
15:28<Eddi|zuHause>say you have a table for salesmen, clients and products. each salesman handles a set of clients, each salesman is responsible for a set of products
15:28<Eddi|zuHause>so you have a table with salesman-id,client-id and one with salesman-id,product-id
15:29<Eddi|zuHause>so when a client searches a product, you make a join on salesman-id
15:30<andythenorth_>if it gets slow you (a) consider caching stuff by keeping references in multiple places (but it sucks, and you have to deal with invalidation and it's a pita)
15:30-!-Mortomes [] has quit [Ping timeout: 480 seconds]
15:30<frosch123>well, if there are only salesmen and clients, and no salesman is a client himself... then there is no point in graphs :)
15:30<andythenorth_>or (b) buy a bigger server
15:30<andythenorth_>or (c) write better sql
15:30<Eddi|zuHause>yeah, you don't need graphs, you just need a proper database model
15:31<Eddi|zuHause>which brings us back to the question what you're actually trying to do
15:31<andythenorth_>I had this kind of stuff in the old CMS for FIRS :)
15:31<Wolf01>ok, the problem is, product, salesman and client are the same thing, just hierarchical, no different tables, they just are acyclic as frosch123 said :D
15:32<Eddi|zuHause>so client-id and salesman-id are foreign keys to the same table?
15:32<Eddi|zuHause>so you need to resolve A->B B->C C->D into A->D?
15:32<Wolf01>because I have more hierarchies of salesmen
15:33<Wolf01>that's the point
15:33<Eddi|zuHause>yeah, that's pushing the limits of RDBMS
15:33<Eddi|zuHause>because you can't do that in one query
15:34<Wolf01>in fact I was looking for algorithms to build many queries
15:34<Eddi|zuHause>so you want to resolve transitive edges
15:35<Wolf01>uhm, googled that, gives me headaches
15:35<Eddi|zuHause>basically, you need a pathfinder :)
15:35<Eddi|zuHause>which is not that hard if you know it's acyclic
15:36<Wolf01>it's acyclic for sure, if it's not I'll kill who made it so
15:36<Eddi|zuHause>to find a way from D to A you query all X->D edges, put all X in a set, and then query all Y->X edges for every member of X
15:37<Eddi|zuHause>you do this until X doesn't change anymore, or X contains A
15:37<Eddi|zuHause>but this must be done in a procedural language, it can't be expressed in SQL
15:38<andythenorth_>Wolf01: this is a CRM app?
15:38<Eddi|zuHause>(because SQL isn't a turing complete language)
15:38<andythenorth_>Wolf01: they can't just get Nutshell or Zoho or something off the shelf? o_O :)
15:38-!-andythenorth_ [~andytheno@2002:4d66:7022:0:64e0:71af:b493:4a12] has quit [Remote host closed the connection]
15:39<Wolf01>it's a new feature we must develop for our produce
15:39-!-andythenorth_ [] has joined #openttd
15:39<Wolf01>it's a new feature we must develop for our product
15:41<Wolf01>which may be used for a crm, but also to split up a site in different compartments with their own hierarchy (admin-mod-user)
15:41<andythenorth_>so what happens if a salesmen leaves?
15:41<andythenorth_>is the client interested in the product, or the salesperson?
15:41<Wolf01>clients must be assigned to his direct parent
15:42<Wolf01>luckily we don't have to care about the second case :P
15:42-!-Mortomes [] has joined #openttd
15:43<andythenorth_>what is the most important entity in the system / business? Client, product, or salesperson?
15:43-!-Mortomes is now known as Guest4135
15:43<andythenorth_>for example, the system I build is a sales (job) tracker, so job is the most important entity
15:44<Wolf01>I think it's the product
15:44<andythenorth_>I would have guessed that
15:44<andythenorth_>so I'm crap at sql, I usually do object stuff in python
15:45<andythenorth_>but you probably have product rows, with keys to the customer and salesperson tables
15:45<andythenorth_>but you also need to relate customer and salesperson in more detail
15:46<andythenorth_>so you might need to pair the keys somehow, or have customer keys in the salesperson table
15:46<Wolf01>this thing really resembles TT, I have products to deliver to a client passing through waypoints, waypoints decide wether to let pass the products in a certain time
15:46<andythenorth_>then it's all just fine, you just have to do some joins efficiently without killing your app
15:46<Wolf01>and I need to find a route which might suddenly change
15:47<andythenorth_>so there's workflow or such? Or order fulfilment?
15:47<Wolf01>It's very abstract at the moment
15:47<andythenorth_>how might the route change?
15:47<Wolf01>because we need it to adapt to different uses
15:48<andythenorth_>hmm :)
15:48<andythenorth_>have you used the front end of any similar apps?
15:49<Wolf01>I say, I have a 4 tracks main-line, suddenly I build a piece of track so trains can switch to a different track to cut some length of their travel
15:49<andythenorth_>trying to figure out if FIRS is similar to your problem, but I think not
15:49<andythenorth_>FIRS has economy, cargo, industry
15:50<andythenorth_>the industry knows which cargos it handles in which economy
15:50<andythenorth_>the cargos know if they're active in each economy
15:50<andythenorth_>if you want to know which cargos an industry *actually* handles in an economy, you have to go look them up
15:51<andythenorth_>probably different though
15:51<andythenorth_>I'm not really following the TTD track metaphor though :)
15:51-!-Psyk [] has quit [Remote host closed the connection]
15:51<andythenorth_>do you mean the app has to include logic for re-routing? Or that the business needs might change and you have to change the app?
15:52<Wolf01>the re-routing thing
15:55<Eddi|zuHause>Wolf01: my algorithm would handle that case correctly, it takes the shortest path
15:55<Wolf01>example: the "pizza" department has a principal and 4 salesmen, one day one of them would be moved to the "kebab" department, the other 3 will take the clients of the one which left (done manually by the principal, when the salesman left, it's clients were actually transferred to the department, invisible to the salesmen)
15:56<Wolf01>this must be transparent to the clients
15:56<andythenorth_>ok so you have teams too
15:56<andythenorth_>the re-assignment is done by the software? Or manually by the people?
15:57<Wolf01>the only automathic thing is when a new client appears, which is assignet to the salesman which handle him
15:58<Eddi|zuHause>so after the first assignment, the client is always handled by the same salesman until he leaves?
15:58<Wolf01>but the same client could be handled by more salesmen by different departments
15:58<@Alberth>starting the search from the client may be the fastest (assuming he has a few salesman)
15:58<Eddi|zuHause>so you want to store a salesman->(client, product) as some sort of cache
15:59<Eddi|zuHause>and when the client wants a new product, you resolve a new salesman by the algorithm i gave above
15:59<andythenorth_>(or look them up a lot, if your DB is fast)
15:59<Eddi|zuHause>otherwise it reuses the cached salesman
16:00<Eddi|zuHause>since it's only a cache, you can trivially just delete all connections of the salesman if he is moved to another department
16:00<Eddi|zuHause>the client will be treated as a new client when he next asks for the same product
16:00<andythenorth_>I would key from product to client for a couple of reasons
16:01<Eddi|zuHause>you might want to do some load balancing between salesmen
16:02<Wolf01>not my case, at least for the first implementations
16:02<Eddi|zuHause>or you just flatten the hierarchy, so when a new salesman enters the picture, you resolve all products he's responsible fore
16:03<MNIM>oh. I was already ducking
16:03<Eddi|zuHause>so when a new client asks for a product, you select all salesmen which handle this product, and order by number of clients they handle (or some other balance value) and pick the lowest
16:04<Eddi|zuHause>this makes adding salesmen the computationally expensive calculation, adding clients is trivial
16:04<Wolf01>yes, I already figured that out
16:05<Eddi|zuHause>algorithm is still the same as above. something around 10-20 LOC
16:07<andythenorth_>how many clients / products / salespeople in the real world?
16:07<Wolf01>I don't know :D
16:07<Eddi|zuHause>always assume 1 million :(
16:07<andythenorth_>tens/ hundreds / thousands / tens of thousands?
16:08<Wolf01>maybe 100 products, 10 salesmen and 10k clients
16:08<andythenorth_>yeah, these are not scary numbers
16:09<Wolf01>yes, our customers aren't so big... now
16:09<andythenorth_>you will need very bad sql or a very bad server to make this a problem
16:09<andythenorth_>although countless PHP developers have managed the first :P
16:09<Eddi|zuHause>and assume the company runs some ancient 386 on spare parts
16:10<Wolf01>eheh, knowing the developer (me), I wouldn't bet on "bad SQL", the server is right instead
16:11<andythenorth_>I would key the way eddi said, and then reassign client, product pair to a new salesperson if they need to move
16:12<Wolf01>I only hope the next step wouldn't be a neural network, we already put in too much on our crm/cms
16:12<andythenorth_>the products handled by a salesperson are then the set of all products
16:13<andythenorth_>you can similarly get all products for a client, all salespeople for a product etc
16:14<Wolf01>in any case, what I was looking for seem to be that edge-vertex thing to store the data, which seem to resolve some problems I found trying to add "multiple" to the nested set model hierarchy
16:15<Wolf01>many thanks to all for all the suggestions and the use-cases
16:16<andythenorth_>just don't over-complicate it :)
16:17-!-parkette [] has joined #openttd
16:17<Wolf01>I'll talk with my coworker tomorrow and then we'll see if it fits our needs
16:18<Wolf01>or we can blow up the whole thing and play OTTD instead
16:26-!-frosch123 [] has quit [Remote host closed the connection]
16:39-!-Prof_Frink [~proffrink@] has joined #openttd
16:46<andythenorth_>nice picture
16:47<Eddi|zuHause>it's photoshopped! i can tell by the pixels!
16:47-!-Netsplit <-> quits: heffer, andythenorth_, +tokai|noir, +michi_cc, luckz, Elukka, @DorpsGek, juzza1, Mek, parkette, (+11 more, use /NETSPLIT to show all of them)
16:48-!-Netsplit over, joins: parkette, andythenorth_, TheMask96, Zuu, tokai|noir, HellTiger, Elukka, Pixa, luckz
16:48-!-Netsplit over, joins: tparker, SpComb, Mek, SmatZ, +michi_cc, dotwaffle, juzza1, heffer, Tulitomaatti, @DorpsGek
16:48-!-ServerMode/#openttd [+vvov tokai|noir michi_cc DorpsGek DorpsGek] by
16:48-!-Netsplit over, joins: ^Spike^, XeryusTC
16:49-!-Alberth [] has left #openttd []
16:53<Eddi|zuHause>i think i killed it :p
17:25-!-KouDy [~KouDy@] has quit [Ping timeout: 480 seconds]
17:26-!-cyph3r [] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]
17:58-!-pugi [] has quit [Read error: Connection reset by peer]
18:02-!-Alice3 [] has quit []
18:11-!-Ristovski [~rafael@] has quit [Quit: Leaving]
18:13-!-andythenorth_ [] has quit [Remote host closed the connection]
18:15-!-sla_ro|master [~slamaster@] has quit [Quit: connection reset by myself]
18:21-!-oskari892 [] has quit []
18:36<LordAro>night all
18:36-!-LordAro [] has quit [Quit: Lost terminal]
18:41<Wolf01> lol
18:45-!-valhallasw [] has quit [Ping timeout: 480 seconds]
19:03-!-Markavian [] has quit [Read error: Connection reset by peer]
19:03-!-Markavian [] has joined #openttd
19:03-!-glx [] has quit [Read error: Connection reset by peer]
19:03-!-glx [glx@2a01:e35:2f59:c7c0:9cb3:7256:d1ec:d19b] has joined #openttd
19:19-!-Progman [] has quit [Remote host closed the connection]
19:24-!-Zuu [] has quit [Ping timeout: 480 seconds]
19:26<Eddi|zuHause>bäh somebody slap me for trying to touch gui code...
19:30-!-Devroush [] has quit []
19:32-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
20:09-!-roadt [~roadt@] has joined #openttd
20:14-!-HellTiger [] has quit [Quit: KVIrc 4.2.0 Equilibrium]
20:15-!-glx [] has quit [Remote host closed the connection]
20:15-!-glx [glx@2a01:e35:2f59:c7c0:9cb3:7256:d1ec:d19b] has joined #openttd
20:44-!-glx [] has quit [Quit: Bye !]
21:08-!-cyph3r [] has joined #openttd
21:57-!-TrueBrain_ [] has joined #openttd
22:01-!-TrueBrain [] has quit [Ping timeout: 480 seconds]
22:44-!-cyph3r [] has quit [Quit: Miranda IM! Smaller, Faster, Easier.]
23:39-!-HerzogDeXtEr1 [] has joined #openttd
23:46-!-HerzogDeXtEr [] has quit [Ping timeout: 480 seconds]
23:50<DDR>Eddi|zuHause: As someone who has touched other GUI code: "Slap."
23:50<DDR>A mere four hours later. :P
---Logclosed Fri May 03 00:00:48 2013