그간 써오던 케이스를 새로운 케이스로 바꾸기로 했다.선택한 케이스는 독일 Nanoxia 사의 Deep Silence 2. 기존 케이스는 저렴한 가격이라 산 케이스인데, 무엇보다 얇은 철판으로 인해 진동을 잡기가 너무 어려웠다. 살짝 뜯어보니 먼지가 좀 많이(ㅡ.ㅡ;) 쌓여있다… 조심해서 분해해서 부품들을 다 꺼냈다.메인보드+CPU, 그래픽 어댑터, 하드 디스크 4개 그리고, ODD. 새로 산 케이스의 포장지를 제거했다.케이스는 일단 깔끔(단순?)하다. 혹자는 냉장고라고… 전면 상단에 USB 3.0 포트 2개, 2.0 1개가 있는데, 이 케이스를 선택한 이유 중 하나다. 케이스 내부는 외부와 동일하게 채색되어있다.케이스 뿐만 아니라 나사 하나하나도 마찬가지. 나사, 케이블 등등은 별도의 상자에 포장되어있다..
현대 암호화 기법 중엔 XOR을 이용하는 방법도 널리 쓰인다. 이 문제는 주어진 데이터가 XOR로 암호화되어있고, 키의 길이가 소문자 3자리일 때 원문을 구하는 문제이다.키가 3개이므로 aaa~zzz 까지의 17576(263) 가지의 키를 일일이 대입해봐도 되지만, 3부분으로 나누어 78(26×3)번만 돌려도 된다. 문제에는 좀 모호하게 적혀있긴 하지만, 원문은 일반적인 영단어로 구성되어 있다고 한다.즉, 키의 후보값을 넣고 돌렸을 때 결과가 일반적인 영단어에 포함되지 않는 기호가 나타나면 키가 아니라고 볼 수 있는 것이다. 이러한 점을 고려해서 대략 아래와 같은 코드를 작성했다. #include #include using namespace std; inline bool isDecrypedChar(int..
찾아보니 벌써 12편까지 나온 KOEI의 걸작 게임 …처음 이 게임을 접한 것은 (당연히 불법 복제인) MSX용 1편이었다. 그런데, 이런 화면이 동일하게 나온 건 아니었다.당시 MSX는 국가별 완벽한 호환성이 보장되었지만, 글꼴은 각국어 별로 달랐고, 한국판 MSX에는 일본어 글꼴 대신 한글 글꼴이 들어있었다.대략 아래와 같은 한글 환경을 지원하기 위한 것이었다. 그러니, (그러지 않아도 일본어를 읽을 줄도 모르지만) 전혀 화면에 나오는 내용을 이해할 수가 없었다. 그러던 중에 MS-DOS용 가 출시되었다! 일단, 첫 화면의 그래픽은 꽤 달랐다.그냥 志國三 글꼴만 똑같고, 화면 자체가 달라보였다. 이거 컴퓨터라도 한 대 사달라고 징징거려야 하나… 그런데, 다음 화면으로 가 봤다…우선, MSX 화면은 이..
갑자기 브라우저를 띄우면 bing.com이 뜨는 문제가 생기기 시작했다. 악성코드가 원인인가도 생각했지만, 찾아보니 그건 아니고, 이미 알려진 윈도우8의 문제였다. 정확한 원인은 아직 얘기되는 게 없지만, 해결책은 나와있다. 레지스트리를 간단하게 수정하면 된다. - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet에서 - EnableActiveProbing(DWORD)의 값을 0으로 설정 간단하게, 아래의 내용을 레지스트리로 저장해서 실행해도 된다. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\N..
라즈베리 파이 최적의 미디어 솔루션 OpenELEC이 5.0으로 업데이트되었다. OpenELEC은 XBMC 기반의 솔루션인데, 이 XBMC는 13(Gotham)에서 14대로 올라가며 이름을 KODI로 바꿨다. 그리고, KODI의 정식버전이 공개되면서 이를 적용한 OpenELEC도 5.0으로 업데이트된 것이다. 1. 기존 설정의 사소한 변화 기존 버전에서 크게 변한 것은 없지만, 뭔가 사소하게 변했다. - id/password는 그대로임 (root/openelec) - 자막 글꼴 저장 위치가 /storage/.kodi/media/Fonts로 바뀜 - sources.xml, passwords,xml의 저장 위치는 /storage/.kodi/userdata로 바뀜 2. 스킨 변경 기본 스킨인 Confluenc..
Visual Studio 계열은 C++ 표준인 std::string 보다는 CString을 더 많이 사용한다. 그런데, VC6의 CString::Replace()는 뭔가 문제가 있었던 것 같다. VC6에서 Unicode 프로젝트를 돌리며 여러번 확인했었는데, Replace()는 문자열 치환을 한 번만 수행했다. 즉, CString cs = _T("Hello World !"); cs.Replace(_T(" "), _T(" dirty ")); MessageBox(cs); 를 실행하면 Hello dirty World ! 가 출력되었다. 도움말을 찾아보지도 않고 그러려니하고 써왔었는데, 우연한 기회에 VS2013에서 테스트해보니 정상적으로 동작했다. 속으로 '아… MS가 이런 변화를 별도로 공지하지 않았나…' ..
아이폰6로 바꾼 뒤에 갑자기 키보드 입력시 심각한 수준의 딜레이가 발생하는 문제가 발생했다.약간 버벅이는 수준이 아니라 아예 한번 누를 때마다 10-20초 멈추고 폰이 전체적으로 먹통이 되기도 하는 심각한 상태였다. 구글이나 트위터에서 찾아봐도 유사한 증상은 찾을 수 없었다. 그런데, 애플 코리아와 전화상담을 하면서 단서를 들을 수 있었다. 1. 키보드 단축키를 아이클라우드를 통해 백업하는 부분에 iOS7에도 버그가 있었음 2. 이 버그는 한글 10키 등에서 시스템을 느리게 하는 문제가 있었음 3. 아이클라우드로 단축키를 백업하지 못하게 하는 꼼수로 피해갈 수 있었음 4. iOS8은 이 선택을 하는 옵션 자체가 제거되어 원래 문제가 있었던 경우 피해갈 방법이 없음 애플 코리아 측도 이 문제를 알고 있지만..
2013/07/05 - 가장 빠른 iDevice용 동영상 변환기 v9.1a 업데이트 iDevice용 동영상 변환기를 10.0으로 업데이트했다. 9.x대의 마지막 버전인 9.1a 이후 두달 반만의 업데이트이다. (2014/11/16에 10.7a로 업데이트) 이번 업데이트에는 단순한 기능 업데이트 외에도, 내부적으로 아주 많은 변화가 있었다. 사용하는 프리웨어의 개수를 4개로 줄였으며, 생성하는 임시파일의 개수도 최소화했다. 지원되는 미디어 형식도 늘렸고, 자막을 영상에 직접 굽는 기능도 추가했다. 이름도 아예 새로 지었다. ※ 상세한 내용은 별도 포스팅 참조 이전과 마찬가지로 변환기는 아래 링크에서 다운받을 수 있며, 여전히 별도의 설치 프로그램따위는 없다. 관심 있는 분들의 수많은 지적과 질타 부탁드립니..
까먹지 않으려고 포스팅 함. ffmpeg은 그야말로 만능 오디오/비디오 트랜스 코더다. 오디오 변환 시 항상 ffmpeg를 사용하는데, 심지어 직접 변환을 못 하는 경우에도 커다란 도움을 준다. 예컨데, 비디오에 들어있는 2번째 오디오를 AAC로 변환[각주:1]하려면 다음과 같이 하면 된다. ffmpeg -i test.mkv -map 0:2 -vn -acodec pcm_s32le -f wav - | neroAacEnc -lc -if - -ignorelength -of out.aac 또, 2번째 오디오가 32비트/5.1CH이고 스테레오로 변환한 뒤 AAC로 변환하려면 이렇게 하면 된다. ffmpeg -i test.mkv -map 0:2 -vn -acodec pcm_s32le -f wav - | ffmpeg..
정규수(Normal number)라는 개념이 있다.그리고, 극단적인 정규수로 챔퍼나운 상수(Champernowne's constant)가 있다. 이 문제는 챔퍼나운 상수의 1, 10, 100, 1000, 10000, 100000, 1000000 자리 숫자의 곱을 구하는 문제다.근데, 정규수와 챔퍼나운 상수의 수학적 의미와 별개로 이 문제는 숫자만 나열하면 되는 문제라 의외로 쉽다. 처음부터 일일이 다 늘어놓는 방법도 있지만, 그건 좀 심하고, 조금만 생각을 해보면 계산을 많이 줄일 수 있다. 1. 1~9자리는 그대로 1~9임2. 10~99의 90개는 2자리임3. 100~999의 900개는 3자리임, 이후도 같은 규칙임 이런 규칙들을 염두에 두면 대략 아래와 같은 코드가 나온다. #include #incl..
언뜻 보기엔 평범한 문제로 생각하기 쉽다.그냥 long double에다 대입한 뒤에 결과를 문자열 형식으로 출력해서 문자열을 비교하면 될 것 같은 생각착각이 든다. 그런데, 이 바닥 문제 중에 그런 만만한 건 없다. 이 문제의 요지는 아무리 긴 숫자도 일일이 나누어 저장하여, 순환 여부를 정확히 비교할 수 있는 코드를 만드는 것이다.순환 여부를 확인하려면 숫자를 나누면서 각 자리의 몫과 그 때의 나머지를 모두 저장하고 이를 모두 비교해야 한다. 아래의 divide() 함수가 이 기능을 수행하는 함수다.quotient[]에는 각 자리의 몫을, remain[]에는 해당 자리의 나머지를 저장한다. #include #include #include using namespace std; // a / b int di..
문제는 간단하다. 100!을 계산해서 각 자리수의 합을 구하는 것.이게 대체 몇 자리나 되는지를 간단히 알아보기 위해 계산기를 돌려봤다. 9.3326....E+157이니까 158자리 숫자다.당연한 얘기지만, long long int 같은 건 아이고 의미 없다… 앞으로도 계속 써먹기 위해 CBigInt 같은 클래스를 하나 만들어볼까 하다가 그냥 간단히 만드는 것으로 방향 전환… 팩토리얼은 승수와 피승수가 모두 큰 정수일 필요가 없기 때문에 최대한 간단히 만들어봤다. #include #include #include // 각 자리에 0~9999를 저장하는 것으로... // 즉 10000진수 개념을 적용 const unsigned nDigit = 10000; unsigned *assign(int data, in..
뭔 이런 문제가 프로젝트 오일러에 나오나 모르겠다…1부터 1000까지를 영어로 읽은 것의 알파벳 수를 세라니… ㅋㅋㅋ 곰곰 생각해보면 짚어야 할 포인트가 몇 개 있다. 1. 단어를 그대로 쓸 필요는 없다. 단지 알파벳 개수만 세면 된다. 2. 1~20은 그냥 대입하는 거다. 3. 30, 40, 50 ~ 90은 13~19에서 teen을 ty로 바꾼 것이니 2를 빼면 된다. 단, forty와 fourteen은 이 규칙에서 예외 4. 100이 넘으면 100자리 뒤에 and가 붙는다. 5. 필요한 함수들을 별도로 짜면 더 복잡해지고, 하나를 재귀적으로 짜는 게 더 깔끔하다. 대략 이 정도로 짜면 괜찮은 거 아닐까 생각된다… #include int getWordCount(int num) { // 1~20의 글자수..
요즘 프로젝트 오일러에 필이 꽂혀 하나씩 풀어보고 있다.역시 흥미를 끄는 재미있는 문제들이 많다. 13번 문제는 50자리 숫자 100개를 더하는 문제다.이건 unsigned long long int 같은 데 때려박아봤자 답이 없고, 별도의 자료형을 만들거나 문자열 자체에서 연산을 해야 된다. 그런데, 갑자기 옛 생각(?)이 나서 BCD로 코딩해보고 싶어졌다.요즘은 거의 쓰이지 않는 것 같은데, MSX 시절에는 연산 속도를 끌어올리기 위해 BIOS 내에서도 사용됐던 인코딩이다.16진수 값을 그대로 10진수로 적용해서 비트의 낭비가 있다는 게 단점… #include #include #include // 50자리 숫자 100개. ㄷㄷㄷ const static char * nums[] = { "371072875..
동생에게 라즈베리 파이를 사주기로 하면서, 내 파이도 새 버전을 지르기로 했다.얼마 전(2014년 7월)에 B+ 모델이 출시됐는데, 이걸 케이스를 포함해서 두 조를 샀다. 이전 버전과 마찬가지로 이번에도 역시 크기는 압도적이다. 정말 작다! 그리고, OpenELEC 최신 버전인 4.2.1을 클린설치 했다. OpenELEC은 6개월 전에 설치했을 때와 비교하면 미묘한 변화들이 있었다. 1. 자막 폰트 저장 위치의 변경 이전 버전에서의 사용자 자막 저장 위치는 /storage/.xbmc/userdata/media/Fonts 였다.이것이 /storage/.xbmc/media/Fonts 로 바뀌었다. 2. 하지만, 재생목록/비밀번호 저장 위치는 그대로임 sources.xml, passwords,xml의 저장 위..
6. IEEE 부동소수점에서 유효숫자 추출 이 문제에 대해선 아예 설명을 추가해달라고 했던데, 설명해줘도 못 알아먹는다는 데 한 표. 그리고, 이 문제는 사실 검증이 좀 어렵다. Visual Studio에서는 IEEE 16비트 부동 소수점은 아예 구현이 되어있지 않기 때문이다. IEEE에서는 부동소수점을
4. 연산자 끼워맞추기 연산자 7개를 일일이 끼워맞춰보는 문제다.루프 7개를 중첩시켜서 돌려서 풀어도 되고, 트리를 구성해서 DFS 등으로 푸는 방법도 있을 것 같다. 그런데, 조금만 생각해보면 루프를 복잡하게 만들 필요가 없다.연산자가 +/- 둘 밖에 없으니 그냥 각 연산자를 비트 단위로 놓고 단일 루프를 돌려도 된다. #include #include int main(int argc, char* argv[]) { printf("-= plus or minus =-\n"); int nums[] = { 1, 6, 7, 6, 1, 4, 5 }; int count = 0; for (int i = 0; i < 0x80; i++) { int sum = 0; int digit = 1; for (int j = 0; j..
3. 삼각수의 약수의 개수 문제 중에 처음 호기심을 자극한 문제가 이것이다. 이 문제는 언뜻 보면 기초적인 문제 같지만, 동작 성능을 고려하면 상당히 고난이도 문제다. 물론, 단순무식하게 아래와 같이 만들어도 동작은 한다… #include #include int countOfDivisors(int num) { if (num = 2; i--) { if (num % i == 0) ret++; } return ret; } int main(int argc, char* argv[]) { printf("-= count of divisors of triangular numbe..
어떤 정신 나간 녀석이 네이버 지식인에 코딩 질문을 올렸다. 문제 수준이 좀 애매했다 싶더니 역시 모 회사 입사 테스트 문제라고 한다. 이제 시간도 좀 지났으니 데드라인도 지났을 것이라 판단해서, 그간 작성해본 풀이를 공개함… 1. 파스칼의 삼각형의 합 사실, 파스칼의 삼각형의 합은 간단한 일반식이 나와있다.
페북에 재미있는 질문이 올라왔다.아래와 같이 16개의 데이터를 정렬한 뒤 지그재그 형태로 출력하려면 어떻게 해야 되는가가 골자였다. 사실 이 문제는 멀티미디어 쪽 종사자라면 굉장히 자주 접하는 문제다.정석적인 풀이는 지그재그 테이블을 생성하고 그 테이블에 따라 값을 출력하는 것이다. 4행부터 시작되는 MakeZigzagTable() 함수가 그 테이블을 생성해주는 함수이다. #include #include int *MakeZigzagTable(int nWidth) { int *table = new int[nWidth*nWidth]; bool directionIsUp = true; int x = 0, y = 0; int val = 0; while (true) { table[y*nWidth + x] = val..
난 일찌기 007 덕후였고, 내 관심은 영화를 너머 소설과 게임으로 뻗어가고싶었갔다.그러던 어느날 동네 컴퓨터 가게에서 복사할 게임을 뒤지는데,007 게임이 눈에 띄었다. 얼씨구나하고 복사를 해왔고, 마침 그 달의 모 컴퓨터 잡지에선 이 게임 공략법이 올라오기도 했다.액션보다는 어드벤처에 초점이 맞춰진 게임이었고, 화면의 아이템을 선택해서 명령을 지정하는 방식으로 진행되었다. 도난당한 F-19 스텔스기를 찾기 위해 본드가 투입되고, 결국 고무밴드[…]를 사용해 F-19를 폭파시키는 줄거리였다. 그런데, 나중에 알고 보니 이 게임이 원래는 007 게임이 아니었다.본래는 Operation Stealth라는, John Glames가 주인공인 게임이었는데, 미국에서 출시할 때 007로 창씨개명해서 출시한 것이다..
Doo Be Doo 스킨을 반년 정도 사용했다.큰 불만 없이 사용해왔는데, 알고 보니 댓글 기능에 문제가 있었다. 디버깅을 하려다 포기하고 스킨 자체를 바꾸기로 했다.선택한 스킨은 반응형 스킨의 대세 FastBoot 1.6.1. 데스크탑에서는 대략 아래와 같은 모습을 보이고… 모바일에서는 대략 아래와 같은 모습을 보여준다… 그런데, 이 스킨은 구글 크롬에서는 각주가 밀려 나오고, Syntax Highlighter에선 뭔가 좀 어색한 등의 사소한 버그가 있다. 이런 문제들을 종합적으로 해결하려면 style.css 하단에 아래와 같은 내용을 추가하면 된다. .mathquill-rendered-math sup { font-size: 0.6em!important;} div.syntaxhighlighter { o..
iOS8의 큰 변화 중 하나는 건강 정보를 통합 관리하는 헬스킷을 제공하는 것이다.즉, 다양한 앱을 통해 별도로 관리할 수 있던 건강 정보를 아이폰 자체에서 관리하는 것이다.평소 체중, 혈압 정보 등을 몇몇 앱을 통해 관리하던 나에겐 너무나 반가운 소식이었다. (당연히) 지원 HW는 없기 때문에, 기존 앱들을 통해 관리하던 데이터를 수작업으로 하나씩 입력했다. 그런데, 아직 사소한 오류들이 눈에 띈다. 우선, 시간을 지정할 때 입력 컨트롤의 값이 제대로 반영되지 않는 경우가 있다.아래와 같이 제대로 시간이 맞지 않게 되면 결국 해당 항목을 지우고 다시 입력해야 된다… ㄷㄷㄷ 그리고, 모든 데이터 보기를 통해 전체 데이터를 보면 날짜/시간 표시가 뭔가 수습이 안 된다.날짜가 너무 길 때는 알아서 정리하는데..
iTrans나 Any to MP3 등은 내부적으로 배치파일을 만들어 돌린 결과를 리다이렉트해서 화면에 출력하도록 만들었다.배치파일은 오로지 ANSI 포맷으로만 만들 수 있었기때문에 8.3 이름을 추출해서 배치파일을 생성한다. 그런데, 알고 보니 그 제약은 XP까지만 존재했고, 비스타 이후는 UTF-8 포맷의 배치파일도 인식하도록 수정되었다.무려 8년이나 지난 얘기를 이제야 알았다니… 그래서 두 프로그램 모두 이 내용을 반영해서 수정 중이다.이제 윈도우 비스타 이상에서는 어떠한 파일명의 미디어 파일라도 정상적으로 처리가 가능한 거시다!!
어렸을 때, (NTSC 방식의) VTR이라는 신기한 기계가 홈비디오 시장을 장악했었다. 이 기계를 이용하면 영화를 볼 수 있는 건 물론이고, 두 대를 연결하면 복사도 할 수 있었다. 고딩때인가 이소룡 영화에 푹 빠졌고, 급기야는 대여점에서 테이프를 사서 닳도록 봤다.그러다가 결국은 [용쟁호투] 등에서 액션 시퀀스만 공테이프에 복사해서 이걸 또 마르고 닳도록 봤다. 어느덧 20여년이 훌쩍 지났고, 세상은 DVD를 넘어 BluRay의 시대가 됐다.더불어 간편하게 잘라서 붙일 수 있는 세상은 지나가버렸다. 이 험한 세상에서 나는 동영상 편집을 할 일이 생기면 프리웨어로 다 처리한다.비디오는 AviSynth로 잘라붙이고 효과를 추가한 뒤에 MeGUI로 인코딩한다. 오디오는 delaycut으로 길이를 조절하거나 ..
앞의 포스트에서도 언급했듯이, Scintilla 3.5.0에서는 드디어 한글 입력기 부분이 패치되었다. 그리고, 코드를 확인해보니, 내가 예전에 쓴 코드를 상당부분 참고했다는 걸 확인할 수 있었다.또한, 내 대화명이 명시된 것도 함께… 그런데, 이 패치에는 사실 심각한 문제가 있다.이 패치는 오직 메모장2-mod에서만 완벽하게 동작한다. 메모장2가 Scintilla의 기능을 모두 사용한 것도 아니고, undo 메커니즘이 좀 복잡해서 맞춤형 패치를 만들 수밖에 없었다.예컨데, Scintilla에는 사각형 선택을 한 뒤에 글을 입력하면 동시에 입력되는 멋진 기능이 있다.하지만, 메모장2에서 사각형 선택을 한 뒤에 글을 입력하면 마지막 칸에만 입력된다. 더 심각한 것은 Scintilla.dll의 레퍼런스 어플..
Scintilla가 3.5.0으로 업데이트 된 것을 반영한 버전을 전격 공개함. 공식적인 수정은 Scintilla의 업데이트 하나다.그런데, 이 업데이트에 엄청난 것이 들어있다. 다름아닌, 기존에 이 블로그에서만 공개하던 한글 입력 코드가 거의 그대로 반영되었다는 것이다. 덕분에 이제 이 블로그에서 배포하는 버전이 아니라도 한글은 정상적으로 입력이 가능하다.또한, 이 버전 역시 공식 배포 버전과 같은 입력기를 사용한다. 그런데, 사실 이 버전의 Scintilla는 엄청난 문제를 갖고 있다.오로지 메모장2에서만 적용이 가능하도록 패치가 되어있다는 점이다. Scintilla 홈페이지에서 SciTE.exe를 다운받아 실행해보면 한글 입력이 제대로 안 된다. 메모장2의 undo-redo 구조가 좀 복잡해서 이 ..
Scintilla가 3.4.4로 업데이트된 것 등을 반영한 버전을 공개함. 수정된 내용은 아래와 같다. - Scintilla가 3.4.4로 업데이트- Edit.c에서 리소스가 새는 버그 수정- Powershell, Inno setup 키워드 추가- 컴파일러를 Visual Studio 2013 Update 3으로 변경 - 기타 소소한 코드 수정 이 내용들을 포함한 수정 버전은 아래 링크에서 다운받을 수 있다.언제나 그렇듯이 한/영 x86/x64 버전이 모두 들어있다.
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.