Dictionary thread-safe-ness
Hi, In short, could you encounter a deadlock whilst accessing a Dictionary object in a thread-unsafe manner ? Consider a class containing a Dictionary and a method to add to the Dictionary. Assume 2 threads call Add( ) public class SomeClass { private Dictionaryint, ListClassA _dictionary = new Dictionaryint, ListClassA(); private void Add(int id, ClassA someObj) { ListClassA list = null; if (!_dictionary.TryGetValue(id, out list))//thread1 hung here { list = new ListClassA(); list.Add(someObj);//thread2 hung here _dictionary.Add(id, list); } else { list.Add(someObj); } } } I encountered a deadlock recently. When I paused the debugger the threads were hung at the indicated position. That is, one was trying to Get and the other trying to Add. The docs regarding Dictionary and Thread Safety state: A DictionaryTKey, TValue can support multiple readers concurrently, as long as the collection is not modified. Even so, enumerating through a collection is intrinsically not a thread-safe procedure. In the rare case where an enumeration contends with write accesses, the collection must be locked during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization. It says 'must be locked' without explaining the consequences. I am aware of the non-deadlocking consequences but I didn't expect it to deadlock! (perhaps it did not and it was something else, I had lots of threads and did not investigate this at the time) Regards Wal
RE: Dictionary thread-safe-ness
Yes, you could encounter a deadlock during threads writing un-synchronised to a dictionary. Not necessarily what happened in your case, but as an example imagine a linked list having its links modified incorrectly, you could end up with 2 links pointing to each other with .Next never terminating! Mitch From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, 3 June 2010 7:39 PM To: 'ozDotNet' Subject: Dictionary thread-safe-ness Hi, In short, could you encounter a deadlock whilst accessing a Dictionary object in a thread-unsafe manner ? Consider a class containing a Dictionary and a method to add to the Dictionary. Assume 2 threads call Add( ) public class SomeClass { private Dictionaryint, ListClassA _dictionary = new Dictionaryint, ListClassA(); private void Add(int id, ClassA someObj) { ListClassA list = null; if (!_dictionary.TryGetValue(id, out list))//thread1 hung here { list = new ListClassA(); list.Add(someObj);//thread2 hung here _dictionary.Add(id, list); } else { list.Add(someObj); } } } I encountered a deadlock recently. When I paused the debugger the threads were hung at the indicated position. That is, one was trying to Get and the other trying to Add. The docs regarding Dictionary and Thread Safety state: A DictionaryTKey, TValue can support multiple readers concurrently, as long as the collection is not modified. Even so, enumerating through a collection is intrinsically not a thread-safe procedure. In the rare case where an enumeration contends with write accesses, the collection must be locked during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization. It says 'must be locked' without explaining the consequences. I am aware of the non-deadlocking consequences but I didn't expect it to deadlock! (perhaps it did not and it was something else, I had lots of threads and did not investigate this at the time) Regards Wal
RE: Dictionary thread-safe-ness
Hi Mitch, In my specific example are linked lists used? (curious on implementation) Wal From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Mitch Wheat Sent: Thursday, 3 June 2010 10:24 PM To: 'ozDotNet' Subject: RE: Dictionary thread-safe-ness Yes, you could encounter a deadlock during threads writing un-synchronised to a dictionary. Not necessarily what happened in your case, but as an example imagine a linked list having its links modified incorrectly, you could end up with 2 links pointing to each other with .Next never terminating! Mitch From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, 3 June 2010 7:39 PM To: 'ozDotNet' Subject: Dictionary thread-safe-ness Hi, In short, could you encounter a deadlock whilst accessing a Dictionary object in a thread-unsafe manner ? Consider a class containing a Dictionary and a method to add to the Dictionary. Assume 2 threads call Add( ) public class SomeClass { private Dictionaryint, ListClassA _dictionary = new Dictionaryint, ListClassA(); private void Add(int id, ClassA someObj) { ListClassA list = null; if (!_dictionary.TryGetValue(id, out list))//thread1 hung here { list = new ListClassA(); list.Add(someObj);//thread2 hung here _dictionary.Add(id, list); } else { list.Add(someObj); } } } I encountered a deadlock recently. When I paused the debugger the threads were hung at the indicated position. That is, one was trying to Get and the other trying to Add. The docs regarding Dictionary and Thread Safety state: A DictionaryTKey, TValue can support multiple readers concurrently, as long as the collection is not modified. Even so, enumerating through a collection is intrinsically not a thread-safe procedure. In the rare case where an enumeration contends with write accesses, the collection must be locked during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization. It says 'must be locked' without explaining the consequences. I am aware of the non-deadlocking consequences but I didn't expect it to deadlock! (perhaps it did not and it was something else, I had lots of threads and did not investigate this at the time) Regards Wal
RE: Dictionary thread-safe-ness
It's a hashtable, and it uses an array of linked lists From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, 3 June 2010 8:26 PM To: 'ozDotNet' Subject: RE: Dictionary thread-safe-ness Hi Mitch, In my specific example are linked lists used? (curious on implementation) Wal From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Mitch Wheat Sent: Thursday, 3 June 2010 10:24 PM To: 'ozDotNet' Subject: RE: Dictionary thread-safe-ness Yes, you could encounter a deadlock during threads writing un-synchronised to a dictionary. Not necessarily what happened in your case, but as an example imagine a linked list having its links modified incorrectly, you could end up with 2 links pointing to each other with .Next never terminating! Mitch From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, 3 June 2010 7:39 PM To: 'ozDotNet' Subject: Dictionary thread-safe-ness Hi, In short, could you encounter a deadlock whilst accessing a Dictionary object in a thread-unsafe manner ? Consider a class containing a Dictionary and a method to add to the Dictionary. Assume 2 threads call Add( ) public class SomeClass { private Dictionaryint, ListClassA _dictionary = new Dictionaryint, ListClassA(); private void Add(int id, ClassA someObj) { ListClassA list = null; if (!_dictionary.TryGetValue(id, out list))//thread1 hung here { list = new ListClassA(); list.Add(someObj);//thread2 hung here _dictionary.Add(id, list); } else { list.Add(someObj); } } } I encountered a deadlock recently. When I paused the debugger the threads were hung at the indicated position. That is, one was trying to Get and the other trying to Add. The docs regarding Dictionary and Thread Safety state: A DictionaryTKey, TValue can support multiple readers concurrently, as long as the collection is not modified. Even so, enumerating through a collection is intrinsically not a thread-safe procedure. In the rare case where an enumeration contends with write accesses, the collection must be locked during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization. It says 'must be locked' without explaining the consequences. I am aware of the non-deadlocking consequences but I didn't expect it to deadlock! (perhaps it did not and it was something else, I had lots of threads and did not investigate this at the time) Regards Wal
Re: .NET Obfuscator Software..free!
http://www.babelfor.net *Protect software components realized with Microsoft .NET Framework in order to protect intellectual property and makes reverse engineering difficult.* * * *Supports .NET Framework 4.0 and Visual Studio 2010* I have never used it, just saved the link for a rainy day :) from this blog post http://www.andybeaulieu.com/Home/tabid/67/EntryID/198/Default.aspx Obfuscating Silverlight (for free) On Thu, Jun 3, 2010 at 8:11 PM, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
Re: .NET Obfuscator Software..free!
Eazfuscator is OKaccording to the reverse-engineering forums pretty much all the .NET obfuscators can be broken, but they seemed to rate SmartAssembly (not free) the highest. Joseph On Fri, Jun 4, 2010 at 12:53 AM, .net noobie dotnetnoo...@gmail.com wrote: http://www.babelfor.net *Protect software components realized with Microsoft .NET Framework in order to protect intellectual property and makes reverse engineering difficult.* * * *Supports .NET Framework 4.0 and Visual Studio 2010* I have never used it, just saved the link for a rainy day :) from this blog post http://www.andybeaulieu.com/Home/tabid/67/EntryID/198/Default.aspx Obfuscating Silverlight (for free) On Thu, Jun 3, 2010 at 8:11 PM, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto: ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com -- Joseph Cooney http://jcooney.net
Re: .NET Obfuscator Software..free!
Interesting position. Your situation is obviously different to ours, but when we write code for clients we always hand over the source code either at the end of the job, or upon request. This is understood from the start. I can't imagine doing it any other way. On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway *From:* ozdotnet-boun...@ozdotnet.com [mailto: ozdotnet-boun...@ozdotnet.com] *On Behalf Of *Michael Minutillo *Sent:* Thursday, 3 June 2010 3:07 PM *To:* ozDotNet *Subject:* Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
Re: .NET Obfuscator Software..free!
Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
RE: .NET Obfuscator Software..free!
We use Smart Assembly and it seems to work pretty well, haven't run into any problems so far. Also now that Red Gate have acquired both Reflector and Smart Assembly they're in a unique position in the obfuscation market. Paul. From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Joseph Cooney Sent: Friday, 4 June 2010 8:11 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Eazfuscator is OKaccording to the reverse-engineering forums pretty much all the .NET obfuscators can be broken, but they seemed to rate SmartAssembly (not free) the highest. Joseph On Fri, Jun 4, 2010 at 12:53 AM, .net noobie dotnetnoo...@gmail.com wrote: http://www.babelfor.net http://www.babelfor.net/ Protect software components realized with Microsoft .NET Framework in order to protect intellectual property and makes reverse engineering difficult. Supports .NET Framework 4.0 and Visual Studio 2010 I have never used it, just saved the link for a rainy day :) from this blog post http://www.andybeaulieu.com/Home/tabid/67/EntryID/198/Default.aspx Obfuscating Silverlight (for free) On Thu, Jun 3, 2010 at 8:11 PM, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn't ask for the code then i don't give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com -- Joseph Cooney http://jcooney.net
ADWS (Active Directory Web Services)
Hi Folks, ADWS (Active Directory Web Services) is available in 2008 R2. I am wondering whether it can be used as a means to interrogate/update AD from a .Net application (i.e. by adding a web reference to the service)? I can't find any examples of using it other than with Powershell. Cheers, Iain Note: I'm aware that I can use the System.DirectoryServices namespace - I'm specifically interested in whether ADWS will do what I want out of the box before I go building my own web service to do the same thing.
Re: Code Ownership WAS: RE: .NET Obfuscator Software..free!
Thank you Dylan, Simon, I don't understand the code for the work done for a specific customer(s), can be a gold mine. I am not sure what owning the code means, anyone and everyone (competent programmer) can reproduce the same effect with some variation. Kind Regards Arjang On 4 June 2010 09:34, Simon Haigh simon_ha...@pillar.com.au wrote: I always thought that being a contractor is similar to being an employee and therefore the codebase would belong to the person/company who employed you (unless otherwise specified). Would that be correct? If not, I'm potentially sitting on a goldmine. :-) -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Dylan Tusler Sent: Friday, 4 June 2010 09:21 AM To: 'ozDotNet' Subject: Code Ownership WAS: RE: .NET Obfuscator Software..free! Disclaimer: IANAL Employee - Any code you write is the property of your employer. Consultant - Any code you write is your property unless you explicitly assign ownership to your client. Company - Any software you sell, the codebase remains your property, not the property of your customer, unless there is a specific license agreement indicating otherwise. For what its worth, when I was consulting, I used to assign code to my customer explicitly, so that they could freely engage other developers to work on it at a later date. If you are working on TM or are working fixed price, I don't think it matters. What matters is the arrangement that you have made between yourself and your customer/client/employer. Here's an article on the US perspective. It mentions the concept of a work for hire agreement, which is where you cross the line between employee and consultant: http://articles.techrepublic.com.com/5100-10878_11-5034783.html Dylan. -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn't ask for the code then i don't give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. -- --- To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or
Re: Code Ownership WAS: RE: .NET Obfuscator Software..free!
On 4 June 2010 09:18, Arjang Assadi arjang.ass...@gmail.com wrote: Thank you Dylan, Simon, I don't understand the code for the work done for a specific customer(s), can be a gold mine. I am not sure what owning the code means, anyone and everyone (competent programmer) can reproduce the same effect with some variation. Kind Regards Arjang Because if the system is complex enough the customer is locked in to you for support and enhancements. We have a system where I work that was developed by a contractor and enhanced over the years by the same contractor (who was assigned the IP rights by my employer - bad mistake on their part). To 'reproduce' the code would take months of work at great cost for us. It is cheaper just to pay him for minor enhancements, even though his hourly rate is exorbitant. For him it's a gold mine.
Re: Code Ownership WAS: RE: .NET Obfuscator Software..free!
Hi Iain, Curious what you are classing as exorbitant. Are we talking $200? On Fri, Jun 4, 2010 at 10:07 AM, Iain Carlin cut...@gmail.com wrote: On 4 June 2010 09:18, Arjang Assadi arjang.ass...@gmail.com wrote: Thank you Dylan, Simon, I don't understand the code for the work done for a specific customer(s), can be a gold mine. I am not sure what owning the code means, anyone and everyone (competent programmer) can reproduce the same effect with some variation. Kind Regards Arjang Because if the system is complex enough the customer is locked in to you for support and enhancements. We have a system where I work that was developed by a contractor and enhanced over the years by the same contractor (who was assigned the IP rights by my employer - bad mistake on their part). To 'reproduce' the code would take months of work at great cost for us. It is cheaper just to pay him for minor enhancements, even though his hourly rate is exorbitant. For him it's a gold mine. -- Liam McLennan. l...@eclipsewebsolutions.com.au http://www.eclipsewebsolutions.com.au
Re: Code Ownership WAS: RE: .NET Obfuscator Software..free!
Yes, it's around the $200 per hour. I guess it's all relative. I know that, given the source code, I could make the changes just as quickly as the contractor. My hourly rate is nothing like the $ he charges, and we wouldn't have to wait for his availablility to make the changes. So in terms of turn-around and cost we would be better off. On 4 June 2010 10:05, Liam McLennan l...@eclipsewebsolutions.com.au wrote: Hi Iain, Curious what you are classing as exorbitant. Are we talking $200? On Fri, Jun 4, 2010 at 10:07 AM, Iain Carlin cut...@gmail.com wrote: On 4 June 2010 09:18, Arjang Assadi arjang.ass...@gmail.com wrote: Thank you Dylan, Simon, I don't understand the code for the work done for a specific customer(s), can be a gold mine. I am not sure what owning the code means, anyone and everyone (competent programmer) can reproduce the same effect with some variation. Kind Regards Arjang Because if the system is complex enough the customer is locked in to you for support and enhancements. We have a system where I work that was developed by a contractor and enhanced over the years by the same contractor (who was assigned the IP rights by my employer - bad mistake on their part). To 'reproduce' the code would take months of work at great cost for us. It is cheaper just to pay him for minor enhancements, even though his hourly rate is exorbitant. For him it's a gold mine. -- Liam McLennan. l...@eclipsewebsolutions.com.au http://www.eclipsewebsolutions.com.au
Re: .NET Obfuscator Software..free!
Also now that Red Gate have acquired both Reflector and Smart Assembly they’re in a unique position in the obfuscation market. It's fair to say they have both ends of the market covered. Craig.
Re: .NET Obfuscator Software..free!
Different approach, Don't obfuscate your code, give them the entire source code. Then attach a restrictive usage license. Then hope that they ignore the license and intergrate your code into their critical systems. Then audit their site a few years on, determine if your license has been breached and have some interesting discussions over litigation or retrospective licensing fees. Isn't that how the big boys do it these days?
Re: Visual Studio output window
I don't know if you can do that already, though my guess is you could probably write a Visual Studio add in to parse the content in the output window. A quick search finds these links: - How to: Create an addin - http://msdn.microsoft.com/en-us/library/80493a3w%28VS.80%29.aspx - How to: Control the Output Window - http://msdn.microsoft.com/en-us/library/ht6z4e28%28VS.80%29.aspx Will On 3 June 2010 22:16, Wallace Turner w.tur...@fex.com.au wrote: Can the Output window in Visual Studio (any version) parse the output to provide quick links to the erroneous class(es) ? Eclipse has had this feature since forever; see screenshot below. I have only included this to explain what I mean (please no Eclipse vs VS fight!) Resharper has a feature called ‘Stack Trace Explorer’ however it is a bit clunky as you need to highlight the bit you want and then open the STE window. Eclipse: image001.png
RE: Visual Studio output window
Can't you just double-click on the error in the output window to go to the class? Or am I missing something obvious... Dylan. From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of William Luu Sent: Friday, 4 June 2010 11:52 AM To: ozDotNet Subject: Re: Visual Studio output window I don't know if you can do that already, though my guess is you could probably write a Visual Studio add in to parse the content in the output window. A quick search finds these links: - How to: Create an addin - http://msdn.microsoft.com/en-us/library/80493a3w%28VS.80%29.aspx - How to: Control the Output Window - http://msdn.microsoft.com/en-us/library/ht6z4e28%28VS.80%29.aspx Will On 3 June 2010 22:16, Wallace Turner w.tur...@fex.com.aumailto:w.tur...@fex.com.au wrote: Can the Output window in Visual Studio (any version) parse the output to provide quick links to the erroneous class(es) ? Eclipse has had this feature since forever; see screenshot below. I have only included this to explain what I mean (please no Eclipse vs VS fight!) Resharper has a feature called 'Stack Trace Explorer' however it is a bit clunky as you need to highlight the bit you want and then open the STE window. Eclipse: [cid:451395201@04062010-1C5E] - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 inline: image001.png
RE: Visual Studio output window
It can parse the output. Put it in the same format as what the compiler splits out. It won't parse Exception stacks though. From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, June 03, 2010 5:16 AM To: 'ozDotNet' Subject: Visual Studio output window Can the Output window in Visual Studio (any version) parse the output to provide quick links to the erroneous class(es) ? Eclipse has had this feature since forever; see screenshot below. I have only included this to explain what I mean (please no Eclipse vs VS fight!) Resharper has a feature called 'Stack Trace Explorer' however it is a bit clunky as you need to highlight the bit you want and then open the STE window. Eclipse: [Description: cid:image001.png@01CB034E.36BAB810] inline: image001.png
[OT]Junior Designer/dotnet person required
Where can i post a job requirement for students..is there a student bulletin board or similar or do i just contact a RMNIT etc? http://www.intellixperience.com/signup.aspx Is your website being IntelliXperienced? regards Anthony (*12QWERNB*) Is your website being IntelliXperienced?
Re: [OT]Junior Designer/dotnet person required
I'd get in contact with Andrew Parsons http://blogs.msdn.com/b/andrewparsons/ as he's the Academic DPE guy in Australia. Plus he was looking a while back to connect students with workplaces. On Fri, Jun 4, 2010 at 10:09 AM, Anthony asale...@tpg.com.au wrote: Where can i post a job requirement for students..is there a student bulletin board or similar or do i just contact a RMNIT etc? Is your website being IntelliXperienced?http://www.intellixperience.com/signup.aspx regards Anthony (*12QWERNB*) Is your website being IntelliXperienced? -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
Re: .NET Obfuscator Software..free!
On 4 June 2010 11:19, Jason Finch jason.fi...@gmail.com wrote: Different approach, Don't obfuscate your code, give them the entire source code. Then attach a restrictive usage license. Then hope that they ignore the license and intergrate your code into their critical systems. Then audit their site a few years on, determine if your license has been breached and have some interesting discussions over litigation or retrospective licensing fees. Isn't that how the big boys do it these days? And if you're SCO Step 3 - don't profit Step 4 - go broke -- Meski Going to Starbucks for coffee is like going to prison for sex. Sure, you'll get it, but it's going to be rough - Adam Hills
Re: .NET Obfuscator Software..free!
genius! :) On 4 June 2010 11:19, Jason Finch jason.fi...@gmail.com wrote: Different approach, Don't obfuscate your code, give them the entire source code. Then attach a restrictive usage license. Then hope that they ignore the license and intergrate your code into their critical systems. Then audit their site a few years on, determine if your license has been breached and have some interesting discussions over litigation or retrospective licensing fees. Isn't that how the big boys do it these days?
RE: Code Ownership WAS: RE: .NET Obfuscator Software..free!
Well, I specifically didn't mention Contractors, as this is generally a work for hire situation, but it can be a grey area. It seems one of the delineating issues (apart from whatever may be written into your contract) is whether you use your client's tools and equipment, or whether you work on your own. I've contracted in both ways. It usually pays to be explicit about it. In my (admittedly not very vast) experience, small companies usually don't even consider these issues themselves unless you bring it up. Dylan. -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Simon Haigh Sent: Friday, 4 June 2010 9:34 AM To: ozDotNet Subject: RE: Code Ownership WAS: RE: .NET Obfuscator Software..free! I always thought that being a contractor is similar to being an employee and therefore the codebase would belong to the person/company who employed you (unless otherwise specified). Would that be correct? If not, I'm potentially sitting on a goldmine. :-) -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Dylan Tusler Sent: Friday, 4 June 2010 09:21 AM To: 'ozDotNet' Subject: Code Ownership WAS: RE: .NET Obfuscator Software..free! Disclaimer: IANAL Employee - Any code you write is the property of your employer. Consultant - Any code you write is your property unless you explicitly assign ownership to your client. Company - Any software you sell, the codebase remains your property, not the property of your customer, unless there is a specific license agreement indicating otherwise. For what its worth, when I was consulting, I used to assign code to my customer explicitly, so that they could freely engage other developers to work on it at a later date. If you are working on TM or are working fixed price, I don't think it matters. What matters is the arrangement that you have made between yourself and your customer/client/employer. Here's an article on the US perspective. It mentions the concept of a work for hire agreement, which is where you cross the line between employee and consultant: http://articles.techrepublic.com.com/5100-10878_11-5034783.html Dylan. -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn't ask for the code then i don't give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already!
RE: .NET Obfuscator Software..free!
Well i treat software like a car. When you buy a car they don't give you the blueprints... Client always gets what they pay for..which is usually a function piece of software(code not always included) that helps them run their business... -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesnt ask for the code then i dont give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
Re: .NET Obfuscator Software..free!
On Fri, Jun 4, 2010 at 1:25 PM, Anthony asale...@tpg.com.au wrote: Well i treat software like a car. When you buy a car they don't give you the blueprints... That is true for software too - sometimes. A car is one of thousands of identical vehicles on sale. Each purchaser owns the car but not the blueprint. This is equivalent to creating a software app and selling it out of a box to all comers. BUT, sometimes software is like building a house - it is designed just how the client wants it and is individual. When I buy a house, I certainly expect the architect to supply all relevant plans. So, are you building an application to sell in a box, or are you making something specifically for one client?
Re: .NET Obfuscator Software..free!
If I buy a car that was built by a couple of guys at the local garage I'd like to know I could take it to a different mechanic when they go out of business or raise their prices. On Fri, Jun 4, 2010 at 11:25 AM, Anthony asale...@tpg.com.au wrote: Well i treat software like a car. When you buy a car they don't give you the blueprints... Client always gets what they pay for..which is usually a function piece of software(code not always included) that helps them run their business... -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto: ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
Re: .NET Obfuscator Software..free!
Which is where escrow agreements come in in the software world. In my previous job as a contractor, we had an escrow agreement with our customers. Source code was held in escrow by a third party. If we went out of business they handed over the source. That protected both the customer and the supplier. On 4 June 2010 13:04, Michael Minutillo michael.minuti...@gmail.com wrote: If I buy a car that was built by a couple of guys at the local garage I'd like to know I could take it to a different mechanic when they go out of business or raise their prices. On Fri, Jun 4, 2010 at 11:25 AM, Anthony asale...@tpg.com.au wrote: Well i treat software like a car. When you buy a car they don't give you the blueprints... Client always gets what they pay for..which is usually a function piece of software(code not always included) that helps them run their business... -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com ] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto: ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com
RE: Visual Studio output window
Thanks. Dylan, I look at the Error Window to navigate to compile errors (hitherto I didn't realise you could click on warnings/errors in the output window) From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of David Kean Sent: Friday, 4 June 2010 11:55 AM To: ozDotNet Subject: RE: Visual Studio output window It can parse the output. Put it in the same format as what the compiler splits out. It won't parse Exception stacks though. From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Wallace Turner Sent: Thursday, June 03, 2010 5:16 AM To: 'ozDotNet' Subject: Visual Studio output window Can the Output window in Visual Studio (any version) parse the output to provide quick links to the erroneous class(es) ? Eclipse has had this feature since forever; see screenshot below. I have only included this to explain what I mean (please no Eclipse vs VS fight!) Resharper has a feature called 'Stack Trace Explorer' however it is a bit clunky as you need to highlight the bit you want and then open the STE window. Eclipse: Description: cid:image001.png@01CB034E.36BAB810 image001.png
Re: .NET Obfuscator Software..free!
On 4 June 2010 13:47, Iain Carlin cut...@gmail.com wrote: Which is where escrow agreements come in in the software world. In my previous job as a contractor, we had an escrow agreement with our customers. Source code was held in escrow by a third party. If we went out of business they handed over the source. Damn, should have read ahead. That protected both the customer and the supplier. On 4 June 2010 13:04, Michael Minutillo michael.minuti...@gmail.com wrote: If I buy a car that was built by a couple of guys at the local garage I'd like to know I could take it to a different mechanic when they go out of business or raise their prices. On Fri, Jun 4, 2010 at 11:25 AM, Anthony asale...@tpg.com.au wrote: Well i treat software like a car. When you buy a car they don't give you the blueprints... Client always gets what they pay for..which is usually a function piece of software(code not always included) that helps them run their business... -Original Message- From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Arjang Assadi Sent: Friday, 4 June 2010 8:38 AM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Hi Anthony, Please forgive my ignorance but my question is what is normal practice? What is meant by work? When quoting hourly rate, I assume that at the end they would get everything and since I have been paid for the time to produce it, it belongs to them. Kind Regards Arjang On 3 June 2010 20:11, Anthony asale...@tpg.com.au wrote: I assume that if the client doesn’t ask for the code then i don’t give it out. I would increase my fee if they want the code anyway From: ozdotnet-boun...@ozdotnet.com [mailto:ozdotnet-boun...@ozdotnet.com] On Behalf Of Michael Minutillo Sent: Thursday, 3 June 2010 3:07 PM To: ozDotNet Subject: Re: .NET Obfuscator Software..free! Well most clients I have dealt with in the past end up with the source code. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. In the form of a product that is true. But if that were the case I would expect the OP would have wanted to obfuscate the entire solution. As there is a single binary to be obfuscated (and it gets used a lot) it sounds more likely that it is being used in custom software that is developed for a single client. For the client: If they purchase a library then they get a support contract so if things go wrong they get fixed If they use an open source library then they get the code so they can fix issues or pass them on to someone to fix. If the developer hands them a library which is neither they could be in trouble. If you are selling a product with support then this is OK because you have an agreement with the client that you'll fix anything that goes wrong. If you were to have a falling out with the client over an invoice or something (it happens) then they effectively have a piece of software that only you (someone they no longer wish to do business with) can maintain. As a client I would consider that an unacceptable risk. On Thu, Jun 3, 2010 at 12:48 PM, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: That is potentially a pretty dangerous risk for a client to accept isn't it? Unless it contains some kind of proprietary algorithm or something I'm not sure it's a great idea. That's a pretty weird point of view. After all, clients have been accepting obfuscated code since time immemorial already! (Well, at least since the 1980s.) That's what compiled code is! Unless you wanted to reverse engineer to assembly language, pretty much everything was obfuscated. Dylan. - To find out more about the Sunshine Coast Council, visit your local council office at Caloundra, Maroochydore, Nambour or Tewantin. Or, if you prefer, visit us on line at www.sunshinecoast.qld.gov.au This email, together with any attachments, is intended for the named recipient(s) only. Any form of review, disclosure, modification, distribution and or publication of this email message is prohibited without the express permission of the author. Please notify the sender immediately if you have received this email by mistake and delete it from your system. Unless otherwise stated, this email represents only the views of the sender and not the views of the Sunshine Coast Regional Council. maile 3_1_0 -- Michael M. Minutillo Indiscriminate Information Sponge Blog: http://wolfbyte-net.blogspot.com -- Michael M. Minutillo
Re: Visual Studio output window
On 4 June 2010 14:37, Dylan Tusler dylan.tus...@sunshinecoast.qld.gov.au wrote: Dylan, I look at the Error Window to navigate to compile errors (hitherto I didn’t realise you could click on warnings/errors in the output window) Naturally, I don't get any warnings or errors in my output window, so I can't verify that either. Oooo, it's *definitely Friday! Well played. -- Meski Going to Starbucks for coffee is like going to prison for sex. Sure, you'll get it, but it's going to be rough - Adam Hills