Programming/qt2014. 12. 11. 09:41
qt를 웹으로 띄울바에는..
차라리 V8로 교체하고 webkit으로 웹 브라우저를 띄운후.
이걸 HTML5를 통해 VNC 접속하게 하는게 편할거 같아서 일단 조사...

JSC는 JavaScript default Core 의 약자 이려나?

[링크 : http://webkit.sed.hu/blog/20101216/benchmarking-qtwebkit-v8-linux]
[링크 : http://blog.qt.digia.com/blog/2010/02/02/how-to-improve-webkit-performance/]
[링크 : http://blog.qt.digia.com/blog/2012/09/13/qt-4-8-3-released/] Qt4.8.3에는 webkit 2.2.3
[링크 : http://stackoverflow.com/questions/14680047/build-qtwebkit-with-v8]
[링크 : http://qt-project.org/wiki/V8_Port]

'Programming > qt' 카테고리의 다른 글

php - c shared memory  (0) 2014.12.16
qt fancybrowser  (0) 2014.12.16
Qt for Embedded Linux 와 VNC  (0) 2014.12.11
qt dialog / webkit 연동  (0) 2014.12.10
qt signal & slot - connect / disconnect / emit  (0) 2014.11.21
Posted by 구차니
Programming/qt2014. 12. 11. 09:40
일단 이걸 활성화 하려면..
Qt 4.8 에서는 -qt-gfx-vnc를 해줘야 하는데
음.. gfx??? 프레임 버퍼를 바로 보내주는 걸려나?

platform
QtEmbedded 컴파일 필요
$ cd path/to/QtEmbedded
$ ./configure -qt-gfx-vnc
$ make

Qt Application
$ ./analogclock -qws -display VNC:0 


[링크 : http://qt-project.org/doc/qt-4.8/qt-embedded-vnc.html]
2014/12/11 - [프로그램 사용/VNC] - VNC web 버전?

'Programming > qt' 카테고리의 다른 글

qt fancybrowser  (0) 2014.12.16
qt webkit javascript 엔진 V8로 교체하기?  (0) 2014.12.11
qt dialog / webkit 연동  (0) 2014.12.10
qt signal & slot - connect / disconnect / emit  (0) 2014.11.21
qt 프로젝트 파일 연관  (0) 2014.11.20
Posted by 구차니
Programming/qt2014. 12. 10. 22:42
QT 다이얼로그 자체를 편리하게 웹으로 바로 출력하는 건 없고
Dialog에 webkit을 불러 사용하는 방법 정도다 -_ㅠ

하긴.. 다이얼로그를 변환없이 바로 웹으로 출력이 되면 그건 혁명이지..



실제로 가능한진 실제로 구현해 봐야겠지만
Qtwui나
QtWebkit 도 있는데 대부분 검색으로 나오는건 Diaglog에 웹 브라우저를 넣는것이 대부분인 것으로 보인다.

[링크 : http://ariya.ofilabs.com/2011/10/hybrid-nativeweb-using-dialog-boxes.html]
[링크 : http://qt-project.org/doc/qt-4.8/qwebframe.html#addToJavaScriptWindowObject
[링크 : http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html ]

'Programming > qt' 카테고리의 다른 글

qt webkit javascript 엔진 V8로 교체하기?  (0) 2014.12.11
Qt for Embedded Linux 와 VNC  (0) 2014.12.11
qt signal & slot - connect / disconnect / emit  (0) 2014.11.21
qt 프로젝트 파일 연관  (0) 2014.11.20
QT font 관련  (0) 2014.11.06
Posted by 구차니
Programming/C Win32 MFC2014. 12. 9. 11:07
printf 에서 POSIX 확장기능인데
즉.. 리눅스나 유닉스만 되려나? 윈도우에서 될거 같진 않은데..

아무튼 몇번째 변수를 출력하냐 라는 기능
다국어 번역이라던가 (어순이 바뀔 경우)
하나의 변수로 여러번 출력할때 라던가 유용할 듯
CharacterDescription
n$ n is the number of the parameter to display using this format specifier, allowing the parameters provided to be output multiple times, using varying format specifiers or in different orders. If any single placeholder specifies a parameter, all the rest of the placeholders MUST also specify a parameter. This is a POSIXextension and not in C99. Example: printf("%2$d %2$#x; %1$d %1$#x",16,17) produces

"17 0x11; 16 0x10"


[링크 : http://en.wikipedia.org/wiki/Printf_format_string]

'Programming > C Win32 MFC' 카테고리의 다른 글

#ifdef 와 #ifdef ()의 차이  (0) 2015.04.13
winUSB / win32 physical drive  (0) 2014.12.23
include guard  (0) 2014.11.05
vc++ vector와 Vector 차이점?  (0) 2014.07.03
순열생성관련  (0) 2014.06.27
Posted by 구차니
Programming/xml2014. 11. 21. 18:53
DOM은 트리구조로 전체 내용을 파싱해서 사용하므로
수정,삽입 이나 복수 처리에 유리하다

SAX는 이벤트 드리븐 방식으로 element 나 attribute 단위로 이벤트가 발생하여 파서를 구성하며,
순차적으로 처리하며 부분적으로 파싱이 가능하지만 수정이나 추가 삭제에 불리한 구조이다
대신 SAX가 DOM 보다 단일 건에 대해서는 빠르게 파싱한다고 한다.

[링크 : http://en.wikipedia.org/wiki/Document_Object_Model]
[링크 : http://en.wikipedia.org/wiki/Simple_API_for_XML]
[링크 : http://sulemi.egloos.com/viewer/1133994]

xmllite는 ms에서 개발한것 같은데
[링크 : http://msdn.microsoft.com/en-us/library/windows/desktop/ms752872(v=vs.85).aspx]

expat과 비슷할 정도로 빠르다고 벤치마크에 나온다.
[링크 : http://blog.daum.net/aswip/8429353]
 
문제는... expat이 2007년 이후로는 개발이 안되고 있다는 점..?
 

'Programming > xml' 카테고리의 다른 글

libxml2  (0) 2019.07.04
xmlstarlet  (0) 2016.05.26
xml parser 선택 / 종류  (0) 2014.11.21
DTD / XSD  (0) 2014.11.11
xml benchmark  (0) 2014.11.10
Posted by 구차니
Programming/xml2014. 11. 21. 18:50
파서가 이렇게 많을 줄이야 ㄷㄷ

libxml2 / xerces가 XML 완벽 지원에 가깝고
성능이 중요하다면 rapidXML 이나 pugiXML
대용량 파싱에는 libxml2
이도저도 아닌 상황에서 가볍게 쓰기에는 tinyXML인 듯



[링크 : http://stackoverflow.com/questions/9387610/what-xml-parser-should-i-use-in-c ]

[링크 : http://xmlsoft.org/] libxml2
[링크 : http://xerces.apache.org/]
[링크 : http://rapidxml.sourceforge.net/]
[링크 : http://www.grinninglizard.com/tinyxml/]
[링크 : http://pugixml.org/

'Programming > xml' 카테고리의 다른 글

xmlstarlet  (0) 2016.05.26
DOM vs SAX  (0) 2014.11.21
DTD / XSD  (0) 2014.11.11
xml benchmark  (0) 2014.11.10
xml dtd xsd  (0) 2014.11.10
Posted by 구차니
Programming/qt2014. 11. 21. 10:17
음.. 일단 분석한 내용으로는..
signal은 껍데기 이고 Q_OBJECT를 본 moc가 알아서 생성해서
slot과 연결을 해주는 듯하다

아래 코드를 보면 signals: 에는 프로토타입만 있고 실제로 구현은 보이지 않으며
class Window : public QWidget
{
    Q_OBJECT
public:
    explicit Window(QWidget *parent = 0);
signals:
    void counterReached();
private slots:
    void slotButtonClicked(bool checked);
private:
    int m_counter;
    QPushButton *m_button;
}; 

connect를 보면 signal과 slot은 거의 동일한 함수 형태를 지니고
인자를 넘겨받게 되는 구조로 되어있다.
Window::Window(QWidget *parent) : QWidget(parent)
{
    // Set size of the window
    setFixedSize(100, 50);
 
    // Create and position the button
    m_button = new QPushButton("Hello World", this);
    m_button->setGeometry(10, 10, 80, 30);
    m_button->setCheckable(true);
 
    // Set the counter to 0
    m_counter = 0;
 
    connect(m_button, SIGNAL(clicked(bool)), this, SLOT(slotButtonClicked(bool)));
    connect(this, SIGNAL(counterReached()), QApplication::instance(), SLOT(quit()));
}
 
void Window::slotButtonClicked(bool checked)
{
    if (checked) {
        m_button->setText("Checked");
    } else {
        m_button->setText("Hello World");
    }
 
    m_counter ++;
    if (m_counter == 10) {
        emit counterReached();
    }
} 

아무튼.. 원칙(?)적으로는 각종 핸들러를 만들어주고 생성하고 연결해야 하나
그렇게 되면 코드가 막 꼬이는 것 처럼 보일수가 있기에
이를 간결하게 하기 위해서 moc를 통해 생성하는 구조로 추측된다.

[링크 : http://qt-project.org/doc/qt-4.8/tools-customtypesending.html]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots]
[링크 : http://qt-project.org/wiki/Qt_for_beginners_Signals_and_slots_2]
[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/QT_Whitepaper]

'Programming > qt' 카테고리의 다른 글

Qt for Embedded Linux 와 VNC  (0) 2014.12.11
qt dialog / webkit 연동  (0) 2014.12.10
qt 프로젝트 파일 연관  (0) 2014.11.20
QT font 관련  (0) 2014.11.06
QT modules  (0) 2014.11.05
Posted by 구차니
Programming/qt2014. 11. 20. 13:44
.pro 파일은 프로젝트 파일

qmake을 통해
Makefile을 생성
그 이후 make로 컴파일 

즉, 프로젝트를 수정할일이 있다면 .pro 파일을 수정후
qmake를 통해서 Makefile을 다시 생성해 내도록 해야 한다.

*.pro -> qmake -> Makefile -> make 

[링크 : http://qt-project.org/doc/qt-4.8/qmake-project-files.html]
[링크 : http://qt-project.org/doc/qt-4.8/qmake-manual.html]
[링크 : http://qt-project.org/doc/qt-4.8/qmake-tutorial.html]

'Programming > qt' 카테고리의 다른 글

qt dialog / webkit 연동  (0) 2014.12.10
qt signal & slot - connect / disconnect / emit  (0) 2014.11.21
QT font 관련  (0) 2014.11.06
QT modules  (0) 2014.11.05
QT Quick UI  (2) 2014.11.05
Posted by 구차니
Programming/xml2014. 11. 11. 09:58
DTD는 namespace를 지원하지 않고
XSD는 XML 표준에 namespace를 지원한다.
XSD를 쓰는게 더 나을거 같기도 하고..
[링크 : http://stackoverflow.com/questions/1490583/dtd-or-xml-schema-which-one-is-better]

일단 예제를 보면 DTD는 XML 포맷이 아니고 XSD는 XML 포맷이다.
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]> 

[링크 : http://www.w3schools.com/xml/xml_dtd.asp] DTD 


<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="to" type="xs:string"/>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="heading" type="xs:string"/>
      <xs:element name="body" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 

[링크 : http://www.w3schools.com/schema/] XSD 

[링크 : http://bsp.mits.ch/xsd2dtd/] XSD to DTD 

'Programming > xml' 카테고리의 다른 글

xmlstarlet  (0) 2016.05.26
DOM vs SAX  (0) 2014.11.21
xml parser 선택 / 종류  (0) 2014.11.21
xml benchmark  (0) 2014.11.10
xml dtd xsd  (0) 2014.11.10
Posted by 구차니
Programming/php2014. 11. 11. 08:18
암용으로 크로스컴파일 하려는데
이래저래 부딛히는 dog show!!

php 컴파일시 configure 파일에서 dlopen 으로  검색후
found=yes로 하여 강제로 dlopen(extension 사용 가능하도록) 수정해야 한다.

php 컴파일
$ rm config.cache
$ ./configure --host=arm-none-linux-gnueabi --disable-all --with-config-file-path=/etc --enable-simplexml --enable-cgi --enable-fpm 

if-else 그리고 fi를 주석처리 
$ vi configure
65281 line
flock_type=unknown
if test "$cross_compiling" = yes; then :
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else

65323 line
if test "$cross_compiling" = yes; then :
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else


xcache 컴파일
$ CC=arm-none-linux-gnueabi-gcc ./configure  --host=arm-none-linux-gnueabi --enable-xcache --enable-xcache-optimizer
xcache의 환경설정

$ vi /etc/php.ini

# 주석처리 되어있으니 주석만 삭제하면 될 듯
cgi.fix_pathinfo=1

# 이상한(?) 경로이니 옮겨서 사용하려면 주석삭제 및 수정 필요
extension_dir = "/usr/lib"

# 가장 아래 추가하면 됨
extension=xcache.so
[xcache.admin]
xcache.admin.enable_auth = Off

[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =               1M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =                 0
xcache.gc_interval =           0

xcache.var_size  =            1M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

xcache.test =                Off
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
xcache.coredump_directory =   ""

xcache.cacher =               On
xcache.stat   =              Off
xcache.optimizer =           Off

[xcache.coverager]
xcache.coverager =          Off
xcache.coveragedump_directory = "" 

$ vi /etc/lighttpd/lighttpd.conf 
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",
                               ".html" => "/usr/bin/php",
#                              ".php" => "/bin/php-cgi",
                               ".cgi" => "" )

fastcgi.server = ( ".php" => ((
                        "bin-path" => "/bin/php-cgi",
                        "socket" => "/tmp/php.sock",
                        "max-procs" => 1,
                        "bin-environment" => (
                                "PHP_FCGI_CHILDREN" => "1",
                                "PHP_FCGI_MAX_REQUESTS" => "100"),
                        "bin-copy-environment" => (
                                "PAHT", "SHELL", "USER" ),
                        "broken-scriptfilename" => "enable"
                ))
)

lighttpd 에서 cgi.assign 부분에 php를 주석처리 하지 않으면
php-cgi 가 fpm을 통해 데몬으로 구동되어도 cgi가 먼저 처리 하면서 캐싱이 되지 않는다. 
(cgi가 fastcgi보다 위에 있어서 그럴지도?) 



ab 로 벤치마크 결과 50% 정도 향상.. 이려나?
+xcache enable
Time taken for tests:   570.448 seconds
Requests per second:    1.75 [#/sec] (mean)
Time per request:       570.448 [ms] (mean)
Time per request:       570.448 [ms] (mean, across all concurrent requests)
Transfer rate:          38.86 [Kbytes/sec] received

+xcache disable
Time taken for tests:   916.042 seconds
Requests per second:    1.09 [#/sec] (mean)
Time per request:       916.042 [ms] (mean)
Time per request:       916.042 [ms] (mean, across all concurrent requests)
Transfer rate:          24.20 [Kbytes/sec] received 




-----
--enable-fpm을 추가하지 않아도 되긴 되는 듯?

'Programming > php' 카테고리의 다른 글

php simpleXML saveXML 정렬하기 (well-formed XML)  (0) 2014.12.23
php simpleXML  (0) 2014.12.22
lighttpd + php 퍼미션 문제  (0) 2014.10.21
php.ini extension_dir  (0) 2014.10.20
php 5.3.22 / xcache 1.3.2  (0) 2014.10.15
Posted by 구차니