| bio | website | |
|---|---|---|
| location | Pretoria, South Africa | |
| age | 32 | |
| visits | member for | 1 year, 8 months |
| seen | 3 hours ago | |
| stats | profile views | 123 |
I am a software developer during the day and hobbyist developer during the night (when time permits). Interested in all aspects of software development, although experienced mainly in the MS environment and languages.
C#, SQL Server, ASP.Net / MVC3, WinForms / WPF, WCF, Object Orientation, Code Generation, CSLA and other business frameworks.
|
May 14 |
comment |
Single codebase for client and server with Node.js @Kevin Your argument seems to boil down to "use the best tool (language) for the job (... and I don't think JS is that great)". This is actually a good perspective to have, but on the other hand, there are other perspectives to consider, too. Re: point 1 - learning a language is perhaps not a big deal (let's call it a week or two if you're quick), but truly mastering it is. This could mean anything from 3 to 6 months to several years, time which you may not have. |
|
May 8 |
comment |
Reasoning to wait until third time in the Rule of Three? That's a good point. In my experience, having a third copy also makes the commonalities and differences between them a bit sharper than with only two. |
|
May 3 |
comment |
Why isn't this “else” statement working? @JanHudec Is the like skipped at runtime, or simply never reached? If it's the latter, it might help if you post the contents of your char[]. |
|
May 3 |
comment |
What tools are you using to improve your professional effectiveness? @Flot2011 I agree with RhysW, some clients are simply like that. You could try go for an agreement where they pay you for the hours worked, but most "problem clients" won't go for that. I try to avoid them completely; often you can get hints before project inception regarding this type of behaviour (e.g. excessively cost-aware on their side, but don't know what they want, and expect you to give a fixed-price quote). There are better clients out there; learn your lessons and move on :) |
|
May 2 |
comment |
What tools are you using to improve your professional effectiveness? @Flot2011 Can you tell us more about the nature of the change requests? Were they mostly look-and-feel changes, or actual functionality? Also, were you paid in any way for the extra work? |
|
May 2 |
comment |
What tools are you using to improve your professional effectiveness? IMHO, constantly changing requirements are better mitigated using various programming techniques / principles and project management approaches, rather than tooling. E.g. prototyping, and / or demoing early and often help the client make up their mind. This should in no way stop you from optimising your workflow as a developer (which is extremely important), I just think the premise of question is incorrect. (To be fair, you commented on this, but still...) |
|
Apr 29 |
comment |
What kind of algorithm could be used to produce an ordering which maximizes # of satisfied 'less than' constraints? +1 for a pretty good summary (and identifying that it is often an NP-hard problem). A couple of comments - in general, it may be necessary to exhaustively search for all combinations / permutations in order to arrive at the best possible answer (OP may not realise this). In general AI terms, the problem is referred to as multi-objective optimisation (constraints are typically unbreakable rules, such as boundary constraints, as Bwmat points out). |
|
Apr 26 |
comment |
What is the best practice for saving TimeZones in the database? @LachlanB one way to put it is that the time zone is more a location than it is an time offset. But even that view is not quite enough on its own, e.g. Russia recently changed their policy regarding daylight savings, meaning that you'd have to treat it differently depending on the actual date. |
|
Apr 25 |
comment |
Puzzle solving: Minimum number of steps to achieve a goal @MichaelT Good point! That said, there are estimated to be 10^15 or 2x10^16 open tours, which would mean the number of closed tours is a small fraction (by one or two orders of magnitude) of all tours available. My point was just that the existence of at least one closed tour immediately proves that any square is reachable from any other :) |
|
Apr 24 |
comment |
Puzzle solving: Minimum number of steps to achieve a goal @DocBrown that's correct, there's even a special case called the knight's tour in which the knight visits each square on the board exactly once, using only normal moves. There are many different approaches to this, and some work from any starting square. |
|
Apr 23 |
comment |
What is the current status of software support for JPEG-2000? @PeterKrauss I could be wrong on this, but the first thing that comes to mind would be lack of (widespread?) support for multiple pages in one file for JPEG and JPEG-2000? Support for non-lossy compression is another, and the JPEG-family were always photo oriented and don't perform that well on scanned documents. Historically, TIFF has been, and still is extremely widespread and dominant in the world of scanning. Asking why is a bit like asking why Windows is dominant on the desktop - it was good enough at the right place and time. |
|
Apr 23 |
comment |
Why is C so high in TIOBE index of popularity, while C++ is just under here too, but not as popular? +1, and I also suspect that certain languages tend to be used more for experimentation / weekend work, and these languages will have a disproportionate number of searches for their level of use (i.e. if you don't use it every day, you tend to search more). That said, I don't think that argument is particularly applicable to C. More relevant might be that plenty of C++ searches end up categorised as C because of developer misunderstanding / lazyness. |
|
Apr 18 |
comment |
What is the current status of software support for JPEG-2000? The choice of format will have a lot to do with the nature of the data (colour / grayscale / bw, bit-depth, resolution, and importantly whether it's mostly text, photos, charts, blurry, grainy, etc) so it would help a bit if you could elaborate on that. More importantly - was the original scanned TIFF lossy or lossless? If it was lossy, it means that this loss of information was condoned (unlike further changes), and you are highly unlikely to find a lossless format which will match it's file size. |
|
Apr 17 |
comment |
Should I Do Calculations in T-SQL or Program? TL;DR: the round-trip part is one of the main differences, but it's a complicated trade off involving the nature of locks on the DB and horizontal / vertical scaling. The software engineering arguments are fairly subjective, and many (myself included) would heavily prefer not to have business logic in the DB. |
|
Apr 17 |
comment |
Should I Do Calculations in T-SQL or Program? I believe there are many different angles to look at this problem from, but I don't think these are the strongest arguments. Briefly - you touch on performance, but moving calculations into the DB adds unnecessarily to the DB CPU load, and CPU-bound performance issues are often difficult to fix. This also bifuricates business logic. Most thick-client apps either don't connect directly to the DB, or can be rolled out rapidly enterprise-wide, making change / deployment less of an issue. Compile-time guarantees and unit testing do a better job of alerting me to breaking changes in the DAL. |
|
Apr 11 |
comment |
How meaningful is the Big-O time complexity of an algorithm? I'd also like to throw in this blog post on the topic, which I found to be a good rule of thumb. The thing to take away from it is that with O(n^3) and friends, "huge" could be as small as a few hundred items. Another good example is O(N!) - you will not be working out all combinations / permutations of more than one or two dozen items. Actually, I consider the usefulness of big-O to be the greatest exception to "what have you tried, and did you profile it?". I don't need to profile it to know that 100! is never going to happen. |
|
Apr 9 |
comment |
Is this a Proper “Rule” for Identifying the “Big O” Notation of an Algorithm? Call it a rule of thumb instead of a formula, and you're probably on the right track. Of course, it completely depends on what exactly "do stuff" does. Log(N) typically comes from algorithms which perform some kind of binary / tree-like partitioning. Here's an excellent blog post on the topic. |
|
Apr 9 |
comment |
why are noSQL databases more scalable than SQL? I'm not sure I agree with the part about atomic transactions, in the ACID sense (although it's difficult to comment on "NoSQL", since it's up for debate what exactly we mean). Most of the performance gains in "typical" NoSQL DBs are achieved through loosening of consistency guarantees (see: eventual consistency, ACID vs. BASE). If eventual consistency is good enough for an application (and it often is), then this allows for much more efficient horizontal scaling. |
|
Apr 8 |
comment |
Can I convert ALL CAPS sections of an OSI license to regular case (and bold)? Apparently, the Uniform Commercial Code has specific typesetting rules, as well as instructions that certain legal text needs to be particularly "conspicuous". There's an interesting discussion about it on Quora (free login required, sadly). The all-caps thing may be a misguided approach to achieving conspicuousness. |
|
Mar 26 |
comment |
Course Map Generator Recursion alone is not sufficient, since you have no means to guarantee that any given path will actually "work", in the end. I believe the term you are looking for is Backtracking. The problem itself is known as Timetable problem, and in general you may need to enumerate all permutations exhaustively to be sure you've found all correct answers. There are many approaches to generate "good enough" answers more quickly, e.g. see a GA approach. |