Reputation
19,762
Top tag
Next privilege 20,000 Rep.
Access 'trusted user' tools
Badges
2 39 91
Impact
~826k people reached

Aug
24
comment Is macros support in a programming language considered harmful?
The distinction has to do with the consistency of the language. Think of it this way, you're planning on going to a foreign country and you have to learn to speak French to go places and buy food. When dealing with customs would you rather also have to learn Swedish or just deal with French. C precompiler macros are both syntactically and grammatically different than standard C. The cognitive challenge is then figuring out what that other language is going to do to your standard C program. In some cases it's easy, but I've seen whole code phrases as a macro definition. Now debug it.
Jul
29
comment Removing hard-coded values and defensive design vs YAGNI
@Andy, what part of that is assigning blame? Presenting the design limitations to the client allows them the opportunity to either prioritize the complicated work now and take other stuff off the table, push back the deadline, or accept the limited design now as other things on the table are more important to them. You are empowering your client with the choice over their product. Making your client aware of the risk/reward of choices you want to make in their interest will make the project run smoother.
Feb
6
comment Code Reviews do they really work in true Agile?
Time performing review vs. defects found and their severity. We compared that with the same metrics against unit testing. Issues discovered during code review were almost always code formatting related, and they took longer to perform. The same time spent doing unit tests uncovered real problems and took no longer to prepare and do.
Feb
1
comment Controller in MVC
A compiled language (all .Net languages are compiled) doesn't really load a class file each time it is used. It loads the assembly once, and instantiates the controller as needed. Since just about everything is just instructions, a controller doesn't really take up much memory at all. It's more efficient than you are imagining. However, with your first comment it would still be correct from an MVC point of view. It can be a lot of work, but it behaves similarly to what you get now.
Feb
1
comment Controller in MVC
MVC also allows you to test the controller without having to go through the transform process. Ensuring the response is a 404 when a resource doesn't exist, etc. is a lot easier when you don't have to fire up a web server and work through the web client APIs.
Feb
1
comment Should character encodings besides UTF-8 (and maybe UTF-16/UTF-32) be deprecated?
Hanged, really? And is everything still expressed in XML these days? When possible, binary data should be treated as binary, but when it's not possible you have to work around it. Both base 64 and URIs are ways to work around it. I think you need to calm down.
Nov
30
comment Will Java catch up with C#?
At the time I wrote the answer, it wasn't. So C# has a Microsoft written a runtime and libraries that work on Mac and Unix? Mono isn't directly from Microsoft, even though it might have some Microsoft developers working on it. I still have doubts about a desktop app built on WPF working for Linux. Server side only might be OK.
Jul
19
comment Isn't striving for elegance counter-productive?
An interface should encapsulate the contracts required for proper decoupling of code. There is no hard fast rule on the size of the interface. I've gone down the road of splintering interfaces down to very fine levels and it does get counter productive. Interfaces are a great tool when used appropriately, but their use does not necessarily imply elegance. It's more about using the most appropriate tool for the job. Interfaces aren't always the answer, they can simplify some problems and complicate others.
Mar
23
comment Haskell vs Erlang for web services
@thecoshman, My appologies... After 3 years I can't even recall the contents of what used to be on the page.
Mar
11
comment How do I licence my OS project, which uses other (differently-licenced) projects?
Read the licenses in question. Both FSUnit and NancyFX provide the clauses to use the software as you see fit (including sale) provided the license for the library is preserved. The ASL has the additional proviso that if there are any grants or patents that they convey without royalties to all users of the code. The critical section is the AS IS clause which all software licenses include. I'd only consult an attorney if we are talking about GPL, MPL, or various other licenses that are not so clear cut.
Feb
28
comment How to prepare for rewriting an application's glue
I have not done one rewrite (targeted or otherwise) where there were not changes you could not account for. My experience is to expect that there will always be. If I'm ever proven wrong, then I'll finally beat my projections. The point of the estimate is to give you and your boss a rough idea of the amount of investment required before you start.
Feb
28
comment How to prepare for rewriting an application's glue
@RobertHarvey, that's not true. Check the second bullet of the second set of bullets in my answer.
Feb
28
comment How to prepare for rewriting an application's glue
Fancier estimation procedures aren't going to make you more accurate. The issue is the problems you don't know about until you start changing things. There are inherently consequences that are hidden from your initial analysis. It's when you are in the midst of the rewrite you discover these issues. Coming up with the rough estimate before your project begins, tripling your original estimate is going to be the closest bet. As you progress and find more tasks that have to be added to the list, you can refine the estimate over time.
Feb
27
comment Programs that claim they are not “multi-core” friendly
The real point is that you need to design for parallel execution, and if you don't you are constrained by your lack of design. I agree that it can be very easy to do different things in parallel, but not if it's an existing application with high user expectations. In that case it very well may need a rewrite to make it possible. Rewrites are inherently risky, but occasionally you can make a good argument for them. I've done a couple such rewrites which maximized parallel processing while preserving as much code as possible. There's a lot of hidden factors.
Jul
31
comment Why are most browsers developed in C++
Depends on which version of IE and Firefox you are comparing. Benchmarks are also only part of the picture. I've always found IE to be very slow and cumbersome to work with. Still have to support it with some apps.
Jul
31
comment Why are most browsers developed in C++
Honestly a lot of it comes down to the enemy you know vs. the enemy you don't. I doubt you'll be able to get an all Java browser to be as performant as Firefox (possibly Internet Explorer but that's a very low bar). I made my living doing Java programming for a while, and it's the last thing I would choose for making a browser. There's a lot of practicalities involved here that neither Java or C# address.
Jul
13
comment Should software engineers also act as tech support?
You want your developers to be perceived as knowledgeable--make them the second person the customer talks to. By then the customer will calm down some and behave a bit more reasonably. Now, if it's a customer you have a good relationship with and it's not the first introduction the developer has to the client, then it would be perfectly fine. First contact should be vetted through someone else first though.
Jul
1
comment Windows Permissions for Developers?
Correct. Separate machines for internet and devopment
Apr
17
comment Dealing with profanity in source code
@TRiG, My answer to the OP's question was one of understanding the context and culture of the development team. Sounds like we are getting off on a tangent.
Apr
12
comment What are some arguments AGAINST using EntityFramework?
If you use the EF XML and let the EF generate your classes for you, that is your only option. Getting EF to work with POCO can be challenging particularly if you are on a private network with no direct access to the internet.