The Open Road to Qt Code 2 - Witold Wysota

Witold Wysota is the subject of our second ‘open road to Qt code’ discussion – a series of interviews that showcases real Qt users and uncovers their amazing work and ideas.

Witold is the resident Qt specialist at Arise, a business support software company based in the Warsaw area of Poland. He is also the website administrator and moderator for the and a software designer and programmer in his own right.

Witold’s work both as a system and network administrator and as a software programmer gives him a broad technical scope and an enviable skill set spanning a wide variety of languages including C, C++, SQL, Python, PHP, XML, CSS and (X)HTML. The sum total of these skills allows him to oversee and administer the site’s developer resources so that all users can get the maximum benefit from it.

He openly states that he is devoted to programming using the Qt framework and helping to make Qt an increasing more powerful and robust tool. When he’s not coding for the greater good of Qt, Witold likes to practice traditional martial arts and has special dexterity with the tang lang men (Praying Mantis) gong fu style.

Aron: Tell us about the objectives that drive and tell us what you think makes it a success with the users who interact with it?

Witold: Qt Centre has been founded to provide a meeting place for programmers that use the Qt framework – to help them solve their problems, increase their expertise in the domain or to simply chat with people who share their interests. Since the launch in January 2006 Qt Centre has become the largest non-KDE Qt community and solved thousands of problems of both open-source and commercial Qt enthusiasts. I think the two most important reasons for obtaining our current position are very high solvage ratio and lightning short response times. In short on Qt Centre you can get free and accurate help very fast.

How important would you say it is to take community feedback in terms of requests and complaints and has this channel actually impacted the way you present content to the community?

User feedback should be very important to everyone. It lets you discover paths you wouldn't have thought about otherwise that very often add significantly to the quality of the product. Just remember you have to keep this relationship healthy – vox populi should be heard but representatives of the community should sometimes refrain themselves from blaming the authors for all the problems they may have with the product. A policy on Qt Centre is that you can receive help there but you have to conform to some rules or be ignored. We believe rules are required to keep things in order in any community driven initiative or else it will fall apart eventually.

From an operational perspective, how does the Qt Centre collect knowledge about programming with Qt and help others solve their problems on a daily basis? Please tell us about the process behind the advancements that you help create.

Our main knowledge base is the forum where people request help on specific subjects. Apart from relying on the excellent Qt reference manual most re-occuring issues find their way to the FAQ or to a growing wiki. But we also go beyond that – i.e. my article in Qt Quarterly on keeping the UI responsive is a result of a obtaining lots of questions about freezing applications. Some of Qt Quaterly articles are reprinted in the wiki to make it easier to find them. Finally we care about improving experience of best problem solvers in the community – this year we have brought two of them to Developer Days.

What have been the most significant Qt developments within the last five years that have impacted the way you work with the toolkit?

Definitely the release of Qt 4.0 and then the addition of Graphics View in 4.2. These started a (painful in the beginning) revolution in cross-platform GUI programming. At this point you just have to mention KDE, which has provided an excellent and demanding testbed for Qt. Later on we've seen WebKit that has opened completely unique perspectives to application developers. Now I'm really looking forward to the release of QML, the Declarative UI language for Qt – what we have seen so far looks very promising. With S60 and Maemo ports Qt has a chance to become a strong player on the mobile market.

Where do you see the real strength in community interaction with programmers?

It's always great to meet people you had been dealing with on the Web face to face, exchange ideas, go to a pub for a drink or just thank someone for solving your problem. And if we are talking about interacting with people developing Qt, Trolls are simply great to spend time with – you can see they are normal people you can talk to despite an often impression that their minds have to operate on a slightly different level than those of average human beings if you look at results of their work.

What aspects of peer interaction and contact do you think make the most impact on the skill sets of individual programmers and GUI designers?

In my opinion a recommendation from a friend, co-worker or teacher is what makes us interested in some solution. If we have seen something nice, we will want to do something similar in our programs. During the last years we have built lots of social networks that make sharing ideas very easy. A bookmark from a video broadcasting site sent to several colleagues with a single click over IM can push them to fall in love with something we have seen or done. This is mostly how you learn about new programming frameworks, libraries and languages nowadays.

You clearly have a healthy interest in developer training and personal development, what is your view of workflow methodologies and practices designed to help programmers work smarter and faster?

For me the most important thing is to take care of things in the proper order - one can save oneself a lot of pain if he first lays down the foundations (i.e. learn C++) before building the roof (i.e. develop using Qt). To improve yourself, you have to constantly push forward and expect from yourself as much as possible but you can't do everything alone. Re-use already written code, write and use helper tools and scripts that can do some of your work for you and don't be afraid to prototype and experiment. I would recommend to try out some of the Agile development techniques, especially when doing smaller projects.

As you travel around the world, do you find regional differences in the way people learn and develop?

You can spot cultural differences right away. Some people treat their work very seriously, others try to have fun with it. For instance developers from India are very polite, treat everyone with respect and are very eager to learn although there is still much work ahead of them to reach self-confidence level of their counterparts from US or Western Europe. An issue not to be underestimated is the different level of availability of written knowledge and accessibility to trainings or simply contact with other developers in different parts of the World. Hopefully the situation will continue to improve as Internet access becomes more and more widespread.

Where do you spend most of your work time right now?

For Arise I'm part of a team preparing software for brokers for trading on Hungarian and Polish stock exchanges and I'm designing and implementing frameworks to help our developers in their work and improve the quality of software we create together. Apart from that I'm a PhD candidate at Warsaw University of Technology where I work on modeling and testing graphical user interfaces using semantic networks. For the last three weeks I have been giving lectures on Qt and I still have some projects to evaluate.

Blog Topics: