Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. What if working as a freelancer needs you to hand out personal copyrighted dlls?

What if working as a freelancer needs you to hand out personal copyrighted dlls?

Scheduled Pinned Locked Moved The Lounge
question
54 Posts 10 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Jimmi Galagher

    Let's say you are working as a freelancer and along with the executables you hand out, in the end of your cooperation the source is asked by the client. Within the source though lie some dlls of your personal framework and the client insists on you giving it also. My response was to pay extra for all, about the 2/5s of the overall price, as most companies selling components do to hand out the source code. In any way I would not hand out the source to my framework, rather rewrite using only necessary classes and methods. What's your opinion?

    R Offline
    R Offline
    Roy from Detroit
    wrote on last edited by
    #41

    In any company I have ever been, if a contractor did a great job but based it upon their own .DLL and refused to give us the source (or worse, tried to charge more money for it when the project was done), the company would refuse to pay the contractor and go out of their way to damage the contractor's reputation (or worse). For all the company knows, you deliberately put some of the work you did for them in your .DLL, and now you are trying to "hold code they paid for hostage". Even if the company trusted you and used your .DLL, that is part of the company's product which they cannot debug. If you are not a vendor of 3rd party components and not selling a complete binaries-only software product, I do not think you can compare yourself to Microsoft or other software vendor. Companies which sell components or turnkey software products have multiple programmers, testing specialists, support staff, a hotline, etc. What happens if you get hit by a truck tomorrow? The company is stuck with a mystery .DLL and a prayer that it will work forever. Yes, the company was foolish for not having you sign a document saying they owned all source code, but as a freelancer, you rely upon a good reputation and the company can seriously damage it with little effort. If I were you, I would: 1. Apologize profusely for the way you have been acting, say you are under stress, have problems at home, whatever it takes. People are used to programmers being...different, they may be understanding. 2. Do whatever it takes to make the customer happy. Do not demand more money. Perhaps make a version of your DLL which only has the parts they need with the source. If you make them happy enough, perhaps they will offer more money or future work, but you will not know if you slam the door on your customer. I am sorry. This may cost you time, but you learned to disclose your plans about using your .DLL earlier. I am sure many customers would be OK with it (especially if it saves them money), as long as you give them a choice. For what it is worth, that's my opinion.

    J 1 Reply Last reply
    0
    • J Jimmi Galagher

      Let's say you are working as a freelancer and along with the executables you hand out, in the end of your cooperation the source is asked by the client. Within the source though lie some dlls of your personal framework and the client insists on you giving it also. My response was to pay extra for all, about the 2/5s of the overall price, as most companies selling components do to hand out the source code. In any way I would not hand out the source to my framework, rather rewrite using only necessary classes and methods. What's your opinion?

      E Offline
      E Offline
      Eric Goedhart
      wrote on last edited by
      #42

      Hi Anatoniades, Every line of code you write as an independent software developer you own automatically and is copyrighted by Law , it's your personal intellectual property. To me it looks like you used parts of software (your “personal framework” as you describe it in your post) in this project for your client and you could (should I think) protect those parts by writing a copyright statement within the code referring to the owner of these parts of the code you have used. The framework you have used is your previous work and you hold the copyright of that work! That You are the owner of these parts of the code has nothing to do with the usage of this code in the current project since it's quite common to use third party code were someone else (an enterprise, organization or individual)is the owner of the code provided. As far as I see it you client may be very happy not to be charged for those parts provided by copyright holders used in the project.

      With friendly greetings,:) Eric Goedhart

      1 Reply Last reply
      0
      • J Jimmi Galagher

        The truth lies somewhere in the middle, I got paid less that agreed, became sceptic and holded all work from there on till we rearranged our agreement, then the client asked for source code of everything fearing the more than expected fact of me walking out of the equation. He loses more than I do in this case, because (a) my dlls are secured and (b) it's original work so it would need me to at least pass some experience and source in order to continue supporting the projects. I don't think is something to go legal for, from either side, since as I mentioned it was a contractless project this one. No contracts, no formal agreements, no signatures rather than our word, which is in most cases easily forgotten and not honoured..

        B Offline
        B Offline
        BillWoodruff
        wrote on last edited by
        #43

        Hi Antoniades, Forgive me for what may seem an ephemeral digression here ... I know you are in a serious situation, and it's undoubtedly causing you stress. I've had one case where "doing business with a friend" ... on a hand-shake ... led to a loss of friendship, and it was "emotionally costly," even though I didn't really lose any money. In that case I did give the source code for the project to the client's company (6000 lines of VBA [worked on both the Mac and Win 2005] turning Excel into a dedicated financial modeling application for the very complex financing and construction scheduling of a multi-national consortium of banks and construction agencies to build an industrial plant), with every comment and every unnecessary carriage-return stripped out. However, I did leave in mnemonic procedure and variable names: that seemed like one "bridge too far" to bomb. Wicked ? Well, perhaps my "friend" might have told me in advance that his real agenda in the project was to have an excuse to visit his girlfriend in Singapore, and he intended, and looked forward to, losing the job he had ... in the first place ? If he'd just said: "look I'm going to get you funded for three or four months at a ridiculously high rate, and you can just screw around and do anything half-assed you like" ... mmm ... that might have worked :) Or, who knows : maybe I might have have had a seizure of integrity, and said "no." best, Bill p.s. whenever I see the expression: "The truth lies somewhere in the middle," I always want to ask whoever said it, or used it, why they say that: in my experience: the Truth is usually the biggest liar at the ends, and beginnings.

        "It is the mark of an educated mind to be able to entertain a thought without accepting it." Aristotle

        J 1 Reply Last reply
        0
        • B BillWoodruff

          Hi Antoniades, Forgive me for what may seem an ephemeral digression here ... I know you are in a serious situation, and it's undoubtedly causing you stress. I've had one case where "doing business with a friend" ... on a hand-shake ... led to a loss of friendship, and it was "emotionally costly," even though I didn't really lose any money. In that case I did give the source code for the project to the client's company (6000 lines of VBA [worked on both the Mac and Win 2005] turning Excel into a dedicated financial modeling application for the very complex financing and construction scheduling of a multi-national consortium of banks and construction agencies to build an industrial plant), with every comment and every unnecessary carriage-return stripped out. However, I did leave in mnemonic procedure and variable names: that seemed like one "bridge too far" to bomb. Wicked ? Well, perhaps my "friend" might have told me in advance that his real agenda in the project was to have an excuse to visit his girlfriend in Singapore, and he intended, and looked forward to, losing the job he had ... in the first place ? If he'd just said: "look I'm going to get you funded for three or four months at a ridiculously high rate, and you can just screw around and do anything half-assed you like" ... mmm ... that might have worked :) Or, who knows : maybe I might have have had a seizure of integrity, and said "no." best, Bill p.s. whenever I see the expression: "The truth lies somewhere in the middle," I always want to ask whoever said it, or used it, why they say that: in my experience: the Truth is usually the biggest liar at the ends, and beginnings.

          "It is the mark of an educated mind to be able to entertain a thought without accepting it." Aristotle

          J Offline
          J Offline
          Jimmi Galagher
          wrote on last edited by
          #44

          Wicked! But in a good sense. :) I appreciate the experience you are sharing. In my case I made sure to obfuscate the dll's of my personal framework and DAL with a commercial product making sure it could not be tampered and no source has been given except for SQL procedures. The difference in the money paid in the end was not as much as the issue, it was not too much loss, but its more the frustration as you so well point out as "emotionally costly"; at the point the "friend" does not intend to do what agreed and justifies it with ridiculous excuses then all trust is lost and it's time to walk out. Saying that the truth lied in the middle was for the part that I did get a portion of the money agreed, client got all working parts in executables but no source code for them, since it had not been asked in the first place. After I saw that the payment will not be as agreed, I proposed a change in the collaboration base, from a non contracted part time to a non contracted project base work, analyzing and pricing what would be requested first, developed, deployed to my personal server, UAT, payment and then upload to the production server. Which was accepted but... The thing that really irritated me, was that the next email I got was saying we have to first validate what is done so far, before we go to project base, upload all code and then we go to that. And we are talking about things given, accepted and being in production for months now... So I counter-proposed to be payed in advance for the source code, and no work after that, since it's obvious "there is a failure in communication"..! This was today. I have no new replies on that, nor I expect one. To be honest I'd prefer not hearing from that person again. I would no longer work under any circumstance with someone who thinks he can outsmart you and continuously tries to find ways to do that.

          1 Reply Last reply
          0
          • R Roy from Detroit

            In any company I have ever been, if a contractor did a great job but based it upon their own .DLL and refused to give us the source (or worse, tried to charge more money for it when the project was done), the company would refuse to pay the contractor and go out of their way to damage the contractor's reputation (or worse). For all the company knows, you deliberately put some of the work you did for them in your .DLL, and now you are trying to "hold code they paid for hostage". Even if the company trusted you and used your .DLL, that is part of the company's product which they cannot debug. If you are not a vendor of 3rd party components and not selling a complete binaries-only software product, I do not think you can compare yourself to Microsoft or other software vendor. Companies which sell components or turnkey software products have multiple programmers, testing specialists, support staff, a hotline, etc. What happens if you get hit by a truck tomorrow? The company is stuck with a mystery .DLL and a prayer that it will work forever. Yes, the company was foolish for not having you sign a document saying they owned all source code, but as a freelancer, you rely upon a good reputation and the company can seriously damage it with little effort. If I were you, I would: 1. Apologize profusely for the way you have been acting, say you are under stress, have problems at home, whatever it takes. People are used to programmers being...different, they may be understanding. 2. Do whatever it takes to make the customer happy. Do not demand more money. Perhaps make a version of your DLL which only has the parts they need with the source. If you make them happy enough, perhaps they will offer more money or future work, but you will not know if you slam the door on your customer. I am sorry. This may cost you time, but you learned to disclose your plans about using your .DLL earlier. I am sure many customers would be OK with it (especially if it saves them money), as long as you give them a choice. For what it is worth, that's my opinion.

            J Offline
            J Offline
            Jimmi Galagher
            wrote on last edited by
            #45

            Thank you for your replay Roy. Most of what you say is quite right but I guess along all the replies -it's somewhere there...- the fact that my client did not payed what agreed makes things a bit different. As I said in the beginning this is not a contract, but more of a gentlement's agreement work. The part where I disagree with you totally is where you say "Do whatever it takes to make the customer happy". We are obligated to do what we are payed for and in good faith I always do more. When the client does not pay you what agreed then the agreement fails. It is terrible to act on fear and lose what you have rightfully earned. I do not want to work anymore with that person for that and a lot more reasons. I would only give a portion of the dlls rewritten which would need time and it costs hence I requested a small amount of money for that. I have nothing to apologize from my side. There are allways bad customers who would try to create bad reputation even if all you did was excelent and even if you worked for free...

            R 1 Reply Last reply
            0
            • J Jimmi Galagher

              Thank you for your replay Roy. Most of what you say is quite right but I guess along all the replies -it's somewhere there...- the fact that my client did not payed what agreed makes things a bit different. As I said in the beginning this is not a contract, but more of a gentlement's agreement work. The part where I disagree with you totally is where you say "Do whatever it takes to make the customer happy". We are obligated to do what we are payed for and in good faith I always do more. When the client does not pay you what agreed then the agreement fails. It is terrible to act on fear and lose what you have rightfully earned. I do not want to work anymore with that person for that and a lot more reasons. I would only give a portion of the dlls rewritten which would need time and it costs hence I requested a small amount of money for that. I have nothing to apologize from my side. There are allways bad customers who would try to create bad reputation even if all you did was excelent and even if you worked for free...

              R Offline
              R Offline
              Roy from Detroit
              wrote on last edited by
              #46

              In my experience, companies which treat people badly get what they deserve. Only the worst employees will work for them and they go out of business. I understand where you are coming from. On two occasions, I refused to work with customers who treated myself or my coworkers badly. Those decisions cost money, but everyone was happier to just have the bad customer gone, so I have no regrets. I think this thread shows you are doing all you can to carefully consider your options, which is good. I think the state of the economy is making me especially reluctant to suggest turning away work. It does not matter who is at fault, if you have to throw empty apologies at a customer to feed your family, then that is what you do. Words cost nothing and some customers just want to hear someone say they are right. You have not been fully paid, but they do not have everything they want either. If you can work out a simple trade to give what they want for a small amount of your time, it might be worth considering. If it is a large amount of your time or you do not trust them to pay you anyway, then you might want to just walk away. I wish you the best.

              J 1 Reply Last reply
              0
              • R Roy from Detroit

                In my experience, companies which treat people badly get what they deserve. Only the worst employees will work for them and they go out of business. I understand where you are coming from. On two occasions, I refused to work with customers who treated myself or my coworkers badly. Those decisions cost money, but everyone was happier to just have the bad customer gone, so I have no regrets. I think this thread shows you are doing all you can to carefully consider your options, which is good. I think the state of the economy is making me especially reluctant to suggest turning away work. It does not matter who is at fault, if you have to throw empty apologies at a customer to feed your family, then that is what you do. Words cost nothing and some customers just want to hear someone say they are right. You have not been fully paid, but they do not have everything they want either. If you can work out a simple trade to give what they want for a small amount of your time, it might be worth considering. If it is a large amount of your time or you do not trust them to pay you anyway, then you might want to just walk away. I wish you the best.

                J Offline
                J Offline
                Jimmi Galagher
                wrote on last edited by
                #47

                No matter how bad the economy is, it should never be a leverage for the bad employer. And this is the case more and more often nowadays. Like you said, eventhough I am very frustrated and annoyed with all, I created the thread in order to see all opinions, there were some useless, some preocupied and some good as yours, even though I can not persuade my self to agree with you totaly..:) It is a very sad true that sometimes it is needed to just play along for the sake of living. I have too much pride for that to play along this time. Pride costs, I know. I would mostly give away the source along with a compromising letter for the sake of my reputation. I know from experience how awfull it can for future emploers to hear bad things for you "eventhough the coding was excellent", just because you didn't do the clown and did not lower your head in all cases. I do not trust them to work again and being with them for some time I have realized they wont exist for more, unless they become professionals, which I don't see it happen in their lifetime...But I can not forsee the future and that is always a possibility in which our paths may come across again. I think your opinion was quite enlightening and had clean and stable arguments. Add the fact that my wife holds the same opinion...I see myself bending towards it. Thank you for your response.

                1 Reply Last reply
                0
                • J Jimmi Galagher

                  Let's say you are working as a freelancer and along with the executables you hand out, in the end of your cooperation the source is asked by the client. Within the source though lie some dlls of your personal framework and the client insists on you giving it also. My response was to pay extra for all, about the 2/5s of the overall price, as most companies selling components do to hand out the source code. In any way I would not hand out the source to my framework, rather rewrite using only necessary classes and methods. What's your opinion?

                  J Offline
                  J Offline
                  Joe Woodbury
                  wrote on last edited by
                  #48

                  Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

                  J A 2 Replies Last reply
                  0
                  • J Joe Woodbury

                    Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

                    J Offline
                    J Offline
                    Jimmi Galagher
                    wrote on last edited by
                    #49

                    ...

                    1 Reply Last reply
                    0
                    • A Albert Holguin

                      I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

                      D Offline
                      D Offline
                      destynova
                      wrote on last edited by
                      #50

                      Albert Holguin wrote:

                      I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

                      People compile using third-party libraries all the time. If you're using an open-source compiler - i.e. GCC - and runtime library then fine. But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs? What if you write a web application for a web server which was linked against a DLL whose source you don't have access to? How can you know, before you even start the project, exactly what parts of the execution hierarchy you will and will not have the source code for? Or do you write some kind of generic catch-all clause in your contract? Or perhaps you'd liaise with the stakeholders and say "we're going to use IIS to host the program. We don't have the source code for IIS"? I don't know. It seems like one of those sliding scale things. If the library in question holds some essential business logic central to the application, then perhaps it should be discussed earlier, at least if there is a contract and it asserts that the source code is required. On the other hand, if the library is totally incidental to and separable from the program logic - like the Qt library or RICHEDxx.DLL, then that's a different story. Recently I was bitten by the same problem - working for several months with no contract; just a useless verbal agreement. It didn't work out very well for either of us...

                      A 1 Reply Last reply
                      0
                      • D destynova

                        Albert Holguin wrote:

                        I see that you're just trying to justify your actions... when you use mscorelib.dll, you know up-front that you don't have access to the source. Did you tell them up-front? That's what I explained earlier to you.

                        People compile using third-party libraries all the time. If you're using an open-source compiler - i.e. GCC - and runtime library then fine. But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs? What if you write a web application for a web server which was linked against a DLL whose source you don't have access to? How can you know, before you even start the project, exactly what parts of the execution hierarchy you will and will not have the source code for? Or do you write some kind of generic catch-all clause in your contract? Or perhaps you'd liaise with the stakeholders and say "we're going to use IIS to host the program. We don't have the source code for IIS"? I don't know. It seems like one of those sliding scale things. If the library in question holds some essential business logic central to the application, then perhaps it should be discussed earlier, at least if there is a contract and it asserts that the source code is required. On the other hand, if the library is totally incidental to and separable from the program logic - like the Qt library or RICHEDxx.DLL, then that's a different story. Recently I was bitten by the same problem - working for several months with no contract; just a useless verbal agreement. It didn't work out very well for either of us...

                        A Offline
                        A Offline
                        Albert Holguin
                        wrote on last edited by
                        #51

                        destynova wrote:

                        But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs?

                        The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                        destynova wrote:

                        How can you know, before you even start the project

                        That's your job as a professional developer. If you can't tell that to some accuracy up-front, you shouldn't sell yourself as an experienced developer. What I'm saying is, it doesn't sound like the OP was up-front with their use of a personal library with their customer. Whenever you use someone else's code in your project, you always know the terms up-front. To turn around after all is said and done and say... "no, I can't give you that code, it's part of my personal library", is just dishonest. As a contracting developer, you shouldn't use code you're not willing to turn over.

                        D 1 Reply Last reply
                        0
                        • J Joe Woodbury

                          Do you really think your "personal code" is all that valuable? If it is, package it and sell it, if not, plaster a public domain license on it, give it to the client and stop worrying about.

                          A Offline
                          A Offline
                          Albert Holguin
                          wrote on last edited by
                          #52

                          :laugh: Although it might sound a bit brash... this statement is actually pretty accurate. It's not the code that's valuable, it's whether you know what to do with it to make something useful.

                          1 Reply Last reply
                          0
                          • A Albert Holguin

                            destynova wrote:

                            But are you suggesting that if you're using Visual Studio to compile something, you have to mention up-front in your contract that you can't provide the source code for the individual Microsoft runtime DLLs?

                            The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                            destynova wrote:

                            How can you know, before you even start the project

                            That's your job as a professional developer. If you can't tell that to some accuracy up-front, you shouldn't sell yourself as an experienced developer. What I'm saying is, it doesn't sound like the OP was up-front with their use of a personal library with their customer. Whenever you use someone else's code in your project, you always know the terms up-front. To turn around after all is said and done and say... "no, I can't give you that code, it's part of my personal library", is just dishonest. As a contracting developer, you shouldn't use code you're not willing to turn over.

                            D Offline
                            D Offline
                            destynova
                            wrote on last edited by
                            #53

                            Albert Holguin wrote:

                            The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                            Yes, but they don't provide the source code. But as I said, it depends on how central the library is to the task your program solves. You could argue that the runtime libraries providing GUI/networking/etc functionality are to some extent irrelevant and replaceable. On the other hand, of course, the entire business logic of the program could be encapsulated in the library, and the "main" program might just be a wrapper which calls a single function in the library DLL - in which case that library's source code would be entirely necessary to do any maintenance. So it depends on what the OP's library did, and how central that was to the program in general. Without knowing that, it seems presumptious to make assumptions about whether it was right or wrong to withhold the source code (if the other party had fulfilled their end regarding payment, of course).

                            A 1 Reply Last reply
                            0
                            • D destynova

                              Albert Holguin wrote:

                              The runtime DLLs are provided with Windows (or by Microsoft under their terms), they're not something you have to provide.

                              Yes, but they don't provide the source code. But as I said, it depends on how central the library is to the task your program solves. You could argue that the runtime libraries providing GUI/networking/etc functionality are to some extent irrelevant and replaceable. On the other hand, of course, the entire business logic of the program could be encapsulated in the library, and the "main" program might just be a wrapper which calls a single function in the library DLL - in which case that library's source code would be entirely necessary to do any maintenance. So it depends on what the OP's library did, and how central that was to the program in general. Without knowing that, it seems presumptious to make assumptions about whether it was right or wrong to withhold the source code (if the other party had fulfilled their end regarding payment, of course).

                              A Offline
                              A Offline
                              Albert Holguin
                              wrote on last edited by
                              #54

                              destynova wrote:

                              Yes, but they don't provide the source code.

                              Not for the windows DLLs... but for a lot of open source libraries, you do get the source code. Heck, even for MFC you get the source (even if it might be cryptic). Again, comparing yourself to a large company is really not a fair comparison at all, specially to a customer who paid for development. In any case, as a project manager (and engineer/developer), I could tell you that wouldn't fly in my company. Having a contractor say he used his own library and can't provide the code for certain sections would be unacceptable.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups