Using sqlite in Qt Application

 I got this error, every time a reopen or open a new database file:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

Sometimes I get lazy and ask google first. This time google didn't tell me.
 A few noobs like me had the same issue. There was discussion about that, but they actually was digging to deep!

The answer is very simple!

Load driver only once:


And then, the database file you can close and open multiple times:


if (db.open())
qDebug() << db.lastError();

qDebug() << db.tables();



Bash script to manage sshfs

If you wanna use sshfs, this software should be installed:

$apt-get install openssh-client openssh-server sshfs 

If server not always online and you want to mount automatically sshfs when server online, I use this bash.

Bud before running bash, you have to be able connect to server without a password.

You have to create pabulic key on client

$ssh-keygen -t rsa

And then copy key from client ~/.id_rsa.pub (single long line in the text file)
to server ~/.ssh/authorized_keys 

I added this script to "Startup Applications".

Download sshfs.bash


echo $0

# =======================================================

# =======================================================
# =======================================================

NET_STATUS=`ping ${REMOTE_IP} -c 1`

    if grep -q "64 bytes from ${REMOTE_IP}: icmp_req=1 ttl=64 time=" <<< "$NET_STATUS" ; then
        echo "ONLINE"
        echo "OFFLINE"

PID_STAT=`ps axu`

    if grep -q "sshfs ${REMOTE_USER}@${REMOTE_IP}:${REMOTE_PATH}" <<< "$PID_STAT" ; then
        echo "PID RUNNING"
        echo "PID DEAD"

# =======================================================

    while true
        if [ $BOOL_ONLINE -eq "1" ]; then
            if [ $BOOL_PID_RUN -eq "1" ]; then
            if [ $BOOL_MOUNTED -eq "0" ]; then
            echo "MOUNTIN SSHFS ..."

                if [ ! -z "$SSH_MOUNT" ]; then
                echo "ERROR ${SSH_MOUNT}"
            echo "DONE"    
        if [ $BOOL_ONLINE -eq "0" ]; then
            if [ $BOOL_MOUNTED -eq "1" ]; then
            echo "KILLING SSHFS ..."
            kill `pidof ssh`
            echo "DONE"
        if [ $BOOL_MOUNTED -eq "1" ]; then
            if [ $BOOL_PID_RUN -eq "0" ]; then
    sleep 5

echo "EXIT"

# =======================================================


Linus Torvalds Interviews

Desktop Environment's for Linux MINT



  It looks really cool, bud too much sparkles for every day work...

  Today looks best! I did try Mint cinnamon 16.
The Ideas I like a lot!
* Great art work.
* Work space switcher by the mouse in the top left corner.
* Managing windows by dragging them to the sides or top.
Very useful features.
Bud sorry it's to buggy...
* Unable connect to hidden Wifi, Network settings window crash every time.
* I try organize panel content - unsuccessful.
* Some thing wrong with the package manager (I believe it's fixable).
Experience was similar to Ubuntu bugs in the passed, it was Ubuntu version 12.10 (don't know how it is now).
So I guess I have to wait for more stable Cinnamon, and stick to Mate for now. 

  Good! I enjoy it! (Mint 14)

I try live Mint Mate 16 - still great!
Unfortunately installation has some issues.
* Proprietary Drivers Installer works, bud nviadia xconfig tool not.
* there are some issue with desktop fonts when nvidia driver is activated.

* Have to fix repository list, for some reason live version repository list are different from installed version (Cinnamon 16 has the same issue). 

Gnome (not available with Mint)
Looks better last realise, bud BIG NO! I don't like the idea!
Touch screen menu doesn't help you work
faster or easier on non touch screen PC!  
Gnome plans integrate all social web like facebook and etc... to desktop environment, I never going to be interested in that! 

I don't know yet... Have to read & see more...

P.S. "The thing that works for every case it actually does not work in any case!" OR "What is suitable for everything, often is good for nothing...".

The same menu for touchscreen and for non touchscreen PC is just stupid!
At least I did not see good one yet...  I believe it should be two different work modes. It would be great if they switch dynamically. Selecting the mode during installation it would be also not bad.


Scheduled shutdown user friendly way with qZleep on Linux Mint

A simple tool scheduled shutdown in 24 hours. Perhaps you want to let finished same job for same time...
Or you like watch TV show in the bed and your brain

shutdown unpredictably... 
It is very unpleasant to wake up at night and then turn off everything...

Download Package
For Linux Mint and Ubuntu

Mirror: qzleep_0.1.0-4_amd64.deb
Mirror: qzleep_0.1.0-4_i386.deb


tested on
 Mint 14 MATE
 Mint 15 KDE
 Ubuntu 12.04




Mail Client for Gmail - Firefox

Since Evolution mail & calendar is moved to new (Ubuntu) Gnome and
Debian squeeze version (which i really like) not available and also adapted version for Mint is not good...

Thunderbird - I used for half a year and its so bad that I never comeback to it...

I did not search very long for other mail apps but as I know that is pretty much all for Linux...
Except using browser, and obviasly google impruved web mail very much.
So I decided to try it out!


I think and I state:  Email and Internet browsing - should not be together!

Notion that you browsing internet while logged in could lead
to many speculation what goes in background at that time...
I leave speculation  for others...
I'm just gonna avoid it.

So I work out the solution.

The solutions is simple, use two users. Run Firefox from some other user only for Gmail and Internet browsing leave to main desktop user.

My example is for Linux.
I believe it can be done for Windows Seven to, if You get the idea, follow link below:

Step 1:
For example my Deskotp user that i'm currently working on is called "user".
Create a new user "gmailclientfirefox", from grapical inteface "Users and Groups", set password and etc.

Step 2:
Create script file "gmail.bash"

su --login -c "/usr/bin/firefox" -s /bin/sh gmailclientfirefox

To be secure I set file permissions read&execute for owner only

-r-x------ 1 user user   382 Aug  5 23:41 gmail.bash

Set sudo exception for the script or in other words allow run script without password:

Add line at the end of the file "/etc/sudoers"

user ALL = NOPASSWD: /path/to/gmail.bash

Step 3:
Create launcher:
Find & download png image for gmail launcher icon.

Double click launcher. Go to gmail & log in. If you done working with email just close the window.
Second time just double click again and there is your mail!

I added launcher next to menu:

To not confuse which Firefox for Internet browsing and which is for Gmail
I change Firefox settings, remove all the top menu bars.
It looks like this:

I'm a Firefox fan, so I did it with Firefox. Google chrome have one advantage, there are some feature - can access mail even offline, did not try.


multi session with Medit

Create three launchers, each for different purpose/session

Command examples:

medit -n --use-session=yes --app-name=notes_txt

medit -n --use-session=yes --app-name=source_c

medit -n --use-session=yes --app-name=web_php

Each of them will remember it's owned session (previously opened files and etc.).
Except for working directory in Pane "File Selector", bud you can make bookmarks and switch fast.


Install grub from live Linux Mint

 If You installing Windows on a HDD whare Linux already intalled.
There is not a lot of reasons for this, in general installing windows its not a good idea (my opinion)! But if You really want this! This is the way to do it!

After Windows installation is complete. Boot live Linux Mint from USB flash or from DVD-ROM... and open terminal.

If You tray something like this (this worked on Debian squeeze, and I believe it sill works):
$sudo grub-install /dev/sda

On Mint this is what you will see:
grub-probe: error: failed to get canonical path of /cow.
Path `/boot/grub' is not readable by GRUB on boot. Installation is impossible. Aborting.

To fix this, mount rootfs. You need to specifay not only device ,bud path to mounted rootfs.
Enter something like this:
$sudo grub-install --recheck --root-directory=/media/mint/ac61ecb9-7b20-4d94-b9e2-9b1ece015459/ /dev/sda

Grub-probe will still complain ... bud its not important, cause grub will be installed successfully.

Now reboot (remove live cd or flash). Now You will not see grub menu, and Linux will boot up.
So ,You need to update grub:

$sudo update-grub

Reboot again.

And now all OS available in grub menu!


Favorite Linux applications

Video Player: mplayer
               without skin 

Media Center: xbmc  (PC video on TV)
            This is the reason for baying HTPC not a player with embedded software inside...

Music Player: deadbeef
         Preferred  lossless audio (flac)

Mail Client: gnome evolution mail
          on Debian works better then on Mint or Ubuntu

Internet Browser: Firefox

Text Editor: Medit
          For those how like notepad++ on Windows, I think, Medit is the best choice on Linux

Torrent Client: Deluge

Calculator: Galculator
         for hex to bin & dec to hex ...

Disk & Partition Tools: Gnome disk utility
        Debian squeeze version only (bad update for Ubuntu or Mint)

Home server: lighttpd,proftpd

Communication: skype beta
        I gonna use skype until this version works (updates not welcome!)
        Now tying to find free & so-so working voip client, no success jet.

USB Boot disk creator: unetboot

Development: Qt-SDK, Codelite-IDE


Linux hhd notifications before failure

Disk info can be read by:
# smartctl -a /dev/sda
sda   sda2  sda5  sda6  sda7  sda8  sdb   sdb1  sdb2  sdb3 
root@debian:/home/rolandas# smartctl -a /dev/sda
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net

Model Family:     Seagate Barracuda 7200.12 family
Device Model:     ST3750528AS
Serial Number:    9VP3P00T
Firmware Version: CC44
User Capacity:    750,156,374,016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Mon Feb 25 13:52:23 2013 EET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                    without error or no self-test has ever
                    been run.
Total time to complete Offline
data collection:          ( 625) seconds.
Offline data collection
capabilities:              (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                    General Purpose Logging supported.
Short self-test routine
recommended polling time:      (   1) minutes.
Extended self-test routine
recommended polling time:      ( 174) minutes.
Conveyance self-test routine
recommended polling time:      (   2) minutes.
SCT capabilities:            (0x103f)    SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
  1 Raw_Read_Error_Rate     0x000f   112   099   006    Pre-fail  Always       -       48739835
  3 Spin_Up_Time            0x0003   094   094   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       785
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   073   060   030    Pre-fail  Always       -       12957032809
  9 Power_On_Hours          0x0032   094   094   000    Old_age   Always       -       5754
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       785
183 Runtime_Bad_Block       0x0000   100   100   000    Old_age   Offline      -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   092   000    Old_age   Always       -       716
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   069   066   045    Old_age   Always       -       31 (Lifetime Min/Max 31/31)
194 Temperature_Celsius     0x0022   031   040   000    Old_age   Always       -       31 (0 19 0 0)
195 Hardware_ECC_Recovered  0x001a   056   041   000    Old_age   Always       -       48739835
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       178490250895066
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       1548794144
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       2626206228

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Or graphical tool can be used for that (in terminal "palimpsest",program title "Disk Utility",under "SMART data"):

I don't know way it says "Good"?
There is definitely nothing good about that!
It generally means - make a backup fast!

Unfortunately I unable to find applet or tool to notify about this type of errors.
I have to periodically check my self.
In the future I will fix this inconvenience!


Linux Wine: Setting Windows/DOS environment variables & running bat files

Example how to add environment variable "PATH"

Example of running *.bat:

Content of bash for starting *.bat file:
wine start ./dir.bat

Content of "dir.bat":


ISO file integrity check with md5sum

How often do you check *.iso files with md5sum.
All Linux binary images submitted with md5sum next to download link.
I never done that before, because I had believed that corruption is very rare!
One time I caught my eye on md5sum and made the check, and it unexpectedly FAIL!
I download *.iso again, now it PASS

So I guess it is not so rare!
Remainder for my self! Check *.iso files before using it!

To create checksum file:
$ md5sum ./linuxmint-14.1-mate-dvd-32bit.iso > ./md5sum.txt

File content:
$ cat ./md5sum.txt
9793c1e9c443241d156aace0446894dd *./linuxmint-14.1-mate-dvd-32bit.iso

You can create text file and copy file name and MD5 from the web page to check *.iso integrity.

To check integrity
$ md5sum -c ./md5sum.txt
./linuxmint-14.1-mate-dvd-32bit.iso: OK

I made Bootable USB stick from corrupted *.iso ,before the check and it works!
I wonder what consequences may be... corruption may hit only some application..? Can I expect crashes? How contraption can effect live Linux disk? 
Is this really the right way to distribute a binary image?

I'm not complaining! I'm just asking..? :)

md5sum check is fast and easy, bud maybe it's not for a user to thing about...
In a perfect World I would want notification about corrupted file after download is completed...  

I did couple tests with flash drive created from corrupted *.iso.
It depends on the part where the damage is done. It may boot up on one machine and make no problems;
O other machine it can freeze during boot with no explanation;
Also it may boot up, and throw "Installer crashed" during instalation;
So don't waste Your time, check *.iso integrity!



I use Debian squeeze by default.
Form time to time I search for brand new Linux distro with latest packege versions,
for Multimedia or gameing (using wine).

Ubuntu is closest to Debian cause it's Debian underneath!
There is a lot of good things on Ubuntu... 
Bud I rely struggle with Ubuntu... I did not like new Gnome style, it's clearly made for touch screens.
I use simple Desktop PC so I don't need that.
I tried to use "Ubuntu classic (no effects)" - my opinion: it's broken! 
Nautilus on sartup thinking too much...
Auto login is non functional yet... 
Somehow disappearing notification area...
Even on default apprentice of Ubuntu - a lot of buggy Gnome configuration...

Recently i got tip from a Friend - "Try Linux Mint"!
Mint is Ubuntu underneath... Repositories are the same...
Bud the result is amazingly different!!!
Performance is great! Strangely it's much faster than Ubuntu!
I came to conclusion, that the graphical interface is what dragged down Ubuntu...

There is all types of graphical interfaces for LINUX MINT.
I tied two of them (GNOME based MATE and KDE), both works amazing!

So I switching from UBUNTU to MINT!


For a server I stay with Debian squeeze! :)



Fastest way to make one of Linux OS (if there is more then one) to be first in grub boot menu

Boot to Your favorite Linux (if there is more then one)!

Mount all Linux OS root file systems, otherwise it may not be visible and it will not be added to grub menu (Windows visible always, despite partition mounted or not).

I want Debian 6.0.6 bigmem to be the first one (default boot OS)!

So,  open root terminal and:
# update-grub
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-5-686-bigmem
Found Debian GNU/Linux (6.0.6) on /dev/sda2
Found Ubuntu 12.10 (12.10) on /dev/sdc2
Found Microsoft Windows XP Professional on /dev/sdc3
Found Linux Mint 14 Nadia (14) on /dev/sdc6

# grub-install /dev/sdc --recheck
Installation finished. No error reported.


SSH linux terminal

$apt-get install openssh-client
$apt-get install openssh-server

on client:
$ ssh-keygen -t rsa
$ ls ~/.ssh/
$ cat ~/.ssh/id_rsa.pub
     # copy conten to server "~/.ssh/authorized_keys"
$ ssh-copy-id -i ~/.ssh/id_rsa.pub $remote_user@$remote_host

on server:
$ cat ~/.ssh/authorized_keys

create pabulic key on client
 ssh-keygen -t rsa
 copy key from client ~/.id_rsa.pub (line) to server ~/.ssh/authorized_keys (line)
on client:

    destination (server)         localhost (client)

$ ssh rolas@ -p 22 -R 22222:

on server:
$ ssh -p 22222

scp $source_file $remote_user@$remote_host:$destination_file
scp $remote_user@$remote_host:$source_file $destination_file 

ssh $remote_user@$remote_host 'ls *.txt'



$ /sbin/route -n | grep "" | grep "UG"         UG    0      0        0 eth0

$ /sbin/ifconfig eth0 | grep "inet addr:"
    inet addr:  Bcast:  Mask:


StarCraft II: Wings of Liberty on Ubuntu **UPDATED**

Installation (How to):
StarCraft II: Wings of Liberty on Ubuntu

I am very Happy to Post This!!!

Performance Issue resolved on Ubuntu!

I did update, and now it is:

Ubuntu 12.10
Wine version: 1.5.20

Linux P5QCUbuntu64 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux


In my frost post I dod not write the version of Nvidia driver, I believe it also updated so as Nvidia Settings Tool , cause in the previous version I do not remember option "Prefer Maximum Performance" (Pict. below). I definitely
recommend to set this before starting the game!

I set Game Graphics on Medium!

I really enjoy the Game!
Comparing performance it my some difference with Windows XP. Windows may perform slightly better.... Bud I don't care! Now on Ubuntu + Wine it's good enough!
By by Windows!!!


Adding skype to GNOME (tray) panel indicator applet on Ubuntu 12.10

Ubuntu indicator-applet is like a tray in Windows 
Check if packeges installed:

$ sudo apt-get install indicator-applet indicator-applet-session
Adding skype to indicator-applet
Check settings: 
$ gsettings get com.canonical.Unity.Panel systray-whitelist 
$ ['JavaEmbeddedFrame', 'Wine', 'Update-notifier']
Add skype to the list:
$ gsettings set com.canonical.Unity.Panel systray-whitelist \
"['JavaEmbeddedFrame', 'Wine', 'Update-notifier', 'Skype']"
Gnome panel configure in session "Gnome classic no effect".
 "alt" + "alt" + mouse right click, select "Add to Panel"
The name of the panel item where skype icon appears 
(add this if not already exists):
Graphical Desktop activation tool:  
$ sudo apt-get install gnome-tweak-tool


... Star Trek Spock ...

If you eliminate the impossible, whatever remains, however improbable must be the truth!



Best posible sound using Windows

We need the right player "foobar2000_v1.2"

Driver - "ASIO4ALL_2_10_English"

And component for foobar to use them together - "foo_out_asio.fb2k-component"

It will not work, if not configured correctly. Also we should kill all sound related programs which may conflict.

Check if the component in the right place (picture below):

Set output device like this (picture below):

Now try play some file, i guess all outputs are muted by default, so unmute them if it looks like playing bud no sound.

Also select only one output device in the Device list. Restart Foobar after that.

Final indication if we done everything correctly (picture below):

"This software uses code of FFmpeg licensed under the LGPLv2.1 and its source can be downloaded here", taken from http://www.foobar2000.org/download

So I believe, for Linux no need special installs or configurations, the sound not messed up by default.