QLatin1String vs QStringLiteral

QLatin1String

Qt 함수가 매개 변수로, QString 이외에 QLatin1String도 받는다면, QLatin1String을 사용하는 것이 빠르다.

더 읽어 보기 ...

gen-cef-vsproj, gen-grpc-vsproj

cef를 한 번 빌드하려면, CEF Prebuilt 사이트에서 다운로드, 압축 해제, CMake 빌드, libcef_dll_wrapper 빌드까지 손이 많이 간다.
그래서, 가져올 Standard Distribution 버전 파일 링크만 입력해주면, 위의 동작을 자동으로 처리하는 배치 파일을 만들었다.

더 읽어 보기 ...

로그스태시 date, fingerprint 필터

로그스태시로 수집한 데이터가 앨라스틱서치에 쌓일 때, @timestamp 값에는 로그가 수집되는 현재 시간이 디폴트로 설정된다. 실시간으로 수집되는 로그라면 별 문제가 없겠지만, 이런 저런 이유로 로그에 포함돼 있는 시간과 실제로 로그스태시가 수집하는 시간의 차이가 크다면, date 필터를 활용해서 현재 시간 대신, 로그에 포함돼 있는 타임스탬프 값이 @timestamp에 설정되도록 할 수 있다.

더 읽어 보기 ...

CEF sub process 샘플

cef는 chrome과 동일하게 멀티 프로세스로 동작한다. 만약, all.exe를 만들어 실행하더라도, 보통 3개의 all.exe 프로세스가 생성되며 각각 browser(main), renderer/gpu(sub) 프로세스 역할을 담당한다.
배틀넷 런처, LOL 클라이언트 등 대부분의 cef 애플리케이션은 main 프로세스 전용의 exe(예를 들어, host.exe)와 renderer/gpu 전용의 exe(예를 들어, sub.exe)를 만들어 사용한다.
이렇게 하면, host에 주요 로직을 두고, sub에 메시지 라우터 같은, 자바스크립트와의 연동 처리를 둬서 코드를 분리할 수 있다.

더 읽어 보기 ...

Telegram desktop 빌드

Telegram은 pc 및 모바일 버전 클라이언트 소스를 github에 공개하고 있다. Telegram 역시 Qt를 사용하고 있기 때문에 참고할 내용이 많겠다 싶어 pc 버전을 받아서 빌드해봤다.

더 읽어 보기 ...