Multiplatform Programming in C++

In the age of multiple available operating system a programmer often faces a problem of choosing the platform for his project. This choice is often not trivial. Sometimes certain functionality is available only on selected platforms, sometimes user tastes change and they migrate from one platform to another (for example Symbian was dropped because of huge interest in Android), many application are written for multiple platforms from the beginning. It is often best to write code that is platform independent and if that is not possible – to somehow manage existence of multiple platforms in the most simple way.

Discovering Network Topologies

When you work as a network administrator, there are few more useful tools than an application that discovers your network topology and is capable of drawing it to you and providing all the information about the network. Let’s look at several ways how we can find devices in our network and build connections between them.

Rust – Modern Alternative to C++

For many years C++ language was the only reasonable option for writing real time or embedded software. But during recent years a new technology has emerged. A technology that has potential to take the crown of low level programming in several years. It’s called Rust.

Object Oriented Approach to Asynchronous Operations

In one of my previous articles I have described the idea of asynchronous operations. Apart from many advantages asynchronous operations do have someĀ  disadvantages as well – they are complicated. It’s relatively complicated to implement a big, multiplatform application. Of course, it is possible to wrap native functions from your operating system with classes that will highly simplify the use of this complicated approach and they also can hide the inter-platform differences. Correct encapsulation and abstraction can result in a much more user-friendly interface.

Synchronous vs Asynchronous IO Operations

Due to a growing complexity of software systems, there is a natural tendency towards simpler methods that achieve similar (although not identical) results. Examples include Java or C# language. This process highly relies on removing the need for understanding complex operations that take place inside your operating system kernel. a Programmer is only supposed to combine prebuilt components into his application. This “idiot-friendly” solutions often lead to dramatic decrease in you application performance.

Computer Games in HTML5

When HTML5 appeared on the programming scene a new trend emerged – computer games running in a browser (and not using Flash). Maybe those games constitute the future of modern entertainment?…

Scrum – Agile Project Management

More and more of programmers’ interest is attracted by so the called agile project management methodologies. And there is a good reason for that because research done in USA showed that projects using this approach get better ROI.

What Programming Language Should You Choose?

Modern IT world has created hundreds of programming languages. Each of them has its own pros and cons. If you have a job to do – what language should you choose?