101 reputation
1
bio website iigs.dreamhosters.com
location Crosslake, MN
age 36
visits member for 2 years, 10 months
seen Dec 16 at 14:30

Jan
30
comment So Singletons are bad, then what?
@tieTYT: He was just pointing out that a full design would have to access the data through a repository interface and that the Cache will mediate the repositories' access to the underlying data store.
Jul
10
comment Is the List interface a leaky abstraction?
@Baqueta Not to mention an algorithm like Coppersmith–Winograd Matrix Multiplication that is characterized by O(n^2.3727).
Jul
10
comment Is the List interface a leaky abstraction?
@Baqueta It wasn't too bad at first. The real problem was figuring out how to mark algorithms like a simple quicksort that have expected O(n log n) time, but worst case O(n^2). I don't know C++ that well, but you'd probably need something like meta-template programming to create parametrized BigO<T>, BigTheta<T>, LittleO<T>, and BigOmega<T> types and use those to fully characterize time and space complexity. e.g. something like NaiveQuickSort : BigTheta<NLogN>, BigOmega<Quadratic, AlmostNever>, BigO<NLogN>
Jul
10
comment Is the List interface a leaky abstraction?
I played around many years back implementing a variation of Option 2 using marker interfaces like LinearSpace and LogarithmicTime and then declaring classes like public class BinarySearch : ISearchStrategy<T>, LogarithmicTime. Other classes could take parameters like public T find<T, S>(IList<T> list, S strategy) where S : ISearchStrategy<T>, LogarithmicTime { } to enforce performance constraints.
Sep
3
awarded  Supporter
Sep
3
comment Specific reasons for still using Subversion?
Another useful feature of subversion that, AFAIK, git does not support, is the svn:externals functionality. This is very useful for shared source subtrees across projects. Also, subversion lets you check out subtrees of your project in isolation.
Apr
13
answered Is it just me or is this a baffling tech interview question?