XLA를 소개합니다.

최근 업무 관련해서 XLA를 알게 되었는데, 재밌는 프로젝트인데 반해 관련된 자료를 찾는게 쉽지 않길래 한번 소개를 해보면 좋을 것 같다는 생각이 들었습니다.

우선 XLA (Accelerated Linear Algebra)는 Tensorflow의 서브 프로젝트로 그래프 연산의 최적화 / 바이너리 사이즈의 최소화 등을 목적으로 하는 컴파일러입니다.

Continue reading XLA를 소개합니다.

slacker 기반 slackbot 만들기

재밌어보이길래 python으로 간단한 슬랙봇을 만들어볼까 하고 알아봤더니 slackbot이란 모듈을 사용하면 슬랙봇을 쉽게 만들 수 있을것 같아서 슬랙봇을 만들어봤다.

그런데 파이썬 프로세스는 멀쩡하게 살아있지만 하루 정도가 지나면 봇이 disconnected 상태로 바뀌는 문제가 지속적으로 발생하는 문제가 있었다. 관련해서 예제 코드들을 찾아봐도 별다른 부분이 없길래 며칠 동안 디버깅을 하면서 문제를 해결해봤다.

우선 인터넷에 떠도는 slacker 기반 echo 봇의 기본 골격은 아래와 같았는데…
Continue reading slacker 기반 slackbot 만들기

HP iLO 사용기

서버 업그레이드를 진행하면서 새로 산 서버에 iLO (Integrated Lights Out)라는 기능이 있길래 좀 사용을 해봤는데, 확실히 세상이 진보해가고 있는게 느껴졌다.
간단하게 얘기하자면 서버 상태 확인 및 KVM 기능이 network를 통해서 이뤄질 수 있는 기능이고, 추가적으로 설치 CD 등을 원격으로 마운트할 수 있는 기능까지 있어서 유용하게 사용할 수 있을 것 같다.
BIOS 세팅하듯이 부팅 중에 iLO 관련 설정을 변경하면 되고, 설정 툴에서 IP 정보 및 ID/Password 등을 설정할 수 있다. 설정이 끝난 후 웹브라우져를 통해 iLO로 할당되어 있는 IP로 접속/로그인 하면 아래와 같은 화면들을 볼 수 있다.
아래 이미지는 서버 내에 온도 센서 정보들이고…
ilo-temperature-status
Continue reading HP iLO 사용기

해킹이 의심되는 파일들 발견…

흠 그동안 관리를 잘 안했더니, 확실히 여러가지 문제들이 생긴 것 같다. 서버 이전 전에 왠만한 문제들은 해결하고 가는게 좋을 것 같아서 파일들을 좀 살펴봤는데, 변조된 파일로 보이는 파일들이 많이 보인다. 대강 아래와 같은 식의 요상한 데이터가 덮어씌워져 있는데…

문자열을 \\xHEX 형식으로 치환해놔서 그냥 보기에는 어떤 내용인지를 쉽게 알아볼 수가 없고, pattern matching 해서 찾아내기에도 드럽게 해놨다. -_- 나뿐 놈들…
도대체 어떤 코드를 넣어놨나 궁금해서 아래 코드를 이용해서 눈으로 볼 수 있는 형태로 치환해봤는데…
Continue reading 해킹이 의심되는 파일들 발견…

번역: 한국의 홈브류 인터넷

오랫만에 일찍 학교에 나온 김에 아침부터 서핑을 즐기다가, 제가 아침에 공개한 글과 관련된 좋은 내용의 글을 발견해서 살짜쿵 번역을 해봤습니다. ‘국내 CA 시스템 = 공인인증 시스템’ 이라고 이해하시면 되겠습니다. 약간의 의역이 있고, 오역도 있을 수 있습니다. -_-a
읽다보면 참 부끄러운 부분이 많아요.
원문: http://web.archive.org/web/20071225181340/http://webstandard.or.kr/en/2007/03/17/korean-home-brew-on-the-web/

Vladimir씨는 SEED에 관련된 기술적인 문제를 얘기하기 위해 한국의 인터넷 뱅킹을 이용해본 경험을 이야기 했습니다. 그가 한국 사이트에서 겪었던 문제들 덕분에 그 문제에 대해 기술적인 부분을 설명할 기회가 왔네요. (이 글을 읽기 전에 Vladimir씨가 쓴 “It’s gone to SEED”를 먼저 읽으시기 바랍니다.)
1997년에 SEED가 처음 나왔을 당시엔 암호화를 위해선 ActiveX나 NSPlugin(브라우져 전쟁 이후에 사라졌음)를 이용할 수 밖엔 없었습니다. 이 플러그인들은 국내 전용의 CA들로부터 개인 인증서를 발행하고, 관리하는 역할과 돈을 보낼 때 계좌번호 같은 “중요한 텍스트” 들에 “전자 서명을 더하는” 역할을 담당했습니다. INISafeWeb 또한 이런 플러그인들 중 하나입니다. (한국에는 금융/전자상거래 및 전자 정부 사용 등의 서비스를 위한 국내 전용 CA들이 8개 정도 있습니다. 이런 서비스를 이용하기 위해서는 같은 기능을 하는 ActiveX를 최소 3개 이상 설치해야만 합니다. 참 웃긴 일이죠.)
Continue reading 번역: 한국의 홈브류 인터넷

Cairo test…

서체 관련된 샘플 페이지를 만들면서 손에 익숙한 gd를 활용해왔는데, gd의 fontconfig 지원이 미약하다보니 아쉬운 점들이 눈에 보이기 시작했습니다.
가장 큰 예로 굴림체, 바탕체, 나눔고딕_코딩 글꼴 같은 고정폭(정확하게는 dual-width) 서체의 영문/한글 너비가 동일하게 보여지는 문제는 fontconfig의 global advance옵션을 통해 해결할 수 있지만, gd에서는 fontconfig의 옵션을 제대로 활용하지 않고 있기 때문에 이 문제를 해결할 수가 없었습니다.
그런 이유로 fontconfig를 제대로 활용하는 그래픽 API를 찾던 도중 Cairo가 생각났습니다. Cairo는 fdo에서 개발한 그래픽 API로 현재 모질라, Gnome 등에서 활발하게 사용되고 있는데, 의외로 X 없이도 설치가 가능하고, API도 아주 단순해서 제가 활용하려던 용도로 딱이더군요.
Continue reading Cairo test…

공개 서체: 네이버 나눔고딕_코딩

얼마전 네이버에서 고정폭 서체인 ‘나눔고딕_코딩’ 서체를 OFL(Open Font License)로 공개하였고, gd를 이용해서 뽑은 12pt 샘플은 다음과 같습니다.

나눔고딕_코딩 12pt 샘플

gd의 문제로 인하여 영문과 한글의 폭이 동일하게 출력되었는데, 맥이나 윈도우, 리눅스(약간의 설정 필요) 등에서는 영문과 한글의 폭이 2:1 이다보니 서체 이름에서와 동일하게 코딩용으로 사용하기에 딱이겠네요.
* http://dev.naver.com/projects/nanumfont
덧: 서체 이름에 사용된 언더바(‘_’) 때문에 맥에서 약간의 문제가 있었는데, 서체가 업데이트 되면서 이름이 ‘나눔고딕코딩’으로 바뀌었고, 맥에서도 문제 없이 사용할 수 있게 되었습니다.

공개 서체들 소개…

내 눈엔 순천향체가 젤 이뻐보인다. 참고로 프리뷰에서 ‘아햏햏, 똠방각하’가 제대로 보이질 않는다면 한글 2350자만을 지원하는 서체임.

패키지 서체이름 스타일 구분 프리뷰
나눔글꼴 나눔고딕 Regular 한글 11,172자
Bold 한글 11,172자
나눔명조 Regular 한글 11,172자
Bold 한글 11,172자
나눔고딕코딩 나눔고딕코딩 Regular 한글 11,172자
Bold 한글 11,172자
다음체 다음 Regular 한글 2,350자
SemiBold 한글 2,350자
렉시굴림 렉시굴림 Regular 한글 2,350자
서울 서체 서울 남산체 Light 한글 11,172자
Regular 한글 11,172자
Bold 한글 11,172자
ExtraBold 한글 11,172자
서울 한강체 Light 한글 11,172자
Regular 한글 11,172자
순천향체 순천향체 Regular 한글 2,350자
아리따체 아리따 Light 한글 11,172자
Regular 한글 11,172자
SemiBold 한글 11,172자
Bold 한글 11,172자
은글꼴 은돋움 Regular 한글 11,172자
Bold 한글 11,172자
은그래픽 Regular 한글 11,172자
Bold 한글 11,172자
은궁서 Regular 한글 11,172자
은바탕 Regular 한글 11,172자
Bold 한글 11,172자
은필기 Regular 한글 11,172자
Bold 한글 11,172자
한겨레결체 한겨레결체 Regular 한글 11,172자
ttf-alee 은진 Regular 한글 11,172자
은진낙서 Regular 한글 11,172자
구슬 Regular 한글 전용
반달 Regular 한글 11,172자
방울 Regular 한글 11,172자
네이버 사전체 네이버 사전체 Regular 한글 11,172자
연체체 연세 제목체 Regular 한글 2,350자
연세 소제목체 Regular 한글 2,350자
연세 로고체 Regular 영문, 숫자
조선일보 명조체 조선일보 명조체 Regular 한글 11,172자
문화부 글꼴 Regular 한글 2,350자
백묵 글꼴 Regular 한글 11,172자

위 결과는 cairo+freetype을 이용해서 렌더링한 결과입니다. 사용된 소스는 아래 URL에서 확인하실 수 있습니다.
* http://mytears.org/tmp/cairo/text.c

CG: dithering

팩스에서 처럼 이미지를 흑/백 으로만 표현할 수 있는 경우에도 어느 정도의 명암을 표현하기 위한 방법으로 아래와 같은 오리지널 이미지가 있을 때…

한 픽셀 값은 0~255 사이의 값을 가진다고 하고, 128 이상의 값은 하얀 색으로, 128 미만 값은 검은 색으로 표현하면 결과는 다음과 같다.

보다시피 디테일은 거의 사라져버리기 때문에 이런 것을 피하기 위해 디더링이란 기법을 사용하곤 한다. 수식으로 이를 표현해보자면 다음과 같고…

말로 설명하자면 랜덤 값을 더해준 뒤 128 을 기준으로 Thresholding 을 한다! 정도로 표현이 가능할 듯… 이론적으론 매우 간단하지만 효과는 확실하다. -16~16 의 랜덤 값을 이용하여 dithering 한 결과는 다음과 같다.

-32~32 사이의 랜덤 값을 이용할 경우는…

확실히 좀 디테일이 조금 생겨나는 것을 확인할 수가 있다. 장비들이 좋아지면서 이런 식의 트릭들에 대한 연구는 사라져가는 것 같다. -_ㅠ
위 테스트에 사용한 코드: