WPF view models shouldn't access anything in the view, but there's one huge exception. Some complex controls combine conceptual view and conceptual model in a single physical class. Binding helps with properties, but how can view models access methods on such controls?
May 30, 2014
I've got an ideal application for F#: grouping and statistical analysis of logs from a desktop app. It's kind of like application analytics but much deeper. F# is perfect for this kind of job. Or is it?
May 25, 2014
May 20, 2014
.NET's Stream is a very versatile abstraction. You can define all kinds of streams, layer streams upon streams, and soon you discover reusable Stream implementations that can be plugged in to handle specific behaviors or traits of the stream you are working with. JuiceStream library attempts to include basic Stream implementations. Binary communication protocols are probably the best place to use these classes.
May 17, 2014
Enough is enough. The huge mesh of cables steals time when I need to clean up, yet somehow manages to trap enough dust to be always messy. It stands in the way all the time. It's so old-fashioned, anyway. I am now searching for true wireless nirvana.
I've bought Canon camera from its IXUS series some time ago. It indeed makes sharp high-res photos, i.e. it does its main job excellently. This article is about how much do small details kill the experience. Interestingly, this stuff won't show up in reviews. If you are up to buying a new camera, perhaps you would like to know what gotchas to look out for.
May 16, 2014
Fingerprint recognition is all about numbers. Aside from some minor features, matching algorithm is predominantly defined by its accuracy and speed. Numbers are attractive, because they are concrete and they are easy to compare. There are caveats though. If you happen to compare meaningless numbers, you will get meaningless result.
Matching speed is obviously irrelevant for small databases, but I am going to show you that it doesn't matter on large databases either.
First, I had only once computer. Then I had two and later three, but I've used each one for different purpose. Then I started to blend my workflows and my sync woes started. After some one-off syncs, I've tried to use online apps for sharing, which I believe to be the future, but they suffered on mobile networks. I tried SparkleShare, which is dataloss-proof, but it took ages to resync. I've selected DropBox for its sync speed, but NSA spoiled the fun. So I took the time to review more secure alternatives.
May 11, 2014
Scalability, for some strange reason, ranks high in a typical startup's priority list. I get handed requirements for servers scalable to 15,000 users or clusters scalable to 1,000,000 connections. Sounds ambitious, doesn't it? It's exactly this kind of optimistic thinking that will ruin the startup.
May 9, 2014
Siding is a grave mistake in this battle whether you support the business suits or the engineers. A "compromise" approach is merely showing lack of understanding of the problem. So what's the right choice? As usual, it depends. But then, what does it depend on? When exactly is the right time to go nuts with engineering vs. business priorities? When do business interests and quality engineering go hand-in-hand?
May 7, 2014
Here you can download free DIY printable Montessori color cards that are good enough for playing at home. Three printable pages contain 9 colors with 7 tints/shades per color for a total of 63 color cards. The colors are the standard ones: red, green, blue, pink, purple, orange, yellow, brown, gray.