SDL on Windows 7 and QT Creator MinGw

Download SDL MinGW here. And extract it.

Open QT Creator and create new C++ qmake project.
Edit your pro file like mine :

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

SDL_SDK = C:/Users/User/Downloads/SDL2-devel-2.0.3-mingw/SDL2-2.0.3/i686-w64-mingw32
if (!exists($$SDL_SDK)) {
    error("Not found : $$SDL_SDK")
}

INCLUDEPATH += $$SDL_SDK/include/SDL2

LIBS += -L$$SDL_SDK/lib
LIBS += -lmingw32 -lSDL2main -lSDL2

And here my main.cpp :

#include <iostream>
#include <SDL.h>

using namespace std;

int main(int argc, char* args[])
{
    SDL_Window *window;
    SDL_Surface *surface;

    if (SDL_Init(SDL_INIT_VIDEO) < 0)
        return -1;

    window = SDL_CreateWindow("QT Window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
                              800, 600, SDL_WINDOW_SHOWN);

    if (!window)
        return -1;

    surface = SDL_GetWindowSurface(window);

    SDL_FillRect(surface, NULL, SDL_MapRGB( surface->format, 0xFF, 0xFF, 0xFF ));

    SDL_UpdateWindowSurface(window);

    SDL_Delay(5000);

    SDL_DestroyWindow(window);

    SDL_Quit();

    return 0;
}

Build it and run!.

Cocos2dx : resources does not refresh on XCode

When I develop cocos2dx on the XCode that I found when I modify the resources, it will not refresh when we do build and run.
This happen because the XCode does not know if the resources was modified. So we need to tell the XCode manually.
How to make it is :
Open your target, and modify your “Build Phase”
Screen Shot 2014-06-15 at 7.02.36 PM

 

 
And add new build phase before the “Copy Bundle Resources” :
Goto : “Editor” – “Add Build Phase” – “Add Run Script Build Phase”

And add like below :
Screen Shot 2014-06-15 at 7.08.17 PM

SDL on Mac and QT Creator

Download the source file here :

http://hg.libsdl.org/SDL

Open terminal in the SDL folder and compile the framework using xcode build

xcodebuild -project Xcode/SDL/SDL.xcodeproj/ -target Framework

Open Qt Creator and create new C++ qmake project.
And here my pro files :

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

# your framework folder
SDL_SDK = /Users/apinprastya/Downloads/SDL/SDL/Xcode/SDL/build/Debug/
if (!exists($$SDL_SDK)) {
    error("Not found : $$SDL_SDK")
}

INCLUDEPATH += $$SDL_SDK/SDL2.framework/Headers
DEPENDPATH += $$SDL_SDK/SDL2.framework/Headers

LIBS += -F$$SDL_SDK -framework SDL2

SOURCES += main.cpp

And here my main.cpp to open window and fill rect :

#include <iostream>
#include "SDL.h"

int main()
{
    SDL_Window *window = NULL;

    SDL_Surface *surface = NULL;

    if(SDL_Init(SDL_INIT_VIDEO) < 0)
        return -1;

    window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
                              800, 600, SDL_WINDOW_SHOWN);

    if (!window)
        return -1;

    surface = SDL_GetWindowSurface(window);
    SDL_FillRect(surface, NULL, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF));
    SDL_UpdateWindowSurface(window);
    SDL_Delay(5000);

    SDL_Quit();
    return 0;
}

My project can be downloaded : SDLQMAKE (please rename to .zip)
Build and run !!!!

Bit Shifting contoh sederhana

Di dunia pemrogramman tidak akan jauh dari yang namanya bit ataupun bilangan biner. Mungkin selama ini kita hanya menggunakan bilangan desimal dan operator desimal (kali, bagi, tambah dan kurang). Namun pada bahasa pemrograman kita bisa langsung memanipulasi bilangan biner bit pada sebuah variable.

Berikut contoh variable integer dengan melakukan operator bilangan desimal.


int variabelA = 1200;

variabelA = variabelA * 4;

Dengan menggunakan bit shifting kita bisa mengganti beberapa operator bagi dan kali. Namun hanya untuk angka yang 2 pangkat n (2^n).

2 ^ n : 1, 2, 4, 8, 16, 32, 64, 128, …, … Continue reading

Kegunaan pointer pada C / C++

Banyak sekali tutorial-tutorial menjelaskan tentang pointer di C/C++. Disana dijelaskan bahwa pointer adalah alamat dari memory. Ada juga yang menjelaskan bahwa pointer digunakan sebagai dinamik manajemen memory. Yang menjadi pertanyaan bagaimana pointer bisa dinamakan sebagai dinamik manajemen memory?

Dari semua yang dijelaskan baik pada buku ataupun media internet, tapi saya tidak begitu paham apa sih sebenernya guna utama dari pointer? Karena kalau saya lihat di implementasinya, pointer ini sangat ribet dan sangat komplek, salah sedikit saja bisa menyebabkan error yang sangat susah di trace.

Berikut adalah contoh code penggunaan dari sebuah pointer :

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *p;

    //alokasikan 4 bytes ke pointer p. (sizeof(int) = 4)

    p = malloc(sizeof(int));

    *p = 15;

    printf("Nilai dari p : %d", *p);

    free(p);

    return 0;
}

Continue reading

Network Monitoring (Bandwidth Monitoring) di Linux

Bagi para Administrator jaringan monitoring jaringan adalah perkerjaan keseharian, jadi hampir setiap hari lihatnya kemanakan bandwidth digunakan, dan biasanya mencari tahu siapa yang telah memeras bandwidth yang ada pada jaringan, sehingga membuat internet menjadi terasa lambat. Dan pada saat ini saya mencoba untuk sharing mengenai monitoring jaringan di GNU/Linux dengan menggunakan tool pada konsole. Monitoring dengan konsole ini terbilang gampang untuk penggunakaannya, dan hampir tidak perlu melakukan setting sama sekali, tinggal install lalu jalankan.
Namun walaupun mudah dalam menjalankan bagi yang belum terbiasa mungkin nanti akan agak binggung melihat monitoringnya. Jika dibandingkan monitoring yang grapich seperti pada Cacti, MRTG ataupun Nagios.
Berikut akan saya sharing beberapa tool yang sering saya gunakan :

  1. bwm-ng
    Tool ini terbilang sangat sederhana, yang hanya menampilkan keterangan bandwidth yang digunakan pada tiap-tiap interface. Dan untuk menginstallnya sebagai berikut :

    //install bwm-ng
    apin@proxy-labjar:~$ sudo apt-get install bwm-ng
    
    //jalankan bwm-ng
    apin@proxy-labjar:~$ bwm-ng
    

    Continue reading

Tutorial Linux Command Line untuk Pemula

Bagi teman-teman yang ingin belajar Cammand Line di GNU/Linux dapat belajar dengan mendownload tutorial dengan judul “Introduction to the Command Line”. Walaupun e-book berbahasa Inggris namun tidak begitu susah untuk dipahami. Dalam e-book tidak hanya menjelaskan tentang command line di Linux, namun juga di Unix, BSD, AIX, dan OpenSolaris. Silahkan download e-book pada link dibawah ini.

Download : Introduction to the Command Line