Archive

2018


Roslynator Command Line

In one of my previous posts i've introduced Roslynator

Read more

HTSMP - Version Management

This post is a part of How To Ship Maintainable Product series

Read more

BizTalk Health Monitor Tool

BizTalk as an enterprise platform has a lot of modules, components, adapters and other extensions. After developing solutions in BizTalk and maintaining it for a longer period the need for a maintenance tool is becoming important.

Read more

Roslynator Code Analysis

Roslynator is a collection of code analyzers, refactorings and code fixes. It is a Roslyn-based equivalent of FxCop. To some extend it is a replacement for Resharper from JetBrains. Of course R# is much more powerfull, bur Roslyntor is also getting more and more traction recently.

Read more

AssemblyVersion in .NET Core

In .NET Core the way you specify AssemblyInfo attributes has changed. .NET Core allows you to specify assembly attributes in .csproj. You can do that by adding following properties:

Read more

Jenkins and Parametrized Branch Names

In one of the projects we work at Gemotial it was pretty cumbersome to test feature branches locally. The changes very often could have an impact on MSSQL or Oracle backend. We thought it would be great if we cloud run the changes on our integration tests configuration in Jenkins. Then, use the tests results (a link to it) in merge-request description. That way we could ensure that new functionality does not break the software.

Read more

NET Developer Days 2018 Conference

I had the opportunity to attend .NET Developer Days conference also this year. The event was organized in the same place as in previous years - EXPO XXI in Warsaw. Polish capitol looks nice in the autumn, so foreign conference participants had a good opportunity to have some sightseeing too.

Read more

MD Files And Why I Moved From WP

My blog always used Wordpress as the blog engine. I remember version 2.6. That was long time ago. During recent years the engine was actively developed by the community. Currently there is version 4.7.

Read more

Thinking In Park?

Why there are parks in the cities? Why did city architects decide to keep those green islands?

Read more

What Is The Tech Stack For Me

Recently one of my colleagues asked the following question on Twitter:

Read more

How To Recover After Exhausting Development

I've been programming for over a decade. During that time I went through several pretty difficult scenarios in my programming assignments. I want to share some thoughts in this post.

Read more

Seven Dev Personality Types survey summary

A few weeks back I've created a survey for developers. The idea was to test my 7 dev types and potentially uncover something new.

Read more

HTSMP - Documentation - bring identity for code puzzles

This post is a part of How To Ship Maintainable Product series

Read more

HTSMP - Automation

This post is a part of How To Ship Maintainable Product series

Read more

Katacoda

For the last few weeks, I have been learning docker. The start with new technologies was, as usual, easy for the basics and fairly difficult for the more advanced stuff. On some stage, I found KataCoda. The service motto is: Learn new technologies using real environments right in your browser.

Read more

Geek Week Wro 4

GeekWeekWro will take place also this year!

Read more

Seven Personality Types of Software Developer - revisited

I had the opportunity to give the presentation Seven Personality Types of Software Developer twice so far. The presentation is based on my previous post. First of all, the session was surprisingly very interesting for developers. Despite its soft nature, I have received a lot of feedback from the audience during and after the session. The whole idea of categorizing developers by their personality type seems to be hot.

Read more

HTSMP - Dependencies - isolate interfaces

This post is a part of How To Ship Maintainable Product series

Read more

HTSMP - Patterns

This post is a part of How To Ship Maintainable Product series

Read more

2017


HTSMP - Tooling

This post is a part of How To Ship Maintainable Product series

Read more

HTSMP - Unit tests

This post is a part of How To Ship Maintainable Product series

Read more

HTSMP - Requirements and design

This post is a part of How To Ship Maintainable Product series

Read more

HTSMP - People

This post is a part of How To Ship Maintainable Product series

Read more

How to ship maintainable product - overview

This is the first post in a series of How to ship maintainable product

Read more

Dictionary And HashTable In C#

.NET Framework provides several data structures for constant O(1) access. In software engineering we call them lookup tables. In .NET we can list following lookup-tables (at least):

Read more

Programming Schools - from Zero to Who?

Today I wanted to touch the subject of programming schools.

Read more

Hidden motivation ingredient

There are plenty of books about motivation. How to motivate yourself and others. We give ourselves something we like after finishing a difficult task. It can be a chocolate bar or an hour of video gaming. We try to motivate out employees with many benefits: free healthcare, informal Fridays, pizza days, in-house conferences etc. At the beginning it works quite fine, but as we go the effects are weaker and weaker.

Read more

The Best Way to Learn Programming?

Read more

What Do You Do When Programming Sucks?

This post is also available in Russian language at Softdroid

Read more

Func vs Expression

This is another post about C# basics :)

Read more

Throwing Exception In C#

In C# there are 3 of ways to throw an exception.

Read more

NDepend VSTS Extension

NDepend was recently released as VSTS Extension. Before that it was available as separate application. It was (and still is) to run it as task on CI server (eg. TeamCity)

Read more

GeekWeekWro#3 Is Now History

One week. Many geeks. One idea.

Read more

Test Message Explained

In one of my previous posts I briefly described the concept of test message. Today I wanted to explain it in more details. The need of having production system operational is self-explanatory. It is the highest priority in all businesses - be able to operate. Without any doubts regarding software quality. Users need to trust the system.

Read more

Sessions in March

Post o sesjach jakie miales w marcu

Read more

WROC# 2017 conference in Wroclaw

Another great IT conference and second one happening in Wroclaw, Poland. Cool :) The organizers surprised us again few times :)

Read more

Testing Approach In Large Integration Systems

Maintaining large software systems is hard. Such systems are usually complex by nature. On diagrams they look nice - couple figures exchanging messages each other. The devil is in details - as always. Microservices add extra complexity. We moved from monoliths to farms of services. Now we can deploy changes separately - we decoupled the responsibilities (SOLID rocks!). Now we have more nodes where out messages are flowing from and to.

Read more

BoilingFrogs 2017

Last Saturday I've attended Boiling Frogs conference in Wroclaw.

Read more

TeamCity and W3C Validator

As you may know I'm a big fan of automation. I like to have things done in background and just receive notification if something happens. This saves time and allows me to forget about yet another thing to check situation.

Read more

BizTalk ESB Tracing

As some of you may know I work with BizTalk. I'm involved in an integration project where ESB Toolkit will be used soon. I'm researching various scenarios at the moment.

Read more

New things in NDepend 2017.0.1

"TD" abbreviation for Technical Debt term

Read more

CodeWatch sample fields with underscore convention check

This time I'll talk little bit about code best practices. Usually one thing what every development team does at the beginning of the project is to agree on some conventions. We agree to call services in certain way. Give view models ViewModel suffix and so on. During code reviews we try to catch all those kind of issues.... it's annoying and silly to waste time on somethings like that.

Read more

Ways to create BizTalk messages

For novice BizTalk developers such simple task like creating messages in BizTalk orchestration may become cumbersome. This is what I've learned so far :)

Read more

How to learn new language (or other thing)

In IT industry we have to learn quite intensive new things. Everything changes, but in our industry, it happens much faster. Today's buzzword is forgotten tomorrow. How do we approach that? 's annoying and silly to waste time on somethings like that.

Read more

Technical debt types

Technical debt in software development is considered as implementing quick and dirty solutions in order to satisfy user (or deliver a sprint - Sic!). Those solutions should be paid-off in the future.

Read more

Accessing MSMQ system queues in C#

While working with MSMQ you may want to access Dead-Letter Queues. If your messages are not delivered to the expected destination they usually end up in Dead-Letter Queue.

Read more

2016


Celebrity Type

A while ago I wrote a post about [7 mental types of software developer]. Now it is time to the first adjustment. It turned out that "Code nazi" and "SOLID junkie" are pretty similar. Junkie was merged in to "Code nazi".

Read more

OperationResult pattern

Communication between layers/modules/subsystems works best when API is simple and self explanatory. Pieter Hintjens wrote a great article about API design.

Read more

Conference types

As IT community grows every year it is natural that supporting events like conferences, user group or hackathons will appear more often. Developers are attracted by free food and drinks, top speakers or new devices to test.

Read more

Tiny git repositories automation to save 5 minutes daily

I'm a big fun of automation. I would even say 'what can be automated, can be forgotten' and you can focus in important things. This post happen to be next in new series called "Automation". The series came out somehow, I didn't plan it. It just seem that there are things I would like to share :)

Read more

How to begin journey with BizTalk

Quite while ago I had the opportunity to start a project using BizTalk. In one sentence BizTalk is a stable integration platform providing message persistence, mappings, orchestrations and tooling. It's of course not everything :) It has it's pros and cons, but today I will share my thoughts on how to start with BizTalk. All information are based on my own experience developing BizTalk solutions for last 2 years.

Read more

Seven Personality Types of Software Developer

In every group of individuals, we can recognize a pattern. Observing and grouping people can give us more understanding of how teams are formed, how they work etc...

Read more

CodeWatch 1.0 released

Few days ago I decided to release my CodeWatch library. It's the first version to show the concept.

Read more

Automate everything!

We all suffer from having not enough time. Time to do this or that. I did some research on where is my time spent. My daily (and simplified) activities that could be automated look like following:

Read more

Difference between System.Exception and "General Exception" in BizTalk

In BizTalk orchestration we can catch 2 different types of exceptions:

Read more

Becoming great in 4 steps - quote

Learn -> Play -> Work -> Teach

Read more

BizTalk - how to create message on orchestration programically

Since 2 years I have the opportunity to work with BizTalk. This post is one of "BizTalk series". I'll keep posting interesting tricks that are easy to do, but not so easy to find on internet.

Read more

MSMQ Viewer (Mqueue)

Working with MSMQ can be hard. Windows does not provide a tool to generated or edit messages on the queue. There are plenty of tools that can do that for you. Especially I like Mqueue Viewer

Read more

Why provide interface with your library?

In daily programming activities some of use have the pleasure to use TDD approach :) Going deeper we can introduce the concept of mocks/stubs/shims. For the sake of this article let's call it mocks. Quite often we use 3rd party libs becuase they offer some functionalities we need. For example:

Read more

Learning from different types of books

In the past, there were myths and legends passed between generations. Later Gutenberg introduced printing... the knowledge started to spread across the world rapidly. This day's books are the main sources of transferring knowledge. Open-minded people read a lot. I try to stay open-minded...

Read more

Software Craftsmanship

Read more

PGP Key

For secure communication I suggest contacting me via e-mail using PGP encryption. Below is my public PGP key.

Read more

Autofac, DataContext and MemoryCache issue

In one of my web application I use MemoryCache to improve performance. The code looks like this:

Read more

GeekWeekWro

During my daily work I'm creating an integration system using Microsoft technologies like BizTalk. There is a lot of exciting challenges to meet :) System health monitoring, message archiving and modular structure are just some of them. Apart of that I'm involved in wrocnet.org. Last week our monthly meeting was a part of GeekWeekWro #2 - week of IT events in Wroclaw.

Read more

NET Developers Poland FB group [PL]

This post will be in polish since it is totally related to polish .NET group on Facebook

Read more

Nuget and strong-signed dll

Nuget is very good packed manager tool for .NET projects. We all use Nuget to get all necessary dependencies in our project. Usually, our projects are installed in Program Files or inetpub, which is perfectly valid :) Referenced dlls will be installed along with our projects. Everything is great!

Read more

SOLID for Adults session at WDI 2016

On Wednesday I've attended Warsaw IT Days (Warszawskie Dni Informatyki in polish). This time as a speaker :). It took me one year to jump back on stage :). I was giving a talk called "SOLID for Adults" as a part of DevTalk - Deep Dive track.

Read more

Notes from meetings - my approach

TL;DR; Write down everything from the meeting :) Day after meeting we remember 20% from it

Read more

WROC2016 - by engineers, for engineers

TL;DR; Objectivity did excellent work with this event focused on delivering world-class value to programmers. Now, dear reader, read the rest :P

Read more

Debugging WPF Bindings

WPF + MVVM is a very common way to make windows apps. It introduces the concept of data binding. We create a view-model based on one or many models and bind it to the view. Usually, it is easy... But how do you debug bindings if something is not going right? For example, you have Control Templates and styles and so on introduced in your app.

Read more

Local IT communities - the snowball effect

I like to meet people, discuss things related to programming, new technologies, ideas and so on. I was living in several cities and always wanted to stick to people sharing the same interests. After moving to Wrocław a few years ago I immediately joined WrocNET. At the moment I'm one of the organizers and looking forward to the next meeting :)

Read more

Multilingual team communication

Communication is a substantial skill for humans. That applies also to software projects.

Read more

Logging in application

Logging information on how our application behaves is very often omitted or not properly handled by developers. We don't know what and when to log. We don't have a logging strategy. In this post, I' share my thoughts on this topic. Let's start with what hurt us when it comes to logging information from our projects.

Read more

2015


BuildStuff 2015 LT conference in Vilnius

BuildStuff 2015 LT is over. This conference is another prove that event made be developers and for the developers is a perfect fit. No suits, business cards exchange and other corporate bullshit. Just raw meat :)

Read more

Pet project - HandyLib

It's a while since my last post.... :) Perhaps there was nothing worth writing from my side. Now it is.

Read more

My session "SOLID as OOP abstraction" video

Last Saturday I had a presentation about SOLID. Below is the video recording. Unfortunately, the session itself was taken in polish but, at least the slides are in English :)

Read more

The "usual" software engineer job ladder

Almost every software engineer start his career as a junior developer. Sometimes in a corporate environment, sometimes in small software studio etc... Young code hackers are often as good as developers with few years of professional experience. There are several possibilities evolve as a great software engineer in our industry.

Read more

2014


NoSQL Hackathon at PGS Software

Yesterday (25.10.2014) I have attended a local NoSQL Hackathon. The event was hosted by PGS Software. It started at 9:00 and took a bit less then 9 hours to program a sample version if a twitter-like website.

Read more

Generating xls documents with checkboxes in C#

A short while ago I had a task that required generating excel documents (xls) with special OLE objects. Checkboxes, to be precise.

Read more

Mono profile in Visual Studio 2012

Recently I step upon an issue of compiling a project using Mono. Mono itself comes with a nice tool called xbuild which is a msbuild brother in Mono world. Xbuild can be used to compile a project from the command line.

Read more

Lonely .NET dev in Java devs nest - Confitura 2014 conference

Last Saturday I have attended Java related conference - Confitura. My main goal was to see IT world from another site. I think that every developer should concentrate not only on his area of expertise but also stay in touch with overall trends. That's why we have nHibernate or Nancy in .NET world - leader of those projects had to know or heard and the original implementation in other languages. It's like "Think global, act local" statement.

Read more

.NET Dev PL website project - Skype meeting

Last Wednesday we had our first meeting in regarding .NET Dev PL website project. It was 1,5 hour Skype discussion. I think it went pretty well. We learned a little bit about other team members. It turned out that some of us are experts in front-end technologies, others in SharePoint or in DevOps. I'm happy that the team is a mix of various point of views.

Read more

.NET Developers Poland - rules

After a brief description in my previous post why .NET Developers Poland group was created now it is time to share some rules that every group member should respect.

Read more

.NET Developers Poland FB group - the beginning

Over the last several years I was observing how software engineering communities evolve and grow around the world. People join communities to be stronger, to share knowledge, to search for solutions to their problems or just for fun. At this point, I missed perhaps 100 other reasons, but there is always a purpose. Often the need is to stick with new technologies and similar people. They need a place for that, a habitat...

Read more

2013


Refactoring ScreenCast - PART 3

My third ScreenCast from the Sample refactoring series is already available!

Read more

Refactoring ScreenCast - PART 2

My second ScreenCast from the Sample refactoring series is already available! In polish again.

Read more

Refactoring ScreenCast - PART 1

I want to share with you a ScreenCast I've recorded recently. This is the first of a whole series. The main topic of the series is: Sample refactoring.

Read more

Client-Server API

I will be shipping new iPhone game soon. It is 2 players, turn-based strategy game. Client-server architecture. More information soon ;) One question that came to my mind recently was: "How to handle app updates ?!". Right now I use simple REST with http links like: /move, /setup, etc.... The potential problem will occur when a new version will require different JSON response from "/move" link. In that situation either version 1 or 2.0 will not work... or I'll have to support both versions under the same link. This does not smell like a good solution. The image below shows the problem.

Read more

2012


My Goals for 2013 and retrospective of Goals for 2012

New year is coming. As usual, in this moment it time I set goals for upcoming year. Having my goals written down keeps me motivated and focused on reaching them.

Read more

My SVN/GIT ignore files pattern

For all who are looking for good ignore pattern. I use follow one:

Read more

New PC

IT industry is growing rapidly... software and hardware are continuously improved. The new software works slow on old hardware. We all have faced that problem before :P About two weeks ago I decided to buy a new "sandbox" too :D My first idea was to buy a good notebook, but after deeper research, calculation and thinking I decided to get desktop PC. This choice, as we all know, has pros and cons, but I think desktop PC is that what I need now.

Read more

DevDay 2012 Conference in Krakow, Poland

Awesome awesome awesome! This phrase describes DevDay 2012 perfectly! Sessions conducted by Scott Hanselman, Greg Young, Sebastien Lambla, Mark Rendle, Martin Mazur, Rob Ashton and Antek Piechnik at this conference were just amazing! Great balance between technical and non-technical information. I have expected some level but seeing (for example) Scott Hanselman sharing his secrets of sharpening the saw was a nice surprise.

Read more

Mobilization - mobile development conference in Lodz, Poland

Last Saturday I have attended my first conference in autumn 2012. I have registered for it on dedicated website (mobilization.pl). The website could look a bit more professional. A mix of Polish/English, fonts. Anyway, I was able to find all the important information.

Read more

The Cult of Done Manifesto

Read more

2011


Describe summited bugs in details

"Some fields should be read-only"... Is this a good description? If you can read in other minds, then it's ok..... otherwise be more precise when submitting a bug report!

Read more

Showing IDataErrorInfo for NULL objects

WPF provides, fairly easy to implement, possibility to validate entered data and notify user when something is incorrect. An example is available in MSDN, so I will skip further explanation how does this work...

Read more

Write Unit Test for the bug

When you fix a bug and you feel that it may occur in the future, don't waste time and write at least one Unit Test to check code against that bug.

Read more

Logging Exception with StackTrace

C# language has a great Exception Handling mechanism build-in. If something in not predictable during compile time developer can easily embed that piece of code in try{ (...) } catch{ (...) } and say "case closed". Sample code taken from MSDN:

Read more

Check code changed before commit

This is often daily scenario in programmers work. Work day is about to end, You are in a hurry with finishing coding, just final commit and go home :) Looks natural. Save your work somewhere. Not so fast my friend!

Read more

Using different .config file in .NET application

In .NET world executable files using by default configuration file with special name. Microsoft has implemented following pattern: executable: program.exe and corresponding configuration file program.exe.config. In many scenarios this pattern is fitting well, but there are some cases when something else necessary. In my situation common configuration file was desirable! One configuration file with shared app settings, configuration strings, etc.

Read more

dotPeek - Free .NET decompiler available in EAP

Today I've received an email from JetBrains with short information saying that an alternative to ReflectorPro is available! Since Reflector since version 7 will be not free any more I was looking here and there for some alternatives... Few weeks ago I've been looking at ILSpy, but it doesn't fit my needs. I find it little bit hard to use. Today I've started to test dotPeek and I'm pretty impressed with the tool.

Read more

Evolus Pencil - free mockup tool

On the market there is number of Mockup tools. All of them are providing similar functionality. Some allow import external graphics or exporting to pdf files out of the box. But for my needs all those additional features are not necessary. The most important factor is that the tool should provide standard mock-up functionality and by relatively cheap or freeware ;). That's why I was looking for tool that will meet that criteria:

Read more

WPF - How to show ToolTip when control is disabled

By default tooltip is hidden when control is disabled. There is simple way to enable it. Code below show how to do that:

Read more

WPF - BrushConverter HTML (Hexadecimal) colors

Assigning HTML like colors (i.e. #318D38) in WPF application directly in XAML is very easy and smooth. For example code:

Read more

SnippetCompiler

SnippetCompiler is another useful tool for C# developers. Is quite similar to FastSharp. Both allow you to write and compile sample code very quickly. SnippetCompiler has IntelliSense support (missing in Fast Sharp), that gives benefits. Unfortunately, last version is from year 2008... supports .NET up to 3.5....

Read more

2010


.NET 3.0 and 3.5 out of support from April 12th, 2011

Read more

WPF TextBlock StringFormat

This post is not a hot news, but it may help somebody ;)

Read more

XNA MathHelper

Today just a short note. Recently I've been working on a XNA project. In my project I needed to rotate line. I used that calculation:

Read more

CLR via C# – Jeffrey Richter

CLR via C# is one of the books that should be considered to be read by experienced .NET software engineer. I would not recommend this position to fresh software engineer. This book touches many (if not all) advanced areas in .NET framework up to 4.0. Jeffrey describes how C# language is implemented the way it is or why C# compiler works as it works (i.e. why it uses callvirt IL instruction, instead of call IL instruction, when calling a non-virtual instance method). In several places author has good arguments in hand to criticize .NET development team for that how they have implemented some CLR features (i.e. Exceptions mechanism) :)

Read more

Fast Sharp - geek's text-editor

Fast Sharp is intended to be simple text editor with possibility of running C#/VB/F# code. Everything You enter in text editor is wrapped into a method and compiled on the fly. Results are displayed in output box on the bottom of the editor.

Read more

Clean Code - Robert C. Marit

Clean Code: A Handbook of Agile Software Craftsmanship is a "must read" for every software engineer book. I read this book a while ago and I think it is one of the best positions in programming techniques.

Read more

C# Configuration Custom Section – Configuration Element

Recently I needed a custom section in my app.config. Everything went fine until I got this exception: "The string must be at least 1 characters long." (System.Configuration.ConfigurationErrorsException type) while reading the custom section.....

Read more

C# Development (Yellow Book) – Rob Miles

Recently I found that book Rob Miles - C# Development, aka. Yellow Book. Available here.

Read more

Dealing with architecture bugs. Case Study

Architecture bugs are one of the hardest to solve. To solve in a proper way ;). Almost always they affect a huge part of the system. Fixes can have an impact on all application layers because mostly a fix requires changes in more than one layer. If the system is designed according to a set of rules (i.e. is not tightly coupled) then after fixing we don't have to sit and shake because something else somewhere else may crash...

Read more