Nobody expects the WPF inquisition


Keeping this here whenever another StackOverflow question about WPF comes around so I can just cut'n'paste $generic_reply['What is WPF's main advantage over winforms?']

WPF's chief feature is declarative composition...declarative composition and binding... binding and declarative composition....
WPF's two main features are declarative composition and binding...and hardware acceleration....
WPF's three main features are declarative composition, binding, and hardware acceleration... and an almost fanatical separation of UI and Code through MVVM...
WPF's four... no... Amongst WPF's main features... Amongst its capabilities... are such elements as declarative composition, binding...
I'll come in again.

Three Way Merging Made Painless With P4Merge And TortoiseSVN

There is a fear of merging amongst developers (mostly juniors) and it is due to the fact that they don't merge often enough and sometimes don't use the proper tooling to make this process manager-proof.


In order to ease the pain of merging, let's use some proper merging tools.

P4Merge seems the best contender as:

  • it has 3 way-merge
  • it sports an foolproof change tracker (aka. the change 'curved area thingie')
  • it costs GBP 0.00
Let's see how to install this with tortoise svn and go through a real-world conflict.


Objective-C quick reminders

Just a couple of things to keep in mind when doing Objective-C development:


Properties vs Members



  • Members are accessed through the self-> indirection 
  • Properties are accessed through self. or [self prop] or [self getProp]
Properties and members often share the same name, and by default, the member gets priority, so when a property tagged with the retain attribute doesn't retain, chances are that you are assigning a value directly on the member when you should be working with the property.