I am a seasoned software designer, developer and consultant. In business since 1998. Having worked for many years in public and private sectors in different countries, I have gained deep understanding of various approaches to software development processes. Exposure to multiple cultures, work with demanding clients in fast paced environments developed my communication and business skills. My approach is result-oriented, constructive and pragmatic.

My long term goal is to work remotely writing software for clients located anywhere in the world. Take a look at my CV to see my past experience in detail. In short, I have vast knowedge of backend development (C++/Java+Scala/Python/C#) in finance and general areas, loads of web development experience (Java/DJango/JavaScript), some GUI (C#/Java) and Android (Scala/Java), GIS development (ArcIMS). Please do not hesitate to contact me, if you have any questions.

WPF DataGrid row validation

WPF is a very powerful framework for GUI development. Among other things, it contains a unified approach to user input validation. Adding validation in WPF is very straightforward in most cases. However, validating DataGrid rows is slightly challenging. However, the good people of the world has already taken care of the problem and provided quite detailed walk-throughs. I recommend reading this interesting article (WPF DataGrid Practical Examples) about WPF DataGrid.


Log viewer for Windows

Monitoring text log files is quite important activity in our day to day programming lives. Unfortunately, Windows operating system does not include convenient tools to perform the task by default. Nothing comparing to tail -f or GNU less is deployed with an installation of the OS from Redmond. Luckily, some free alternatives are available on the Internet.


How to invoke click event in WPF programmatically

WPF is still relatively new and many developers are only scratching the surface of its abilities. Coming from a different framework, one must learn anew how to do the familiar tasks. Sometimes you need to to trigger a click or some other event for one of your WPF controls, such as a button, a menu or a checkbox, directly from code. There are no methods on the controls to invoke these events explicitly.


Fedora Core 12

I have recently installed Fedora Core 12 on my server box. It was an upgrade from Fedora Core 9 and I had to do an intermediate upgrade from 9 to 10, since direct transition from 9 to 12 is not supported. Aside from this small annoyance the process went through very smoothly. It looks like Fedora Core 12 supports an "in place" upgrade mode, similar to recent version of Ubuntu. That means that a new release of the system comes out, you don't need to create the upgrade media (DVD or a USB image), but can upgrade directly via your current session.


Safe implementation of INotifyPropertyChanged interface

With arrival of WPF the usage of INotifyPropertyChanged interface has expanded dramatically. The most annoying and dangerous part of implementing the interface is, obviously the fact, that you have to pass your option names as strings. This leaves your code prone to bugs - if in 3 months time you rename one of the properties, there is very good chance that you will forget to update the string name as well. In order to overcome the problem we can use some reflection and a little bit of boiler plate code. The good people of the Internet have done all the work for us already, so just copy, paste and enjoy!


Events and BinaryFormatter serialization in .NET

Serialization in .NET world is not straightforward. For years we've been told to use XmlSerializer, but it has its limitations. It is unable to serialize anything but the public properties/fields, it cannot deal with interfaces in most of the circumstances (specific collection interfaces being the only notable exception) etc.


Source code highlighting in Drupal

It is nice to be able to blog about software. For instance, a few years ago I wrote an article about web development using C++. I still get a comment or two about it almost every week, despite the fact that not a single line of code has been written for the project, unfortunately. However, if I ever took the initiative and started working on it, I would, no doubt, write some interesting progress reports here as well. As things go, it would be very neat to show off some code in the process.


Code generation in Visual Studio

I have never suspected that Microsoft had this built-in, but it appears to be the case. Code generator called T4, which targets both C# or VB.NET, is built into your copy of Visual Studio and is available as you read this article. Basically, all you need is to add a new file to your solution with the extension .tt, and that's it, besides from actually writing the code for the template.

Restore window location in WPF

For years I was server-oriented developer, quite often writing code for Unix environment and helping others to do so. However I never mind doing occasional user-oriented application or two. Lately I've been doing a lot of .NET GUI development using WPF (Windows Presentation Framework). A small task seems to come up quite often. If you have a GUI application, you usually want it to start in the same state it was left it when used last time. In particular this is true regarding its position and size.