본문 바로가기

전체보기

(1971)
개발 능력의 저능화를 이끄는 대한민국 언젠가 부터 Android 의 영향 덕분인지 일반 PC (노트북 포함) 의 Linux kernel 이 3.x 를 넘어섰습니다. 회사에서는 특정 컴파일러의 dependency 때문에 kernel 을 바꾸질 못하고 있는데 한참이나 후진 Centrino (Dothern) CPU 를 쓰는 노트북에서 요즘 가장 인기 좋은 Linux Mint 를 쓰게 된 것이 사실 좀 뭔가 아이러니 한 느낌이 듭니다. Linux kernel 역사에 2.3, 2.4 와 2.6 은 천지개벽 수준의 발전 이었는데 3.x 를 넘어서는 그 차이를 잘 모르게 된것 또한 시대의 흐름이 보이지 않게 된듯 한 착각이 들기도 합니다. 처음 대학에 입학하던 1996년을 되돌아 보면 그때 부터 이 좁은 대한민국이란 나라에서는 뭔가 항상 특정 조건대로 ..
기업의 블로그에 사원들의 노력이 필요한 이유와 그에 따른 딜레마. 얼마전 부터 회사에 사원들의 기업블로그 작성을 강요하는 듯한 메일이 돌기 시작 했다. 보통 이런 기업 블로그라 하는 것은 홍보를 담당하는 조직이 선도 하에 단순히 "홍보 목적"을 위해 존재 하기 마련이다. 그러다 보니 그 홍보 목적 이라는 글엔 진실과 거리가 먼 글들이 많이 존재 할 수 도 있으며, 이는 좋은 방면 보다는 나쁜 방향으로 많이 기울수도 있는 조건이 될 수 있다. 생각해 보라, 어느 회사가 내부의 진실의 창을 열고 속을 밖으로 다 보여 주겠는가? 단순한 뇌를 응용해서 이를 깊게 생각해 보려 해도 드는 생각은 몇가지 없지만 가장 큰 이유중 하나는 일단 '글을 쓸 필진이 회사에 없다' 이거나, '회사에 남는 잉여 사원을 활용해 보자' 라는 취지 일 수 있을 것이다. 그런데 후자는 분명 아주 큰 ..
Porcess ID 로 해당 윈도우의 HWND 를 얻고 BMP 로 저장. 윈도우 프로그래밍을 하다보면 가끔 다른 윈도우의 화면을 갈무리 해야 하는 경우가 생깁니다. (Capture 처럼) 이럴때 아래의 코드 중 HWND GetHandleFromPID(DWORD pid); 함수를 사용하면 간단히 해당 프로그램의 HWND 를 얻을 수 있습니다. #include #include "winproc.h" typedef struct _ProcessCallbackData { DWORD m_pid; HWND m_hwnd; } ProcessCallbackData; BOOL CALLBACK EnumProc(HWND hwnd, LPARAM lParam) { DWORD pid = 0; ProcessCallbackData *pcbd = (ProcessCallbackData *)lParam; if ( ..
FLTK 1.3.x 를 위한 smooth image scaler: fl_smimg FLTK 1.3.x 버젼을 쓰면서 부족한 부분이 있다면 바로 Fl_Image 의 copy() 함수를 통한 scale 기능이라 하겠습니다. 실제 내부에서 이 scale 엔진은 GraphicDriver의 resize 를 호출 하는데 이 부분은 실제 nearest resize 가 수행 되므로 뭔가 부드럽게 연산이 처리된 형태의 이미지를 얻을수가 없게 됩니다. 이를 해결하기 위해 만든 것이 fl_smimg 이며, 이 소슨는 FreeImage Library 3 의 resize 부분을 추출 해서 FLTK 에 맞게 변경 하였으며, 그 적용은 아래 처럼 됩니다. 이미지는 인터넷에 도는 것을 임의로 사용하였는 상태 입니다. (우주선 이미지는 Mass Effect 의 Normandy 호 입니다 ) 먼저 Fl_Window ..
MCU 를 위한 고정 소수점 간단 연산기 intfloat 이 소스는 100% free 이며 알아서 바꿔 쓰던지, 기능을 개선 하던지 마음대로 인 ALU 로 수행 되는 간단한 고정 소수점 처리기 입니다. 수행 할 수 있는 것은 고정소수점을 정수로 더하고, 빼고, 나누고, 곱하고 입니다. 정확히는 각도 계산을 위해 만들어진 것인지라 고정 소수점을 고정 소수점 자체로 나누는 기능은 없지만 어느정도 쓸모 있어 보입니다. 많은 버그를 내장하고 있을지 모르므로 가져다 쓰시는 분이 어느정도 검증 절차 밟아 쓰시는 것은 꼭 필수 입니다. 아래 파일의 압축을 풀면 intfloat.h 와 c 파일이 있으며, 왠만한 MCU 용 compiler 에서는 문제 없이 컴파일 됩니다.test.c 는 함수 확인용 이며, M-Sys 나 gcc(MinGW) 를 기본으로 시스템으로 쓰시는 분들에..
ALSA + mpg123 출력시 clicking noise 발생 대처 방안. 요즘 대부분의 Embedded Linux 환경이 좋아져서 개발 환경이 매우 용이해 졌습니다. 심지어 F*사 쪽은 Kernel 을 3.14 로 올리는 시대가 왔습니다만, 모든 환경이 그렇게 우아하게 좋을리가 없다는게 또 현실이 아닐까 합니다. 근래 하는 일 중에 ALSA 를 통해 mp3 를 재생 하는 일을 수행 하는 중, 다음과 같은 문제가 발생 하였습니다.사용된 mpg123 은 최신 버젼 (1.17.0 )mpg123 를 ALSA 와 붙이기 위해 mpg123 재생 예제를 응용하여 pthread로 play 부분을 처리.실제 Windows 환경에서는 문제가 발생 하지 않지만 Embedded Linux 상에서 mpg123 으로 decode 된 PCM buffer 를 재생시 최초 와 재생 종료시 clicking ..
Within Temptation 의 2014년 신보 Hydra 2013년 말 부터 전 세계의 수많은 Within Temptation 팬 들의 설래임을 받아 오던 2014년 새 앨범 Hydra 가 iTunes 에서 release 된지 어느덧 시간이 꽤 되어 갑니다. ( 한국 iTunes 계정은 음악 category 가 없으므로 구매나 청취가 불가능 합니다 ) 특히 이번 앨범은 The Unforgiving 에 이어 Q music session 까지 이어지는 밴드 전체적인 분위기 변화가 가속 되는 시점이었던 지라 대체 Hydra 는 어떻게 세상에 나올지 일부 EP album 에 의해 궁금증을 죽여 가며 참아 왔다 하겠습니다. Black Symphony 까지 보여주셨던 Sharon (Sharon del adel) 누님의 웅장하던 파워는 The Undforgiving 에서 ..
나는 너네 카드가 없단 말이다, 궁민 호구 카드야 ... 신나는 일이 발생 했습니다. 참으로 기가차고 코가 막히고 아찔한 경험이라 하겠습니다. 왜냐? 저는 궁민 호구 카드가 없기 때문 입니다. 6년 전 쯤 월급 통장 쓴다고 한번 은행 계좌 연적은 있습니다만 ... 그게 그대로 호구 카드에서도 동의도 없이 사용되었겠군요. 아님 이미 월급통장 만들때 제가 동의 한 걸로 간주 되어 있겠거나 그렇겠지요. 그런데 누군가는 그냥 DB 에 있는걸 그냥 dump 해 간겁니다. 이름이나, 전화번호, 직장전화(지금은 없는곳 이겠지만 ...), 주민번호 까지. 저는 어디 싸이트 한번 들어 가려면 개고생 해야 하는데, 안에서 털어 가는 것들은 그냥 cp 나 export 한번 하면 되는거니 참 편한 세상인가요 ? 우리나라의 SI 의 고질적인 문제점: 하청에 하청, 그리고 노가다 대신..