Generally speaking no-one tracks your hours, your office supplies, your minor equipment requisitions (things like cables, power adapters, etc are freely available on a shelf to take without even going through IT). Take what you need.

and even if someone took home an extra power adapter for home use, not that big of a deal.. the only risk come from those who would smuggle them out by the hundreds to sell on the market, which is ridiculous to assume anyone would legit do that

I think too many people (especially common here in Israel) have a mindset where they're unwilling to feel like they lost out on something. They're willing to prevent 50 legitimate employee actions to prevent the one, potential illegitimate one.

once upon a time when most employees were blue collar workers working in the mines, they were barely getting by. There was a good reason why you had to clock in, and why there was an overseer. It was because you had to guarantee that work was being done

At least for developers, it's about working smart, not working long hours as I see it

There was some guy who outsourced his work to several Indian developers, and he got away with it for a while. Heck, they considered him for promotion for all the hard work that he was doing.

When they found out, they fired him, and I was thinking.. wait a second.. the work was getting done.. you don't fire a guy like that..

@Neil In the 19th century you had large corporations building towns around mines and factories, and generally controlling everything about it. Workers would be paid in company currency that could only be used in company stores.

@Neil I heard about some top-of-the-line dev who always delivered impecable work, with best practices and very efficient solutions, he was being paid in 6 digits. At some point they found out his work was being outsourced to a Chinese dev company

@Neil No, he hadn't proven himself. He had lied and exposed to company to information leakage, potential lawsuits and other problems. The fact that the outsourced worker hadn't used his physical security key to leak other information was merely luck.

@Hypersapien what you are looking for is "the lack of static" and "discipline"

static basically means that fields/properties are shared between every instance

private means that you cant access it from anywhere else in your application

but other instances can still access the value from your instance when that code is inside your class

and there is no reason to make anything more private

for example, the equals function should be able to access those values

and you, as developer, are in control of what is written in that class/file, so you can decide if you want to access the properties of other instances

> struct Property<T, P> where P : IValidator<T>, new ()

this line can be split up in two parts

> struct Property<T, P>

this basically defines a struct named "Property"

it also has 2 generic types "T" and "P"

generics are basically a form of composition of types

for example, you can make a List implementation, for example LinkedList, but you dont want to make that implementation for every type that you can imagine, so you make a generic type parameter so you can compose the type at the call site

LinkedList<String>, LinkedList<Int32>, LinkedList<XDocument>, etc will all be that same class