290 reputation
17
bio website eamon.nerbonne.org
location Groningen, The Netherlands
age 33
visits member for 3 years, 9 months
seen Jul 23 at 8:50

My work and hobby concern programming: I'm interested in data-mining, and enjoy collecting interesting stats from last.fm's openly accessible web-services.

Open source libraries:

  • ValueUtils (nuget: ValueUtils) provides a .NET base class for ValueObjects with auto-implemented GetHashCode and Equals using runtime code generation to perform similar to hand-rolled versions. Can also generate hash function and equality delegates for other types.

  • ExpressionToCode (nuget: ExpressionToCodeLib) generates C# source code from LINQ expression trees and can annotate that code with runtime values, which is hopefully useful in Unit Testing (integrates with NUnit, xUnit.net & mstest, but runs fine without a unit test framework too).

  • a-vs-an (nuget: AvsAn) determines whether "a" or "an" is more appropriate before a word, symbol, or acronym. Fast & accurate. Uses real-world statistics aggregated from wikipedia, and can therefore deal well even with cases that might trip up rules-based systems (e.g. an NSA analyst vs. a NASA flight plan). Includes a C# and Javascript implementation; the javascript implementation you can try online.


Jul
22
awarded  Critic
Jul
22
answered How to identify and run the most relevant automated tests?
Jul
22
comment How to identify and run the most relevant automated tests?
He explicitly mentioned this wasn't just a unit test but a more comprehensive test suite. Mocking out objects as you describe also hides a significant source of bugs (is the DB/FS returning what you think it is?), and it's a lot of work - probably not a good idea.
Jul
3
comment Why shouldn't you develop on production database?
@gnat: Access to production databases isn't the same this as developing directly on production databases.
Jul
3
comment Why shouldn't you develop on production database?
@usr: I tried o speculate about that in my answer programmers.stackexchange.com/a/246637/7904
Jul
3
comment How much database access should developers have?
Though it's been marked as a duplicate, the related question programmers.stackexchange.com/questions/246618/… is actually an interesting extension of this.
Jul
3
comment Why shouldn't you develop on production database?
@Kaz: I decided not to emphasize that intermediate option because it's tricky to do right (from experience). Firstly, you still have all the privacy issues, if anything they're greater now that you're copying around all that sensitive data. Secondly, databases can get large - making copies can be slow, and running tests and experiments on them will be slow.
Jul
2
revised Why shouldn't you develop on production database?
added 63 characters in body
Jul
2
comment Why shouldn't you develop on production database?
@Ordous: You're right; I've added some possible answers to both questions. On the topic of santization: Given the netflix data sanitization drama, and more recently the new york taxi data, it should be clear that creating a truly sanitized export is very, very hard. However, the needs for a "developer" export are of course lower (I mean, I'm kind of assuming your developers aren't hostile, persistent threats).
Jul
2
revised Why shouldn't you develop on production database?
added 1385 characters in body
Jul
2
revised Why shouldn't you develop on production database?
added 1385 characters in body
Jul
2
answered Why shouldn't you develop on production database?
Jun
23
comment Advice on designing web application with a 40+ year lifetime
Frankly, I'd be cautious of JS entirely given the context. I can imagine HTML being around in 40 years; I wouldn't rely on whatever converter is being used then to necessarily support JS the way you want (and consider that your JS is possibly doing the wrong thing since the preferred output device may be unimaginably different).
Jun
14
comment Should a developer always use version control
@RyanBigg: an alternative (possibly faster) workflow for putting things in version control is to have a "super" repo containing lots of small projects. I do this, and it works quite well. Once you decide the project is worth a bit of effort and attention, filter-history (git subtree or hg convert) will split it into it's own repo. The advantage is that quick experiments are faster to start; it's just a mkdir in a directory you're probably already in anyhow. Since versioned subdirs are ignored conversion can be in-place.
Jun
14
comment Should a developer always use version control
@MatthieuM. I use mercurial exclusively to manage personal github projects (e.g. ValueUtils and ExpressionToCode) - it works fine via hg-git, and that let's you use TortoiseHG (why oh why are git GUI's so terrible?) and hg plugins.
Jun
12
awarded  Yearling
Jun
9
revised Improving the running time of Breadth First Search and Adjacency List creation
added 415 characters in body
Jun
9
revised Improving the running time of Breadth First Search and Adjacency List creation
added 415 characters in body
Jun
9
revised Improving the running time of Breadth First Search and Adjacency List creation
added 415 characters in body
Jun
9
revised Improving the running time of Breadth First Search and Adjacency List creation
added 415 characters in body