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.

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.

Topic: 

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.

Topic: 

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!

Topic: 

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.

Topic: 

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.

Topic: 

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.

Topic: 

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.

Topic: 

Clever spammers

There is no doubt - spammers are becoming cleverer every day. I've added CAPTCHA verification to my site in order to prevent spam comments from being submitted. It really helped - previously I used to remove about 10-20 of them on daily basis, offering everything from child pornography to grey mortgages. However, even after the new safety measures have been introduced, I still get a couple of comments a week, which were created by spammers. Somehow they manage to break CAPTCHA. In addition, they texts are quite long, compared to the traditional "go-to-this-web-site-and-buy-stuff" ads.

Topic: 

New software

Great new piece of software, recently discovered by me - Foxit PDF Reader. Just a few advantages over the standard Acrobat Reader: it's faster, simpler and, most important, it allows you to save data in PDF forms! Yes, the so much desired feature, that is not available in the free version of Acrobat is readily usable in Foxit absolutely free of charge.

Topic: 

Pages