We share our technical knowledge.

라즈베리파이에 Real Time kernel 올리기
Linux

라즈베리파이에 Real Time kernel 올리기

필자는 라즈베리파이에서 Timing 이 아주 중요한 application 을 개발하고 있었다. 프로세스가 context switching 되어 나가는 동안 데이터를 처리하지 못해 문제가 발생하는 상황이었다. 그래서,  real time kernel 을 사용했다. 모든 kernel 관련된 작업이 마찬가지지만, 이 작업 또한 참 귀찮다. 한국어로 된 자료도 마땅한 것이 없기에 이 포스트를 작성한다. 배경 지식Real Time

macOS에서 키보드 re-mapping
macOS

macOS에서 키보드 re-mapping

나의 macOS 키보드 리매핑 이유 esc 키가 너무 멀다. 흔히 쓰이지 않는 capslock을 대신 썼으며 좋겠다. 한영키가 윈도우 키보드 같이 같은 위치에 있으면 좋겠음. 외부 키보드는 right_alt 버튼, 내장 키보드는 right_cmd를 한영키로 사용하겠다. 외부 키보드 연결시 window 키는 cmd, alt키는 option키가 되어 본래 애플키보드에서 쓰는 게 반대로 되는

Wine은 어떻게 linux에서 windows app을 실행하나?
Linux

Wine은 어떻게 linux에서 windows app을 실행하나?

지난 포스트 에서 windows 와 linux의 차이를 알았다. 그렇다면, Wine 은 그 간극을 매꾸기 위해 어떻게 구현 하였는지 알아보자. 시작하기 전에 잡지식 얘기하자면, WINE은 Wine Is Not Emulator의 약자이다. (그런데 내 생각에는 emulator가 맞는 것 같다.;;) 1. Wine 의 구조 - Builtin / Native Dlls wine은 무엇을 구현했는가? 첫째로 PE binary

프로그램 실행 관점에서 본 windows 와 linux의 차이
Linux

프로그램 실행 관점에서 본 windows 와 linux의 차이

본 포스트는 프로그램의 실행 관점에서 어떻게 windows 와 linux가 다른지에 대해 얘기하고자 한다. 그리고, 다음 포스트에서 그 차이를 어떻게 맞출 수 있는지에 대해 설명하고자 한다. Ubuntu와 같은 Linux 배포판을 처음으로 사용하게 되면, 너무도 당연하게 돌던 것들이 안돌아서 당황하기 마련이다. (Ex. 카톡, 게임, 오피스 등등.) 필자도 대학생때 처음으로 ubuntu 를 설치해보고

개발자(?) 3년 생활 돌아보기
Linux

개발자(?) 3년 생활 돌아보기

필자는 2017.2 ~ 2019.3 까지 3년동안 Tmax 에서 개발자(사내에서는 연구원이라고 칭한다.) 생활을 하였다. 본 포스트는 3년간의 생활에 대한 소회이다. 일기 형식이니 그냥 읽고 싶은 사람만 읽어라. 기술적인 내용은 차차 하나하나 포스트하고자 한다. (예고 내용은 마지막에 있다.) 1. 입사 과정 -- 내 소개 페이지에도 써있지만 나는 2014년 부터 연대

Google HackFair 돌아보기 - MetaMong
Computer Vision

Google HackFair 돌아보기 - MetaMong

2015년 석사 입학 후 연말쯤에 소소하게 했던 프로젝트. 예전 인터뷰했던게 생각나서 공유. 인터뷰 link 0. Google HackFair는 구글 기술을 이용해서 만든 다양한 결과물들을 전시하고 공유하는 행사입니다. 지난 12월 5일, 프로젝트 참가자분들은 안드로이드, Cardboard, TensorFlow 등 다양한 구글 기술을 사용한 재미있는 프로젝트를 전시하고 풍성한 볼거리와 기술력 그리고 범상치 않은 업력(?)을

BicycleGAN : Image Translation with GAN (5)
Computer Vision

BicycleGAN : Image Translation with GAN (5)

Limitations of pix2pix, DTN, DiscoGAN & CycleGAN? They produce single answer. They are deterministic models. Translates an image in one-to-one Paired set, One-to-One : pix2pix (CVPR2017) Unpaired set, One-to-One : DTN (ICLR2017), CycleGAN (ICCV2017) Paired set, One-to-Many : ??? BicycleGAN: Toward Multimodal Image-to-Image Translation (NIPS2017) BicycleGAN github Easy approach: Adopt stochastically sampled noise $N(

Ghost 1.0.0 로 업그레이드 + 밀린 포스트들
ghost

Ghost 1.0.0 로 업그레이드 + 밀린 포스트들

1 귀찮아서 업그레이드를 미루고 있었는데, 거대 업데이트를 한참 전에 했길래 간만에 업그레이드했다. 간만에 블로그 만지작 거리는게 재밌었는데 이내 업그레이드는 커다란 귀찮음을 가져다주었다. 결론적으로 서버의 리눅스가 Ubuntu 16.04가 아니면 자잘한 에러가 많다. 이번 버전부터 ghost-cli를 통해 v1이상에서 쉽게 업그레이드가 가능토록 cli를 지원한다. 역시 갓갓 cli다. 그리고 힘들게 Nginx등을 설정해줬었는데(처음

Command Line Interface
Linux

Command Line Interface

dotfiles and materials available at @junhocho[1] GUI보다 좋은 CUI, CUI. Command Line Interface를 쓰시면 어디서든 쉽게, 인터넷만 있고, Terminal이나 Putty가 있으면 개발을 할 수 있다. 이런 팀뷰어 없이도 말이다. CLI. 그래서 어떻게? ( Tmux + VIM ) 를 사용하자 CLI를 사용하는 이유. Portable (인터넷이 구리면 팀뷰어는 힘들지) Simple Automated (원하는 기능은 다

Linux

Pseudo Terminal (유사? 터미널)

본 포스트는 APUE chap.19 을 참고하여 작성함. Pseudo Terminal은 application 이 보기에는 터미널로 보이지만, 사실 진짜 터미널이 아닌 것이다. Pseudo Terminal의 구조, 예시, 사용법에 대해 설명하도록 함. Pseudo Terminal 개요 Pseudo terminal 을 사용하는 프로세스들의 전형적인 구조는 아래와 같다. 부모 프로세스가 pseudo terminal master를 open 하고 fork ->

데몬 프로세스 (daemon process)
Linux

데몬 프로세스 (daemon process)

본 포스트는 APUE chap.13 을 참고하여 작성함. 데몬은 오래사는 프로세스를 말하고, 보통은 시스템이 부팅될 때 같이 켜지고 종료될 때 같이 끝남. Controlling 터미널이 없어서 background에서 돈다라고 표현한다. 데몬의 구조, 작성법, 오류 로깅에 대해 설명하려고 함! 데몬의 특징 ps -efj 와 같은 명령어로 확인 controlling 터미널이 없는 프로세스 (데몬)을