17,509 reputation
33371
bio website contactandcoil.com
location Ontario, Canada
age 39
visits member for 4 years, 6 months
seen 1 hour ago

By day I'm a Professional Engineer, currently working as a .NET software developer. My CV.

I also wrote and maintain an open source extensible application framework called SoapBox Core, and an open source C# library for communicating with Insteon home automation devices called FluentDwelling.

You can follow me on twitter.


Apr
16
awarded  Nice Answer
Mar
30
comment Web App vs. Desktop App Regarding Deployment
As someone who pushes out sometimes more than one update per day to a .NET company-wide application deployed via ClickOnce, I really don't believe the "deployment" argument anymore (unless you're delivering over the actual internet, or you have non-Windows clients). For internal applications, ClickOnce works really well.
Mar
26
revised Object creation: when should I expose a factory vs wrapping class?
added 252 characters in body
Mar
26
answered Object creation: when should I expose a factory vs wrapping class?
Mar
17
comment Do enums create brittle interfaces?
It's ok, just didn't like anyone bashing good old object oriented programming. :) Especially since most of us combine functional programming and OOP more than strictly OOP anymore.
Mar
17
comment Do enums create brittle interfaces?
I would hope that an object-oriented programmer would never make their data transfer object, like Pyramid actually know how to draw() a pyramid. At best it might derive from Solid and have a GetTriangles() method and you could pass it to a SolidDrawer service. I thought we were getting away from the examples of physical objects as examples of objects in OOP.
Mar
17
comment GPLv3 + commercial license on the same project?
@bdsl - Yes, distribution was assumed, but I see if you're someone making an internal application and choosing between the licenses you could choose the GPL'd version and it wouldn't matter.
Mar
17
comment Strategies for handling or avoiding race conditions
...since Entities are by definition mutable objects, you should never ever pass an Entity across a thread boundary, which I'm afraid is what you're doing here.
Mar
17
comment Strategies for handling or avoiding race conditions
One problem with your example is that this code assumes Customer (the one passed into your Save function) is a thread safe object. Either you need to make Customer immutable, or you need to use some other kind of locking or memory barrier. I suggest creating an immutable copy.
Mar
17
revised Strategies for handling or avoiding race conditions
Added link to MSDN docs on ConcurrentQueue<T>
Mar
15
comment Do bare computer systems (without OS installed) use (executable) files?
Why copy the EEPROM into RAM? Why not just put the EEPROM (or ROM) into an addressable spot in memory, say at location 0?
Mar
15
comment Do bare computer systems (without OS installed) use (executable) files?
@JamesSnell - The BIOS enumerates the hard drives, not the OS, and then it knows the boot order (due to configuration) so it then knows to look for a master boot record (MBR) on each device, in sequence, and if it finds one, it loads the MBR into memory and executes it. At that point it's whatever's in the MBR that now has control of the computer. This is the correct answer, I think.
Feb
27
awarded  Nice Answer
Feb
24
comment Is it reasonable to assume that any physical quantity can be represented by a 64-bit integer without overflow or underflow?
@piojo - admittedly the sum comes in handy when computing the mean.
Feb
23
comment Mixing BSD + GPL, and dual licensing
@bluescarni - I'm not 100% sure, but I would guess that a github repository would count as distribution (depending on the access rights you set).
Feb
23
answered Mixing BSD + GPL, and dual licensing
Feb
20
comment How do you handle database security from a desktop application?
@gbjbaanb - yes, the stored procedure method is listed in a couple answers below. Also, this is an internal line of business app in a company of about 100 people. It's not a web application and isn't facing the internet. Also, we are using SQL Server users and have auditing procedures in place, so we can likely figure out who did something wrong. Honestly a hacking a much less likely than a simple mistake, and we have lots of things in place to deal with recovery from mistakes.
Feb
20
comment How do you handle database security from a desktop application?
@gbjbaanb - sure, I'll change the whole architecture this afternoon. :)
Feb
19
answered Making an automotive system more 'modular' in terms of software?
Feb
11
comment Can I use GPL software in a commercial application
@quickly_now - that is why the Tivoisation stuff was added in the GPLv3, so if you use GPLv2 code in an appliance, you don't really have to release it, but if you use GPLv3 code, you do. Remember that Tivo used GPL code and never released their modifications, which upset a bunch of people and in part lead to the GPLv3.