윈도 7은 XP에 비해 UI 면에서 많은 변화가 있었다.그 중에 가장 내 눈에 띈 건 태스크바에서 프로그레스를 표시할 수 있다는 점이었다.이 기능 덕분에 백그라운드로 어플을 실행할 때도 진행상황을 알 수 있는 등 많은 장점이 있다. 이걸 사용하려면 Visual Studio 2008 이상에서 Windows 7 SDK를 설치하면 된다. (Code Project 참고) 그런데… 이 기능을 Visual Studio 6.0에서 사용할 수 있는지 궁금해졌다.그래서… 구글링을 해보니, 듕귁에 거주하시는 三毛라는 귀인께서 솔루션을 공개해 놓으셨다. (관련 포스트) 적용 방법은 이렇다. 1. 그 포스트 하단에 링크를 걸어둔 Win7Taskbar.rar을 다운받음2. 압축을 푼 뒤 ITaskBar.h 를 프로젝트 폴더로 ..
2012/03/04 - [일상생활들/아이폰4] - 아이폰용 동영상 변환기 v6.9 업데이트 블로그를 리뉴얼하며 VCi를 7.x대로 업데이트했다. VCi의 기능 및 특징은 아래와 같다. 1. 대상 비디오 파일을 목록에 드롭한 뒤 변환 버튼을 클릭하면 알아서 변환함 지원 포맷:AVI,MKV,MP4(mov),MOV(qt),OGM,FLV,MPG(mpeg/dat/vob),WMV(asf),SWF,WebM 2. raw 비디오가 mpeg4/H.264인 경우는 정확한 압축 옵션 확인후, 재생 가능하면 추출하고, 재생 불가능한 옵션이거나, 그 이외의 포맷인 경우는 H.264로 재인코딩함 재생 가능 여부는 iOS 5.x에서 수정된 규칙에 따라 확인함 또한, 사용자 선택시 무조건 H.264로 재인코딩할 수 있음 3. 비디오 ..
VCi를 업데이트하면서 중요한 문제점을 두 개 발견했다.VCi 포스팅에 포함시키기엔 애매해서 별도로 포스팅. 1. Vista/W7/W8에서 drag-n-drop 정상적으로 사용하기 윈도우를 사용하면서 UAC를 끄고 관리자 모드로만 사용했다.그런데, 이번에 PC를 포맷하면서 UAC를 켜고 써보니 관리자 권한에서는 drag-n-drop이 동작하지 않았다. 처음 발견된 새로운 버그라고 혼자 망상(?)을 잠시 했지만, 찾아보니 다 끝난 얘기다.Vista 부터는 권한이 낮은 프로세스에서 높은 프로세스로 메시지가 전달되지 않는다.애초에 UAC를 끄면 이런 문제가 없겠지만, 그건 좀 활동적X 스타일 해결책이고… 제대로 된 해결책은 ChangeWindowMessageFilter()로 메시지를 필터에 등록하는 것. 창의..
2012/07/12 - Notepad2-mod r752 한글화 버전 대공개 지난 버전을 공개한지 한달 반이 지났다.그동안, Notepad2-mod의 기능은 거의 변화가 없었다. php 키워드가 업데이트 되었고, C#의 글로벌 클래스의 하일라이팅이 추가되었다는 정도…그리고, Scintilla 라이브러리가 3.2.1을 거쳐 3.2.2까지 업데이트되었다는 정도… 그런데, Notepad2-mod의 버전관리 환경이 크게 변했다.그동안은 Google Code를 통해 버전을 관리했는데, 이제 Github를 통해 버전을 관리한다.그러면서 버전이 r770으로 올라갔다. (Google Code에서의 마지막 버전은 r760) Github를 통해 배포되는 첫번째 Notepad2-mod인 r770을 공개한다.아래 링크에서 다운..
1983년 브로더번드 사는 애플-][용으로 로드런너(Lode Runnder)라는 게임을 출시한다. 이 게임은 출시되자 마자 엄청난 인기를 끌었는데, 대략 아래와 같은 특성을 갖고 있었다. - 퍼즐형 아케이드 게임으로 분류되며, 150 레벨로 구성- 독특한 AI를 탑재한 추격자를 피해 금을 모으고 탈출하는 게 목표- 사용자가 맵을 만들 수 있는 최초의 게임- 애플-][ 용으로 처음 출시된 이후 MSX, MS-DOS, 아타리, 매킨토시 등으로 포팅됨- 다양한 후속작과 아류작이 나옴 애플-][ 버전이 인기를 끌고 이후 MSX 버전이 출시되자 나도 이 게임을 즐길 수 있었다. 지금 보니, 이해가 잘 되지 않는 것은 MSX 버전은 원작과 약간 달랐다는 것이다. - 원작은 로드런너(1983)-챔피언쉽 로드런너(19..
이전글에서 계속 2. 그런다고 압축을 제대로 하지도 않음 아래 보이는 그림을 보자. 한/글에서 추출한, 압축된 BMP의 압축을 풀었다 다시 압축한 결과이다. 압축된 원본의 크기는 96KB이고, 압축을 풀자 1,148KB의 BMP가 나왔다.이를 JPEG로 변환(Q=95)하자 88KB가 되었다.즉, JPEG로 변환하자 8% 정도 크기가 줄어든 것이다. 그런데, 웃긴 것은 1,148KB의 BMP를 zlib로 다시 압축하자 59KB가 되었다는 것이다.(level은 기본값인 Z_DEFAULT_COMPRESSION 적용) 대체 압축 라이브러리를 어떻게 적용한 것인지 모르겠다. 한/글의 이미지 처리는 커다란 개선의 여지가 있다.무엇보다 포함된 이미지가 BMP인 경우 PNG로 자동변환해주는 기능이 필요하다.옵션으로 (..
2012/08/11 - 한/글(한컴) 파일의 크기를 줄여주는 프로그램 HIS 공개 2010년 6월 한글과 컴퓨터는 한/글의 파일 포맷을 공개했다. 한글과컴퓨터는 한/글 문서의 바이너리 파일(.Hwp) 형식 공개 계획을 밝힌 바 있으며 이를 차질 없이 진행하였으며 Hwp의 XML 포맷인 HwpML의 국가표준(KS)화도 현재 진행되고 있습니다. 그런데, 막상 공개를 하고 나니 많은 프로그래머들이 포맷 공개에 대해 비판했다.공개된 포맷만으로는 아무런 프로그램도 만들 수 없다는 내용이 주였다. 수년의 세월을 걸쳐 개발한 것을 기껏 공개했더니 반응이 그런 식이라니… 1. 압축 파일의 이유 모를 왜곡 그런데, 이전 포스팅을 작성하기 위해 HwpML(이하 HML)의 자료를 분석하다보니 이상한 점이 발견되었다.압축을 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 한글과컴퓨터에서 개발한 아래아 한글(이하 한/글로 표기)은 대한민국의 대표적 워드프로세서다. 그런데, 한/글로 문서를 작성하다보면 가끔 어이 없이 큰 파일을 만들 때가 있다.(이미지 두 장과 표 하나로 된 파일이 5MB 씩이나 되면 황당하다)원인은 간단하다. 이미지가 무려 무압축 BMP로 저장되기 때문이다. 사용자들이 이 문제를 계속 제기했더니 한/글 2010에서야 드디어 그림 줄이기 기능이 추가되었다. 그런데, 이 기능에는 치명적인 문제가 있다.크기가 심하게 줄어들어 품질이 손상되거나 크기가 안 줄어 별 효과가 없을 때도 있다는 것이다.게다가, 이미지의 크기가 줄어들어도 결국 무압축 BMP로 저장된다. 그래서 만들었다. 한/글 파일의 크기를 제대..
2012/03/06 Notepad2-mod r721 한글화 버전 공개 지난 버전을 공개한 뒤 무려 3개월 반 만의 업데이트다. 그동안 많은 변화가 있었다. 기반이 되는 Scintilla는 3.2.0으로 업데이트됐고, VS는 2012로 이름이 바뀌었다. 또, 지원되는 키워드도 조금씩 보강되었다. 그런데, 이런 비교적 소소한 내용과 별개로 엄청난 기능이 추가되었다. 다름 아닌 Zen-coding이 추가된 것이다. 젠코딩이 추가된 Notepad2-mod는 아래 링크에서 다운받을 수 있다. 이전 버전과 동일하게 한글/영문 버전이 모두 들어있으며 x86/x64 버전이 함께 들어있다. 2012.6.20: r747 업데이트 - 젠코딩 기능 추가- Scintilla 3.2.0 업데이트- 컴파일러 명을 VS2011에서 ..
무려 3개월이나 지난 얘기지만, PC를 뒤지다가 발견한 재미있는 구글의 만우절 장난 캡쳐… 지난 만우절에 구글은 8비트 NES 환경에서 돌아가는(?) 구글 맵스를 공개했다. 이 때 캡쳐해놓았던 화면이 있었는데, 이제야 포스팅… 우선은 울 처가 근처… 다음은 유럽과 아시아를 연결하는 터키의 보스포러스 및 다르다넬스 해협… 그 다음은 그 유명한 영국의 템즈 강 주변… 여기는 [골든아이] 오프닝에서 007이 번지점프를 했던 러시아스위스 베르차스카(Verzasca) 댐… 마지막으로 독일, 프랑스, 스위스, 이탈리아 전체… 좌우지간, 지도는 구글이 킹왕짱인 거다…
0. 발아점 (재활용) 이전 포스트 임의의 숫자가 제곱수인지 빠르게 판별하는 법에 이어지는 포스트임. 1. 문제에 대한 나의 접근(실패) \(a^2+b^2+4a^2b^2 = c^2\) 을 아래와 같이 변형한 뒤 \(a^2+b^2+2ab+4a^2b^2-2ab = c^2\) 아래와 같이 정리했다. \((a+b)^2+2ab(2ab-1) = c^2\) 여기서 모든 제곱수(\(c^2\))에 대해 이러한 관계를 만족시키는 a, b를 찾는 거다. 하지만, a, b는 Brute-Force하게 루프를 돌려야 되는데, 효율성이 낮다. (c가 100일 때 돌렸던 루프를 c가 1000일 때도 또 돌려야 함) 따라서 실패. 2. 치욱님 솔루션 a, b의 최대값은 \(\sqrt {20} \cdot 10^9\)이다. 여기서, a를..
0. 발아점 @chiw00k 님께서 트윗에 올린 질문을 해결하는 과정에서… @zaeku 님의 솔루션을 공부하면서 의문점이 생겼다. 제곱수인지를 식별하는데 갑자기 아래의 식이 튀어나온 것이다. h = n & 0xF 1. 기본형 임의의 숫자가 제곱수인지 판별하는 건 사실 그리 어렵지 않다. 대략 아래와 같은 함수만 하나 만들면 된다. bool IsSquare(unsigned int num) { unsigned int temp = (unsigned int)(sqrt((double)num)+0.5); return temp*temp == num; } 하지만, 아무리 컴퓨팅 파워가 좋아져도 sqrt()는 느린 함수다. 위의 함수를 돌리기 전에 제곱수가 아닌 경우를 배제하는 방법을 찾아봤다. 2. 10진수 두 수를 ..
이전 글에서 계속됨 5. 완성 그리고, 남은 이야기들 a. 주요 마일스톤 - 2차 도전 시작: 2012. 4. 5 - 변환 완료: 2012. 6. 16 - 디버깅 완료 후 원작자 통보: 2012. 6. 19 - Notepad2-mod 적용 완료: 2012. 6. 20 b. 누락된 약어 젠코딩에서 사용할 수 있는 약어는 구글 코드에서 확인할 수 있다. 그런데, css 쪽을 보다보니 구현되지 않은 코드가 하나 눈에 띄었다. exp가 css의 snippet(약어) 테이블에 포함되지 않은 것이다. 그래서 내 마음대로 추가시켰다. c. js의 구조는 은근히 파스칼을 연상시킴 예전에 파스칼을 한창 사용할 때는 함수 내에 다시 함수를 구현하는 구조를 무척 좋아했다. 무엇보다도 함수의 적용범위(scope)가 명확하다는..
이전 글에서 계속됨 2. 개발 언어 및 라이브러리 결정 js의 기본 자료형은 굉장히 많은 기능을 자연스럽게 제공한다. var a=[]; 선언 만으로도 동적배열 및 스택으로 활용할 수 있다. 문자열은 유니코드 형식을 기본으로 지원한다. 게다가, 무적의 정규식이 문자열 처리 코드를 간략하게 해준다. Notepad2는 C 및 C++로 작성되었으며, 코어 쪽은 C로 개발되어있다. 따라서, C++보단 C를 사용하는 게 Notepad2에선 조금 더 자연스럽다. 그런데, C엔 동적배열 같은 건 없고, 메모리는 malloc()/free()를 일일이 해줘야 된다. 사실상 문자열이라는 자료형은 없으며, wchar_t의 1차원 배열로 문자열을 흉내내야 한다. 정규식? 그게 뭥미. 그렇다고 C++에서 작업한다고 뭔가 크게 변..
0. Zen-coding이란… 젠코딩을 처음 접한 건 올해 3월, 생활코딩을 운영하시는 egoing님의 트윗을 통해서였다. 젠코딩은 2009년부터 러시아의 Sergey Chikuyonok씨가 개발한 입력 방식이다. 출처: http://opentutorials.org/course/128/1395 젠코딩은 대략 아래와 같은 도구이다. - HTML 코딩의 생산성을 향상시켜주는 도구 - 현재 eclipse, vim, dreamweaver, editplus 등에서 플러그인으로 구현됨 - js/Python 스크립트로 개발되었음 - 굉장히 심플하면서도 명확한 기능 이걸 메모장2 mod에 적용하기로 결정했다. 1. 사용자 인터페이스 결정 가. 화면 UI 우선 결정할 것은 입력 UI의 구성이었다. 기존 입력 환경처럼 편..
페이스북에서 생활코딩을 운영하시는 egoing 님께서 두어달 전 Zen-coding을 소개하셨다. Zen-coding은 Sergey Chikuyonok가 2009년에 개발한 입력 방식이다. 간단한 입력만으로 html, css, xsl, xml 등의 전형적 코드를 쉽게 입력할 수 있게 해준다. 젠코딩은 구글 코드를 통해 오픈소스로 유지되기 때문에 누구나(?) 쉽게 적용할 수 있다. 그래서, notepad2-mod에 적용하기로 했다. 하지만, 사소한 문제가 하나 있으니 소스가 js 기반이라는 점이다. 따라서, 젠코딩을 notepad2-mod에 적용하려면 우선 C/C++로 변환해야 된다. OTL 구글 코드를 통해 젠코딩을 C++로 변환했다. 이 소스를 활용하면 누구나 C/C++ 환경에서 젠코딩을 이용할 수 있..
그동안 5년여동안 1000여개의 글을 올렸던 기존 블로그를 재부팅합니다. 글이 쌓이면서 사소한 문제들(?)이 있었는데, 한방에 해결하기 위해 리부팅을 선택했습니다. 기존 블로그에 대한 간단한 정리. - '07. 6. 28에 첫 글을 올린 뒤 '12. 3. 10까지 5년여동안 유지 - 총 1117개의 포스팅 - 플러그인 형식으로 BBCode, Syntax Highlighter, JWPlayer 등을 우겨넣음 - 만연체로 긴 글을 종종 쓰면서, 넓은 화면폭만 유지함 물론, 기존 블로그 데이터는 그대로 유지하며, 도메인은 재계약하지 않을 예정입니다.