Git merge and rebase – the simple explanation

Git merge and rebase have the same purpose – to converge multiple branches of development. Although the final goal is the same, those two methods get to it walking different paths. Read more

Leave a comment · Posted in Blog, Technology · Tagged , ,

Riding the Bézier wave

When working on 2D/3D graphic applications, animating various objects and moving them across the screen is very often a requirement. As a programmer or designer, sometimes you would like to have the freedom to move objects not only along straight, but also along curved lines. Solution to this problem – the Bézier curve – has been known for decades. Still, people unfamiliar with curves may find them a bit confusing at first. This article is not intended to be a comprehensive analysis of Bézier curves; rather, it should give a beginner just enough knowledge to get her/him started.
Read more

Leave a comment · Posted in Blog

Battle of the Android screens

We recently developed a simple Android app that needed to run on smartphones and tablets, meaning 3-4″ phones, 7″ phonetabs with identity issues and 10″ tablets. It’s all made simple enough by the framework but some things always need a bit of tweaking.

Read more

1 Comment · Posted in Blog

Logging custom parameters with log4j

One important thing that needs to be setup early in every development process is logging. If you are using log4j , you have to set up properties file(s) and define Loggers, Appenders and Layouts. According to documentations “These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and where they are reported”.
Read more

Leave a comment · Posted in Blog

The importance of using correct JDK

It’s always a good idea to have your development environment as close as possible to production. When working with Java first thing to consider is JDK version. It’s possible to use a newer version of JDK for development but it’s not a good idea. A couple of problems can arise if our development JDK version is different from target version.
Read more

Leave a comment · Posted in Blog, Java

A simple HTML renderer in PHP

PHPOccasionally, projects are done that do not require usage of feature-rich frameworks or libraries. They usually have a short list of requirements and are built on top of simple infrastructure. Such projects are often prototypes that may become a complex system sometime in the future. But, until that happens, as a first step, a quick demo will be assembled and it needs to be as stable as possible. This post describes one possible way to go.

Read more

1 Comment · Posted in Blog, Technology

Qt Development: Working with zip files on Symbian

Qt has basic support for compressing and uncompressing data with its qCompress and qUncompress methods. Although those methods use the same compression algorithms that are used in zip files, they do not produce proper archives. Those methods can be useful if you want to exchange some date between two Qt applications, or maybe store some compressed data that will be read only by Qt applications. In all other situations, you have to look for some library that can handle proper zip files.

In case you are working on an application targeted for Symbian phones, one of the easiest ways to work with zip files is to simply use existing APIs available on Symbian OS. This is a short blog post that will show you how to use those APIs from your Qt application. Read more

Leave a comment · Posted in Blog, Nokia

Empty is always better than null

It is not uncommon to see methods that look something like this:

private List cheesesInStock = ...;

/**
 * @return an array containing all of the cheeses in the shop,
 *         or null if no cheeses are available for purchase.
 */
public Cheese[] getCheeses() {
    if (cheesesInStock.size() == 0)
        return null;
    ...
}

Read more

Leave a comment · Posted in Blog

Using Lambda Expressions in C++0x

C++0x specification is finally approved by ISO and the latest compilers now support most of the specification without too many bugs. One of many new features introduced is support for lambda expressions. Lambda expressions are anonymous functions that maintain state and can access variables from the enclosing scope. Well known and often used in scripting languages, they were not available in C++ until now. Read more

Leave a comment · Posted in Blog

What happened with strong artificial intelligence?

“Hello Steve, do you have some time?”

“I have 98% free in the next three hours. Why do you ask George?”

“Well, i need to write some blog post but i really hate it so i thought that you might show a little respect to the price i paid for you…”

“But you bought me with a discount, remember George, you didn’t even wanted to pay little extra 5k to buy my advanced joke center, remember?”

“I have enough of it already. You will write me the blog till the 1 p.m. end of discussion.”

“Nah, i won’t”

Read more

1 Comment · Posted in Blog, Technology