Posted by jpluimers on 2015/11/11
Interesting:Â Hash Toolkit – Reverse MD5 / SHA1 Hashes
They generate and allow you to generate various hashes, and store both the hash and original so you can reverse it.
Not meant for production data, but an approach for verifying if you do hashing correctly.
–jeroen
via:Â Hash Toolkit – Reverse MD5 / SHA1 Hashes.
Posted in Development, Hashing, md5, Power User, Security, Software Development | Leave a Comment »
Posted by jpluimers on 2015/11/05
Interesting:Â Life in a post-database world: using crypto to avoid DB writes.
For some security related operations, you only need smart use of HMAC, and no temporary database entries.
Thanks for the Jan Wildeboer referral to this.
–jeroen
Posted in Development, Hashing, Power User, Security, Software Development | Leave a Comment »
Posted by jpluimers on 2015/11/04
Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about a gardening metaphor for software development, the reasons coding is not mechanical,and the stratification of development jobs.
Source: Programming is Gardening, not Engineering
Posted in Uncategorized | Leave a Comment »
Posted by jpluimers on 2015/11/04
From a chat with a co-worker a while ago:
|
I’m not against properties. Just something against properties properties that are objects with writeable fields.
|
So even if you expose such a property as read-only, it can still get its writeable fields overwritten.
That is a pain when those are part of the state of the underlying object.
In other words: encapsulate your state changes.
Here we solved it by making
- the type of the property immutable
- the property writeable
- react on state changes during the write
Proper encapsulation.
In this case it was a project mixing C# and Delphi, but you can easily apply the above to any language featuring classes and properties.
Another solution would have been to extend the type of the property so it can expose an event that fires during change. Much more convoluted.
–jeroen
Posted in .NET, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Delphi, Delphi 10 Seattle, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 2 Comments »
Posted by jpluimers on 2015/11/03
Lazy<T> is not constrained to static contexts.
Instance field initialisers cannot use instance references (but can use static references) as they run outside of the constructor.Though there are arguments for instance field initialisers too., I think this is a good reason to initialise fields inside the constructor: there you do have access to instance references (but should not call virtual instance methods or properties) which leads to another reason: consistency as field initialisers run in the opposite hierarchy order as constructors (incidentally causing this virtual method restriction).
Boy, that was a long sentence (:
–jeroen
via:
Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Development, Software Development | Leave a Comment »