第一步先安裝 PostgreSQL
sudo pacman -S postgresql
然後登入 postgres 帳號
sudo -i -u postgres
接著進行資料庫初始化
initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
如果發生錯誤,表示目前的 locale 不是 en_US.UTF-8
initdb: invalid locale name "en_US.UTF-8"
初始化資料庫後就可以啟動 PostgreSQL
sudo systemctl start postgresql.service
sudo systemctl enable postgresql.service
建立使用者
createuser --interactive
接著用剛剛建立的使用者帳號建立資料庫
createdb myDatabaseName
使用 psql 進入資料庫
psql -d myDatabaseName
允許遠端連線
修改 /var/lib/postgres/data/postgresql.conf 的內容
listen_addresses = '*'
接著在 /var/lib/postgres/data/pg_hba.conf 將原本的 IPv4設定為
host all all my_remote_client_ip_address/32 md5
設定完之後,重新啟動 PostgreSQL
sudo systemctl restart postgresql
資料來源:
Archlinux Wiki - PostgreSQL
https://wiki.archlinux.org/index.php/PostgreSQL
2015年9月26日 星期六
2015年9月24日 星期四
Qt 如何從檔案讀取 UTF-8 的中文
首先開啟檔案,
然後使用 QTextStream,
記得使用 setCodec 設定編碼。
程式範例:
QFile file("utf8");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd()) {
QString line = in.readLine();
QTextStream qtout(stdout);
qtout << line << "\n";
}
資料來源:
http://stackoverflow.com/questions/5630114/how-to-read-utf-8-text-from-file-using-qt
然後使用 QTextStream,
記得使用 setCodec 設定編碼。
程式範例:
QFile file("utf8");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QTextStream in(&file);
in.setCodec("UTF-8");
while (!in.atEnd()) {
QString line = in.readLine();
QTextStream qtout(stdout);
qtout << line << "\n";
}
資料來源:
http://stackoverflow.com/questions/5630114/how-to-read-utf-8-text-from-file-using-qt
2015年9月23日 星期三
Qt - 使用 qrand() 產生亂數 rand
Qt - 使用 qrand() 產生亂數 rand
max 最大值
min 最小值
qrand() % ((max + 1) - min) + min;
產生出來的亂數包含 max 及 min 兩者。
如果連續執行多次程式,會發現每次產生的亂數都是一樣的,
因為電腦產生的亂數,其實是偽亂數,所以想要讓每次的亂數不同,
還需要執行 qsrand 來設定亂數種子。
備註:使用 QTime::currentTime().msec() 現在時間當作種子來設定
備註:使用 QElapsedTimer 取得小於 ms 的時間刻度
資料來源:
Qt Documentation - <QtGlobal> - Global Qt Declarations
http://doc.qt.io/qt-5/qtglobal.html#qrand
How to generate random number between two numbers? Qt
http://qt-project.org/forums/viewthread/24262
Use of qsrand, random method that is not random
http://stackoverflow.com/questions/2767383/use-of-qsrand-random-method-that-is-not-random
Qt: Fast way to measure time?
http://stackoverflow.com/questions/244646/qt-fast-way-to-measure-time
max 最大值
min 最小值
qrand() % ((max + 1) - min) + min;
產生出來的亂數包含 max 及 min 兩者。
如果連續執行多次程式,會發現每次產生的亂數都是一樣的,
因為電腦產生的亂數,其實是偽亂數,所以想要讓每次的亂數不同,
還需要執行 qsrand 來設定亂數種子。
備註:使用 QTime::currentTime().msec() 現在時間當作種子來設定
備註:使用 QElapsedTimer 取得小於 ms 的時間刻度
資料來源:
Qt Documentation - <QtGlobal> - Global Qt Declarations
http://doc.qt.io/qt-5/qtglobal.html#qrand
How to generate random number between two numbers? Qt
http://qt-project.org/forums/viewthread/24262
Use of qsrand, random method that is not random
http://stackoverflow.com/questions/2767383/use-of-qsrand-random-method-that-is-not-random
Qt: Fast way to measure time?
http://stackoverflow.com/questions/244646/qt-fast-way-to-measure-time
Qt - 建立一個 Console 應用程式
想要用 Qt 建立一個 Console 應用程式,
只要像下列的範例就可以建立。
#include <QtCore/QCoreApplication>
#include "Foo/Foo.h"
int main(int argc, char* argv[])
{
QCoreApplication app(argc, argv);
Foo foo;
return app.exec();
}
資料來源:
How do I create a simple Qt console application in C++?
http://stackoverflow.com/questions/4180394/how-do-i-create-a-simple-qt-console-application-in-c
只要像下列的範例就可以建立。
#include <QtCore/QCoreApplication>
#include "Foo/Foo.h"
int main(int argc, char* argv[])
{
QCoreApplication app(argc, argv);
Foo foo;
return app.exec();
}
資料來源:
How do I create a simple Qt console application in C++?
http://stackoverflow.com/questions/4180394/how-do-i-create-a-simple-qt-console-application-in-c
2015年9月21日 星期一
Arch Linux 安裝 ssh server
使用 Linux 常常會用到的功能 ssh
首先安裝 ssh server
pacman -S openssh
接著啟動服務
systemctl start sshd.service
可以設定開機自動啟動服務
systemctl enable sshd.service
如果是在 VM 底下操作的話,記得設定 port forwarding
首先安裝 ssh server
pacman -S openssh
接著啟動服務
systemctl start sshd.service
可以設定開機自動啟動服務
systemctl enable sshd.service
如果是在 VM 底下操作的話,記得設定 port forwarding
2015年9月20日 星期日
SQL 在 Unicode 欄位設定 Unicode 文字
在 Unicode 欄位設定 Unicode 文字
必需滿足兩個條件
一、該 sql 檔案編碼為 UTF-8
這是常被忽略的一點,曾經因為檔案編碼為 Big5 而花費幾個小時找問題,
使用 SSMS 前,預設存檔編碼為 Big5,記得自行轉檔。
二、該文字前加上 N 前置詞
一個字串如果沒有加上前置詞,該字串會被當作非 Unicode 解讀,
造成存在 Unicode 欄位時變成亂碼
範例:
UPDATE GameServer.dbo.Game SET Name = N'可愛巧虎島'
資料來源:
在 SQL Server 中處理 Unicode 字串常數時,必需為所有的 Unicode 字串加上前置詞 N
https://support.microsoft.com/zh-tw/kb/239530
必需滿足兩個條件
一、該 sql 檔案編碼為 UTF-8
這是常被忽略的一點,曾經因為檔案編碼為 Big5 而花費幾個小時找問題,
使用 SSMS 前,預設存檔編碼為 Big5,記得自行轉檔。
二、該文字前加上 N 前置詞
一個字串如果沒有加上前置詞,該字串會被當作非 Unicode 解讀,
造成存在 Unicode 欄位時變成亂碼
範例:
UPDATE GameServer.dbo.Game SET Name = N'可愛巧虎島'
資料來源:
在 SQL Server 中處理 Unicode 字串常數時,必需為所有的 Unicode 字串加上前置詞 N
https://support.microsoft.com/zh-tw/kb/239530
訂閱:
文章 (Atom)