Shop OBEX P1 Docs P2 Docs Learn Events
Announcing P2BEE: Propeller 2 Bytecode Execution Engine - Page 4 — Parallax Forums

Announcing P2BEE: Propeller 2 Bytecode Execution Engine

1246

Comments

  • jmgjmg Posts: 15,183
    edited 2012-12-15 11:53
    cgracey wrote: »
    In order that we all might continue to enjoy sharing on the forums, could you please assure everyone that they needn't worry about being sued by you, under any pretext, if they implement, in some fashion, the idea that you presented to us?

    I think Bill's motive was to prevent such trolls, not to become one...

    Some sobering background reading :
    http://www.inc.com/magazine/201202/kris-frieswick/patent-troll-toll-on-businesses.html
    In 2011, patent trolls cost U.S. companies more than $29 billion in legal fees and settlement costs ..


    I will also note everyone seems focused on 'code' and missing that code is cheap : Any intern can spit code.

    The real value, is in the testing and confirmation, and that is worth much more, than how someone shuffled a few opcodes.

    It is the details of testing and confirmation, where this forum truly shines.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-15 13:01
    Ariba,

    Arggh "Here are some NOT COPYRIGHTED..." Once again, you cannot do that. When you create a work and you automatically get copyright protection. As you have not released that post under any license it is as unusable as Windows 7 source code:)

    Anyway, good to get back to the topic of this thread, byte code execution. Thank you.

    Clearly converting a byte value to a PASM instruction does not a virtual machine make. No way to make a Z80 emulator or whatever with just that. (Unless I have really missed a big point somewhere)

    So what to do?

    1) The PASM instructions resulting from the look up could be all be jumps to op code handlers. Which jump back to the CLUT look up loop when they are done.

    The ZPU instruction set, for example, is small enough that all those op code handlers can live in COG. So at least we have a ZOG with a faster dispatch mechanism. Of course I expect the extended Prop II instruction set can speed up the handlers as well. ZOG is stirring in his iceberg as we speak.

    It may be possible to get most of a Intel 8080/8085 done that way. Perhaps not a Z80

    2) The results of the CLUT look up could all be the HUB addresses of op code handlers that are written in LMM.

    Now we can have as long and complex op code handlers as we like. There is a complication with the Z80, as done by ZiCog, as it actually has three lookup tables to handle different Z80 instruction prefixes. Here we only have a CLUT speed up for one of them.

    4) The results of the CLUT look up could be a LONG containing, for example 3 addresses of COG routines. Those routines are sub ops of the bytecode in question. Like "load something", "do some operation", "store somewhere". This is how ZiCog works. An idea from Cluso which makes for smaller emulator size, the little sub ops all fit in COG so that it has speed gains as well.

    So as we see the super fast CLUT look up only optimizes part of our problem.

    Any other ideas?
  • AribaAriba Posts: 2,690
    edited 2012-12-15 13:16
    The CLUT lookup access is not faster than cog ram access with the new INDA, INDB registers. So the CLUT brings nothing for speed, you only can save cog-ram with it.

    Bill's idea is explicitly to use the CLUT for pure Prop2 instructions which can be looked up fast. He get this speed because he does only that and nothing else what is essential for an Emulator.

    Andy
  • David BetzDavid Betz Posts: 14,516
    edited 2012-12-15 13:19
    Ariba wrote: »
    The CLUT lookup access is not faster than cog ram access with the new INDA, INDB registers. So the CLUT brings nothing for speed, you only can save cog-ram with it.

    Bill's idea is explicitly to use the CLUT for pure Prop2 instructions which can be looked up fast. He get this speed because he does only that and nothing else what is essential for an Emulator.

    Andy
    True but saving COG RAM is a huge benefit! I think anyone who looked at the P2 COG and wanted a relatively large dispatch table would come to the same conclusion. I haven't read Bill's document but I assume there was more to what he was suggesting than simply fetching a P2 instruction from CLUT memory.
  • ctwardellctwardell Posts: 1,716
    edited 2012-12-15 13:32
    Heater. wrote: »
    Ariba,

    Arggh "Here are some NOT COPYRIGHTED..." Once again, you cannot do that. When you create a work and you automatically get copyright protection. As you have not released that post under any license it is as unusable as Windows 7 source code:)

    Anyway, good to get back to the topic of this thread, byte code execution. Thank you.

    Clearly converting a byte value to a PASM instruction does not a virtual machine make. No way to make a Z80 emulator or whatever with just that. (Unless I have really missed a big point somewhere)

    So what to do?

    1) The PASM instructions resulting from the look up could be all be jumps to op code handlers. Which jump back to the CLUT look up loop when they are done.

    The ZPU instruction set, for example, is small enough that all those op code handlers can live in COG. So at least we have a ZOG with a faster dispatch mechanism. Of course I expect the extended Prop II instruction set can speed up the handlers as well. ZOG is stirring in his iceberg as we speak.

    It may be possible to get most of a Intel 8080/8085 done that way. Perhaps not a Z80

    2) The results of the CLUT look up could all be the HUB addresses of op code handlers that are written in LMM.

    Now we can have as long and complex op code handlers as we like. There is a complication with the Z80, as done by ZiCog, as it actually has three lookup tables to handle different Z80 instruction prefixes. Here we only have a CLUT speed up for one of them.

    4) The results of the CLUT look up could be a LONG containing, for example 3 addresses of COG routines. Those routines are sub ops of the bytecode in question. Like "load something", "do some operation", "store somewhere". This is how ZiCog works. An idea from Cluso which makes for smaller emulator size, the little sub ops all fit in COG so that it has speed gains as well.

    So as we see the super fast CLUT look up only optimizes part of our problem.

    Any other ideas?

    Yeah the main use of the CLUT is to bring the look up table into the cog without wasting actual executable registers.

    Most emulations would as you suggest use the CLUT as a jump table because most opcodes do more than what maps to a single prop opcode.
    You also have the case that a lot of the 8 bit micros had an opcode with one or more following bytes holding data, address, offset, etc., so every byte read by the CLUT loop isn't executable anyway.

    You might come up with a nice little VM where a lot of operations did have a 1:1 relationship to prop opcodes with operations that have data in subsequent bytes doing jumps to handlers for those cases.

    C.W.
  • ctwardellctwardell Posts: 1,716
    edited 2012-12-15 13:37
    Ariba wrote: »
    The CLUT lookup access is not faster than cog ram access with the new INDA, INDB registers. So the CLUT brings nothing for speed, you only can save cog-ram with it.

    Bill's idea is explicitly to use the CLUT for pure Prop2 instructions which can be looked up fast. He get this speed because he does only that and nothing else what is essential for an Emulator.

    Andy

    I think that is a lot of the problem, it "feels" like Bill was trying to inject a claim into almost any emulator that makes uses of the CLUT as a deriviative of his loop, when that is actually a very small part of building an emulator.
    I may have taken it the wrong way, but the whole Xmas gift, press release style write-up just rubbed me the wrong way, especially when it seems to be the result of what was a collaborative effort going on in the LMM2 thread.

    C.W.
  • Heater.Heater. Posts: 21,230
    edited 2012-12-15 13:40
    Ariba,

    But I put my dispatch tables in HUB RAM. At least for ZiCog. Can't afford the space in COG. Can't we do CLUT look up faster than HUB table look up. Surley we can.

    At least we save a kilobyte of HUB space which is not to be sniffed at even in the PII.

    David,
    I haven't read Bill's document but I assume there was more to what he was suggesting than simply fetching a P2 instruction from CLUT memory.
    Yes, Bill has already mentioned that in his first post, like so:
    By storing various JMP instructions, sequences of instructions can be run for every byte code - making coding VM's and emulators immensely easier.
    Which is basically my suggestion 1) above.
  • AribaAriba Posts: 2,690
    edited 2012-12-15 13:43
    David Betz wrote: »
    True but saving COG RAM is a huge benefit! I think anyone who looked at the P2 COG and wanted a relatively large dispatch table would come to the same conclusion. I haven't read Bill's document but I assume there was more to what he was suggesting than simply fetching a P2 instruction from CLUT memory.

    No it's not more than that. It' s the usual LMM loop we have discused before, only that he reads a byte from RAM and translates this to a long with the CLUT. The innovation here is near to zero, he could have posted this as another variation of LMM in the other thread.

    The problem is that you can not do much with a subset of 256 instruction (inclusive src,dst combinations) out of 2^32. You would need half the instructions only to load a 7 bit value into a register.
    I don't know what this has to do with ZOG, CMM and so on.

    Andy
  • cgraceycgracey Posts: 14,253
    edited 2012-12-15 13:45
    How about using JMPD's to dip into just one instruction in a table?
    	org
    
    	long	0[$100]		'instructions go here ($000..$0FF)
    
    loop	rdbytec	op,ptra++	'get cached byte
    	jmpd	op		'jump to instruction without clearing pipe
    	jmpd	#loop		'jump back to loop (after 1 instruction)
    	nop			'2 instruction slots for whatever
    	nop
    '	<inst>		'the looked-up instruction executes (6 inst/loop)
    
  • ctwardellctwardell Posts: 1,716
    edited 2012-12-15 13:49
    cgracey wrote: »
    How about using a JMPD's to dip into just one instruction in a table?
    	org
    
    	long	0[$100]		'instructions go here ($000..$0FF)
    
    loop	rdbytec	op,ptra++	'get cached byte
    	jmpd	op		'jump to instruction without clearing pipe
    	jmpd	#loop		'jump back to loop (after 1 instruction)
    	nop			'2 instruction slots for whatever
    	nop
    	nop			'here the table instruction executes (6 inst/loop)
    

    Yeah, but that still has the cost of eating up over half of the COG, using the CLUT leaves the entire COG available for the opcode handlers.

    C.W.
  • AribaAriba Posts: 2,690
    edited 2012-12-15 14:00
    Heater. wrote: »
    Ariba,

    But I put my dispatch tables in HUB RAM. At least for ZiCog. Can't afford the space in COG. Can't we do CLUT look up faster than HUB table look up. Surley we can...

    Yes it is a bit faster (2 cycles), but if you sort the instructions so that the table read from hubram matches the next hub slot, then this read needs also only 3 cycles.

    Andy
  • Heater.Heater. Posts: 21,230
    edited 2012-12-15 14:00
    Ariba,
    The problem is that you can not do much with a subset of 256 instruction (inclusive src,dst combinations) out of 2^32.
    True, but if the looked up instructions are all jumps to different byte code handlers in COG you have an engine. That is exactly what Bill suggests in his opening post.
    I don't know what this has to do with ZOG,
    ZOG runs the ZPU instruction set which only has small number of bytecodes each one of which only needs a few PASM instructions to implement. The whole thing can fit in COG and putting the dispatch table in CLUT is an obvious move.

    That is what it has to do with Zog. Not sure about any CMM but the same might apply. Anyway Zog was the first CMM for the Propeller:)
  • Cluso99Cluso99 Posts: 18,069
    edited 2012-12-15 14:28
    It is a real shame that Bill's post has created so much rage and taken us away from working out new ideas with the P2.

    This forum has been a great area where we can all share code, without any pre-concieved restrictions on code snippets deliberately imposed.

    I think it could be successfully argued (I am not a lawyer), that if one used a small snippet of code in their own commercial code, then using that code was a) only a small piece in the whole code b) obtained from a public forum where it could not be expected to be exclusive use, but a free exchange of ideas and code.

    However, to argue this in court would likely cost both sides $100,000's minimum. You really require deep pockets guys.

    I do not wish to see this forum change from this perceived (free exchange of ideas and code) purpose.

    Now to Bill's posting...

    We do not really know what Bill's motives are.
    Were they to prevent trolls from claiming this idea?
    Was Bill being the troll?

    Just to make it perfectly clear... I do not believe Bill is being the troll. In fact, over on the other thread in the General Forum, Bill clearly states his intention was precisely the reverse - to ensure no-one can claim ownership and demand compensation. Bill has provided many examples of his release of information and helpd freely on these forums. He and others have tried unsuccessfluuly to get a consensus on allocating hub memory as a standard, so that lots of software can be compatable.
    It just seems that the whole problem is
    1) the "demand" for attribution
    2) the fact that quite likely it is unenforcable anyway as the 3 instructions are too minimal for copyright protection
    3) the licence is more than the lowest level(s) which has un-appreciated consequences

    In fact, I was the first to say to Bill that this was an interesting discovery.


    He did post a licence where he demanded attribution but no costs. His licence, as pointed out, carries with it subsistence in any further code released containing his code. This unfortunately seems to be a hidden catch because any code with his included cannot be release with any lesser licence, so nothing under the preferred MIT licence favoured by this forum, and indeed the operators of this forum being Chip, Ken & Parallax.

    Now to the code...

    I actually did not appreciate the inference of the licence, so I looked at his code. It is nothing special as far as code goes. It is really the concept, which as far as I know (again I am not a lawyer) would only possibly be patentable, but certainly not enough (not a lawyer) to create copyright IMHO. I would think 3 instructions in a whole body of code would be so insignificant in the courts eyes.

    I would also argue that this evolved from the discussions in the other threads about using the P2 instructions for LMM2, etc.

    IMHO, this is quite different to LMM on the P1 where the idea was quite novel. But again it's an idea (patents?) and the code is IMHO too short to be copyrightable. Most of us put an attribution in software that uses this mechanism. But this is different to requiring attribution in a product where the source is never released and this attribution is never seen. Imagine buying a product where the manual contains many pages of attributions for every few lines of code gleened from a forum or elsewhere.

    A silly example...
    "google" is now being used as a verb... e.g. Go and "google" xyz. Now, "Google" is a trademark, so really, every time you use google (noun or verb) you need to acknowledge the trademark.

    Can we make amends and move on please??? There is so much more to explore in P2 !!!
  • AribaAriba Posts: 2,690
    edited 2012-12-15 14:36
    Heater. wrote: »
    Ariba,

    True, but if the looked up instructions are all jumps to different byte code handlers in COG you have an engine. That is exactly what Bill suggests in his opening post.

    ZOG runs the ZPU instruction set which only has small number of bytecodes each one of which only needs a few PASM instructions to implement. The whole thing can fit in COG and putting the dispatch table in CLUT is an obvious move.

    That is what it has to do with Zog. Not sure about any CMM but the same might apply. Anyway Zog was the first CMM for the Propeller:)
    Heater

    OK, but if you have all jumps then you don't get 6.5 cycle average instruction rate. For that Chips suggestion may be better, with that you don't need the CLUT anymore.
  • AribaAriba Posts: 2,690
    edited 2012-12-15 14:49
    cgracey wrote: »
    How about using JMPD's to dip into just one instruction in a table?
    	org
    
    	long	0[$100]		'instructions go here ($000..$0FF)
    
    loop	rdbytec	op,ptra++	'get cached byte
    	jmpd	op		'jump to instruction without clearing pipe
    	jmpd	#loop		'jump back to loop (after 1 instruction)
    	nop			'2 instruction slots for whatever
    	nop
    '	<inst>		'the looked-up instruction executes (6 inst/loop)
    

    This is very nifty way to do it. This executes one of the instructions in first 256 cog locations and then automatically jumps back. If you need more native instructions for an emulated one then place a jump there which cancels the automatic jump back.

    And if you can do all the emulated instructions with 2 native instructions, you can place the jmpd #loop one instruction later, so always 2 gets executed before the automatic jump back occures (bit 0 of the byte should then always be 0) .
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2012-12-15 15:18
    Here I was wishing the P2 had something like the IBM 360's EX instruction for this sort of thing, and -- bingo! -- jmpd handles it beautifully! :)

    -Phil
  • pedwardpedward Posts: 1,642
    edited 2012-12-15 17:49
    idbruce wrote: »
    Hello Everyone

    I have made a sincere effort to stay out of this thread, but the more I read, the more upset I become and it troubles me. I have a lot of issues corcerning many of the posts, but I will only address a few.
    1. First off, there seems to be a communist mentality going on here pertaining to the rights of an author to choose what type of license he provides.
    2. Secondly, I believe that a few of the loudest opponents are financially compensated for their own coding efforts, and they should not even be allowed to voice their opinion for this reason.
    3. Thirdly, there is some serious brown nosing going on here. While I am a big fan of Parallax products and the general nature of the forum, I also believe that Parallax is the largest winner of coding efforts from outside sources. I am certain that the trickle down affect of public domain source code helps put money into the corporations pocket. Since I am a fair believer in the right to free entreprise, I have no objection to this, but to jump on the band wagon, well I believe that is truly inappropiate. Even though no patents are held by Parallax, they do have trademark and copyright intellectual property that they protect. For example, the Propeller Manual prohibits commercial duplication. And if I start making Propeller beanie baseball caps and start selling them by the thousands, what do you think would happen?

    Parallax has trademarks, but the propeller beanie wasn't one of them. This was a gift given to Chip by a friend, not a manifestation of the Parallax marketing department.
  • idbruceidbruce Posts: 6,197
    edited 2012-12-15 17:55
    @pedward

    Whatever the case.... Parallax protects it's property with IP laws, that was my point. For example, from Page 2 of the Propeller Manual:
    Parallax, Propeller Spin, and the Parallax and Propeller Hat logos are trademarks of Parallax Inc.
  • cgraceycgracey Posts: 14,253
    edited 2012-12-15 19:07
    idbruce wrote: »
    @pedward

    Whatever the case.... Parallax protects it's property with IP laws, that was my point. For example, from Page 2 of the Propeller Manual:

    This is done to discourage lock-stock-and-barrel duplication of our products. And we've learned from experience that this doesn't even make any difference.

    One time, some competitor copied 123 pages, verbatim, from one of our manuals, in order to sell a work-alike product they had made. You'd think this would be an open-and-shut case, right? Nope! Under advisement from a trusted lawyer friend, we hired a renowned Silicon Valley law firm to write a letter to the plagiarizers, asking only that they write original documentation and distribute it to their customers. We didn't ask for any money, just that they'd do the right thing. After agreeing with our fancy attorney that he was only to write an initial letter, things seemed to drag on and the intrigue slowly developed. Eventually, it was determined that we couldn't do anything about it because we didn't formally register the copyright. That was $36,000 and nine months later. And if that wasn't enough, the defendants had hired the same lawyer who had been paid $440,000 to defend Parallax in a frivolous lawsuit a few years earlier, who knew us quite well. Do you see how these weasels work? Do you see how utterly worthless the system is? The only people that benefit are the lawyers. And I'm sure that if they read this, they would be totally indignant, insisting that they have followed only the highest ethical standards, and that my remarks are dangerously libelous.

    Everyone reading this ought to dispel themselves of the naive notion that the system is going to help them someday if someone rips them off. It won't, because it doesn't care. It doesn't exist for you and I. It only exists to feed off of our conflicts, in as protracted and expensive a manner as possible. We are better off treating each well and taking our chances than supposing these jackals could possibly right some wrong for us.

    The sooner you can divorce yourself from your ingrained belief in the system, the freer and happier you will be.
  • idbruceidbruce Posts: 6,197
    edited 2012-12-15 19:45
    @Chip

    I feel your pain, because I know the system too well. I hate lawyers and I hate the courts, but considering the kind of activity that I am involved with, IP laws play a very major role, providing I want any kind of protection or deterent. Of course there are pros and cons to everything, and of course the system doesn't always work the best that it should, however it is the only system we have, and without it, anarchy would rule. I must believe in the system, because it is the only system and protection we have available. It is either that or grab a gun :)

    Bruce
  • cgraceycgracey Posts: 14,253
    edited 2012-12-15 20:00
    idbruce wrote: »
    @Chip

    I feel your pain, because I know the system too well. I hate lawyers and I hate the courts, but considering the kind of activity that I am involved with, IP laws play a very major role, providing I want any kind of protection or deterent. Of course there are pros and cons to everything, and of course the system doesn't always work the best that it should, however it is the only system we have, and without it, anarchy would rule. I must believe in the system, because it is the only system and protection we have available. It is either that or grab a gun :)

    Bruce

    I'll take "anarchy" for $16 trillion dollars, plus $120 trillion in unfunded liabilities and $500 quadrillion in derivatives!
  • idbruceidbruce Posts: 6,197
    edited 2012-12-15 20:05
    I'll take "anarchy" for $16 trillion dollars, plus $120 trillion in unfunded liabilities and $500 quadrillion in derivatives!

    Okay I am lost :)
  • rjo__rjo__ Posts: 2,114
    edited 2012-12-15 20:28
    Bill: I don't know, must be in the air. Glad to see you floating above it all:)

    What really got the rankles in my kittywampus was one poster saying something like..." who knows, maybe Bill is a troll."

    Well, if you as a poster want to seriously consider this... take a look at all of Bill's contributions to this forum, to outside publications and the effort he has consistently shown.

    Give me a break. This kind of discussion is well below the expected norm for this forum. You all should take a cold shower or a warm bath or walk in a park.

    On to politics!!!

    The situation is worse than portrayed by Chip. The truths he has shared only scratch the surface... the body beneath that surface is all of contract law... a complete sewer.
    one of many personal experiences: I once signed a seven figure contract for the construction and purchase of a medical machine, due at such a time that I could satisfy contracts that I had signed to deliver services, with said machine.
    The machine was never built. There was fraud at every level of the transaction, and just prior to defaulting, the company tried to get me to accept a different (used) machine, which was known widely in the industry to have faults. I refused, waited for the deadline and then spent the money elsewhere. Who got sued? My lawyer told me I couldn't sue, because I repaired any potential damage before it occurred.

    The middle men sued me because I didn't accept a machine that was never built. They didn't sue the company for not producing it:) On advice from my attorney (after years of non-sense and nearly a hundred thousand in legal fees, we settled for $100,000 (we paid... $100,000) to avoid an even more expensive court case.

    What is the lesson? Contracts only protect you from lesser entities. Only do serious business with people you know well. If you don't know anyone... stay out.


    Guys... anyone that protects you from others that might attack you... is your friend.

    Time to apologize or say something that you haven't said so far.

    Rich
  • ctwardellctwardell Posts: 1,716
    edited 2012-12-16 07:11
    I went back and looked over the thread to see if I could determine if Bill is trying to claim rights to using the CLUT in any capacity as an instruction look up, it seems he may be:

    from post #23:

    "No. I just require attribution to using the clut/stack as an instruction store for a quite optimal byte code execution engine."

    The question would be does using the clut/stack to lookup instructions make a "quite optimal byte code execution engine", or does just his specific loop do that?

    My guess is that he means in the general sense because almost any specific application may require some changes to the loop.

    This whole thread has really opened up a lot of issues:

    1) Do we want non-MIT code in the forum, it seems that allowing it is a way to circumvent the obex.
    2) Does Bill have a legal leg to stand on here or is he just hoping we accept the claim.
    3) Should Parallax delay the release of the P2 until they have a group of internal engineers create a boat load of App Notes?
    4) Because, unfortunately now it seems, they have "pre-released" a lot of info, do they need to go back and tweak the instruction set to basically "take back" what has been released.

    3 seems to be the real issue. Chip has created the P1 and P2 as very unique processors.
    They provide different ways of achieving common tasks, often in novel ways.
    The issue that creates is someone can code common routines which they now consider unique and novel due to the P1 and P2 being unique and novel and claim them for themselves.
    The only solution seems to be for Parallax to release large amounts of app notes showing these new ways to code for the P1 and P2 to preclude having a 3rd party do that instead and then insert themself as a middleman to using the P1 and P2.

    The P2 contains significant amounts of novel items including the multiple was to configure I/O pins, the new Video Generator, the enhanced Counters, Cordic, etc.
    Since very little to no code yet exists for these it seems like a ripe opportunity for taking Bill's "I did it first" mentality and presenting a lot more Trojan Horses, I mean "Gift's" to the forum.

    C.W.

    Note: The "just require attribution" in the above quote isn't just attribution, it's the requirement use Bill's same license or seek permission from Bill for a differenent one, the current license as required by Bill would not allow use of this code in Obex items because it is not MIT compliant.
  • idbruceidbruce Posts: 6,197
    edited 2012-12-16 07:35
    Do we want non-MIT code in the forum, it seems that allowing it is a way to circumvent the obex.

    I know I do.

    Irregardless of the license attached, every snippet of code gives us all an opportunity to learn something new. In my opinion, the OBEX is a wonderful place for MIT code, because it gives us access to a library of free to use code, provided in somewhat of a logical means. It is a place where we can all donate "GIFTS". The fourm is a mixture of both personal and commercial developers, and we all know that many commercial developers are reluctant to give up their source code. As for me, my position lies somewhere between personal and commercial,and I do not mind donating "GIFTS", but I also have code that I want to retain the rights to. So basically as a commercial developer, requiring all posts to be MIT would say to me:
    If you are a hobbiest, and don't care who sees, uses, or modifies your code, we will provide you with all the help you need, but if you are a commercial entreprise, you must relinquish the rights to your code, before we will be willing to help you.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-12-16 07:43
    Well Bruce, if you want the free help, everybody needs to benefit.

    If you want help and wish to retain rights, or get a private answer that only you have or some other thing that isn't shared, perhaps that is help worth paying for. Perhaps people undervalue the forum here.

    Where I work, we deal with complex engineering software. (sometimes too complex, but that's a story for another day or over a beer)

    Service rates run from somewhere south of $100 to a fair ways north of $200 per HOUR, depending on what the help consists of. Everybody pays a fair sum annually to support the software and get help. 4 digits of annual costs are common, with 5 and sometimes 6 being appropriate.

    They pay these sums because they need the help and can't / won't share. Think about that for a moment and then think about the forum here and the resource it is.

    I don't know what the norms are for this industry, but I would find it hard to believe somebody would consult for less than $50 / hour in most places. Here on the forum, help --and often really great help happens daily, with many hours of time contributed each day. Do we think there is 10 hours of activity? If so, that's $500 per day happening here, and it happens for our mutual benefit. Everybody contributes, everybody benefits.

    How long has this place been running, and what kind of information can be found here? Pure gold, and given the cost of establishing that gold runs very high, it can be considered gold indeed!

    Those of us who want to preserve that resource are not suggesting it lightly, or for ideological reasons. This is simple economics and high value economics at that.

    When people need help in a private way, where everybody doesn't benefit, that's consulting and it runs by the hour. Think about it.
  • idbruceidbruce Posts: 6,197
    edited 2012-12-16 07:48
    Well Bruce, if you want the free help, everybody needs to benefit.

    Once again, sounds like a communistic mentality.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-12-16 07:51
    Read my edit. I don't think you value the forum properly.
  • evanhevanh Posts: 16,106
    edited 2012-12-16 07:57
    idbruce wrote: »
    Once again, sounds like a communistic mentality.

    That's a good thing in this case.
  • idbruceidbruce Posts: 6,197
    edited 2012-12-16 07:57
    I don't think you value the forum properly.

    I consider this forum very valuable and I would like it to remain that way.
This discussion has been closed.