[UA] Типовий підхід до роботи над спільним проектом засобами GitHub

Інтро

В Інтернеті є багато статей про те як користуватися git, є дуже багато статей про різного роду складні і вичурні техніки використання git.

Але, чомусь, ніде не знайшов толкового, простого і зрозуміло розписаного підходу до роботи засобами git над спільним проектом на GitHub.

Ця стаття — спроба описати підходу до роботи засобами git над спільним проектом на GitHub.

Читати далі

[EN] FIXME story

Got some complaint from customer. My program got strange and unexpected behavior in some cases. It is needed to solve that problem.

When I find that peace of code, where problem happened, I become very confused and surprised.

In that code I find next line:

// FIXME: show msg after dbmanager say OK

I’m a bit embarrassing, but in the same time proud, that wrote that FIXME, respectively, thought forward…

Сonclusion:

  • Always write lot of TODO, FIXME, WARN,... in doubtful situations.
  • Always try to decrease amount of TODO, FIXME, WARN,... by avoiding all that issues (especially, FIXME).
  • Think on architecture of software.

Компіляція Qt 4.8 під Лінукс

Вирішив трошки “get hands dirty”. Постійно використовую Qt та QtCreator як середовище для розробки як під Windows так і під Linux.

Цього разу вирішив зібрати бібліотеку Qt з вихідних кодів.

Читати далі

HOWTO: Як скомпілювати динамічні бібліотеки MySQL для Qt 4.8

Параметри системи, на якій все відбувається:

  • Windows 7, x64
  • Qt 4.8.4
  • MinGW 4.4

За замовчуванням, в Qt драйвери для роботи з базою даних MySQL відсутні. Щоб переконатися в цьому можна виконати наступний код:

QStringList driverList;
driverList = QSqlDatabase::drivers();
if (!driverList.contains("QMYSQL", Qt::CaseInsensitive))
{
    qDebug() << "No QMYSQL support! Check all needed dll-files!";
} else {
    qDebug() << "QMYSQL support is avaiable.";
}

Для того, щоб зібрати необхідну для роботи бібліотеку, потрібно мати вихідні коди Qt та вихідні коди MySQL (при встановленні обох поставити галочки “Встановлювати вихідні коди”). Для Qt вихідні коди будуть знаходитися в каталозі ...\Qt\4.8.4\src\ (конкретно, нас цікавить підкаталог \src\plugins\sqldrivers\mysql\), а для MySQL те що нам потрібно — ...\MySQL\MySQL Server 5.5\include\. Ці шляхи шляхи в мене в системі були c:\Program Files (x86)\MySQL\MySQL Server 5.5\include\ (C:\PROGRA~2\MySQL\MYSQLS~1.5) та d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\.

Для автоматизації збірки бібліотек, пропоную використати скрипт (.bat-файл):

set mysql=C:\PROGRA~2\MySQL\MYSQLS~1.5
cd d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\
qmake "INCLUDEPATH+=%mysql%\include" "LIBS+=%mysql%\lib\libmysql.lib" 
-o Makefile mysql.pro "CONFIG+=release"
c:\MinGW\bin\mingw32-make.exe
pause

В якому c:\MinGW\bin\mingw32-make.exe — шлях до вашого mingw32-make.exe.

В результаті успішного виконання скрипта, в каталозі d:\Qt\4.8.4\src\plugins\sqldrivers\mysql\release\ з’явиться файл qsqlmysql4.dll.

Увага. Файл qsqlmysql4.dll (а також, за необхідності qsqlmysqld4.dll) та libmysql.dll (з каталогу MySQL\MySQL Server 5.5\lib\) потрібно скопіювати в папку з Qt — Qt\4.8.4\plugins\sqldrivers\ і надалі розповсюджувати з програмою, де використовується доступ до баз даних MySQL.

Непоганий хайлайтер для вихідних кодів

markup.su — Дуже непоганий хайлайтер вихідних кодів. Розроблений Pavel Kornilov (lusever.com) Є підтримка цілої купи мов, і відповідно їх підсвіток.

Особливо порадувала підтримка мови С++ Qt — не у всіх подібного роду хайлайтерів є підтримка розширеного синтаксису Qt

Планую надалі використовувати його для цілей цього блогу 🙂