kogpt
KoGPT Web UI 만들기
이번 포스트는 kogpt.tmmse.xyz 를 만들면서 느낀 점들을 다룹니다. (다 사용하고 현재는 닫았습니다. 사용하실 분들은 Github 코드를 빌드하시면 되는데, 이게 가능하시면 직접 만드시는게 더 편하실 거에요....) KoGPT Rest API 공개 OpenAI 가 공개한 GPT-3 는 언어를 너무 잘 다뤄서 전세계가 놀랐었죠. 당연히 영어로 동작하기 때문에, 한국어를 잘 다루는
School of Electrical and Electronic Engineering, Yonsei University, South Korea
kogpt
이번 포스트는 kogpt.tmmse.xyz 를 만들면서 느낀 점들을 다룹니다. (다 사용하고 현재는 닫았습니다. 사용하실 분들은 Github 코드를 빌드하시면 되는데, 이게 가능하시면 직접 만드시는게 더 편하실 거에요....) KoGPT Rest API 공개 OpenAI 가 공개한 GPT-3 는 언어를 너무 잘 다뤄서 전세계가 놀랐었죠. 당연히 영어로 동작하기 때문에, 한국어를 잘 다루는
Linux
필자는 라즈베리파이에서 Timing 이 아주 중요한 application 을 개발하고 있었다. 프로세스가 context switching 되어 나가는 동안 데이터를 처리하지 못해 문제가 발생하는 상황이었다. 그래서, real time kernel 을 사용했다. 모든 kernel 관련된 작업이 마찬가지지만, 이 작업 또한 참 귀찮다. 한국어로 된 자료도 마땅한 것이 없기에 이 포스트를 작성한다. 배경 지식 * Real
Linux
지난 포스트 에서 windows 와 linux의 차이를 알았다. 그렇다면, Wine 은 그 간극을 매꾸기 위해 어떻게 구현 하였는지 알아보자. 시작하기 전에 잡지식 얘기하자면, WINE은 Wine Is Not Emulator의 약자이다. (그런데 내 생각에는 emulator가 맞는 것 같다.;;) 1. Wine 의 구조 - Builtin / Native Dlls wine은 무엇을 구현했는가? 첫째로 PE binary 를
Linux
본 포스트는 프로그램의 실행 관점에서 어떻게 windows 와 linux가 다른지에 대해 얘기하고자 한다. 그리고, 다음 포스트에서 그 차이를 어떻게 맞출 수 있는지에 대해 설명하고자 한다. Ubuntu와 같은 Linux 배포판을 처음으로 사용하게 되면, 너무도 당연하게 돌던 것들이 안돌아서 당황하기 마련이다. (Ex. 카톡, 게임, 오피스 등등.) 필자도 대학생때 처음으로 ubuntu 를 설치해보고
Linux
필자는 2017.2 ~ 2019.3 까지 3년동안 Tmax 에서 개발자(사내에서는 연구원이라고 칭한다.) 생활을 하였다. 본 포스트는 3년간의 생활에 대한 소회이다. 일기 형식이니 그냥 읽고 싶은 사람만 읽어라. 기술적인 내용은 차차 하나하나 포스트하고자 한다. (예고 내용은 마지막에 있다.) 1. 입사 과정 -- 내 소개 페이지에도 써있지만 나는 2014년 부터 연대 전기전자
Linux
Linux git 에 내 이름이 올라갔다! 하하 보통 말하는 contribute 을 한 것은 아니고, 그냥 bug report 이다. Linux git 에는 그래도 bug 가 해결되는 commit 이 올라가면 reporter 도 올려주더라. (Linux git 에서 볼 수 있다. ) 이런 사소한 것도, 사실 내가 다 한건 아니고 우리 팀 고수형(헌진이형 압도적
Linux
본 포스트는 debian packaging과 policy(정책) 일부 대한 기본적인 지식을 소개하도록 함. Introduction Debian project 는 쉽게 말해 free OS 중 일종이고, 대표적인 예로 Ubutnu 가 debian 계열의 linux 배포판 중 하나이다. 개인적으로 내가 생각하는 Debian 의 가장 큰 장점은 package managing 이다. Ubuntu를 써본 사람이라면 apt install XXXXX 이런
c++
본 포스트는 More Effective C++ item 19 ~ 22 를 참고하여 작성함. 임시 객체의 origin을 이해하자 임시 객체 (Temporaries) ? template<class T> void swap(T& object1, T& object2) { T temp = object1; object1 = object2; object2 = temp; } 여기에 있는 이 temp 말하는거 아님!! HON MONO 임시 객체는 코드에도 없고,
Linux
본 포스트는 APUE chap.19 을 참고하여 작성함. Pseudo Terminal은 application 이 보기에는 터미널로 보이지만, 사실 진짜 터미널이 아닌 것이다. Pseudo Terminal의 구조, 예시, 사용법에 대해 설명하도록 함. Pseudo Terminal 개요 Pseudo terminal 을 사용하는 프로세스들의 전형적인 구조는 아래와 같다. * 부모 프로세스가 pseudo terminal master를 open 하고 fork -> 자식
기본적인 과정 * Itemize (item 분리) * Shape (item 별 glyph 추출) * Place (?) * Render 1. Itemize a. Uniscribe HRESULT ScriptItemize( _In_ const WCHAR *pwcInChars, _In_ int cInChars, _In_ int cMaxItems, _In_opt_ const SCRIPT_CONTROL *psControl, _In_opt_ const SCRIPT_STATE *psState, _Out_ SCRIPT_ITEM *pItems, _Out_ int *pcItems ); pItems 이 떨어지는
Linux
본 포스트는 APUE chap.13 을 참고하여 작성함. 데몬은 오래사는 프로세스를 말하고, 보통은 시스템이 부팅될 때 같이 켜지고 종료될 때 같이 끝남. Controlling 터미널이 없어서 background에서 돈다라고 표현한다. 데몬의 구조, 작성법, 오류 로깅에 대해 설명하려고 함! 데몬의 특징 ps -efj 와 같은 명령어로 확인 controlling 터미널이 없는 프로세스 (데몬)을
font
Uniscribe는 복잡한 언어를 처리하고, 글씨를 아주 잘 (high degree of control) 조절할 수 있는 API 모음이다. Layout Text with Uniscribe ( MSDN page의 내용을 번역. ) 아래의 순서대로 uniscribe call들을 사용하면 layout 이 가능하다. 문단은 run들로 이미 나눠져있다고 가정하고. 1. 첫 시작이나 WM_SETTINGCHANGE 메세지를 받았을 때, ScriptRecordDigitSubstitution 호출. 2. (Optional) complex