2014/03/08 - 이미지 파일 크기 축소에 대한 단상 이전 글에서 언급했듯, PNG 압축의 대마왕 tinyPNG는 pngquant의 웹 프론트엔드이다.재미있는 건 tinyPNG는 유료 플러그인도 판매되고 있지만, 정작 pngquant는 오픈소스라는 점. - 소스는 github에서 공개되고 있으며, 라이센스는 BSD-like License. - 소스는 C99로 작성되어 있기 때문에 Visual Studio 2013 이상으로만 컴파일 가능함. OTL - 소스는 실행파일/라이브러리 모두 제공함 - 실행파일도 별도로 공개하고 있으며, 윈도우 용은 여기서 받을 수 있음. - Floyd-Steinberg 디더링 여부를 선택할 수 있는데, 안 쓰는 쪽이 좀 더 자연스럽다는 느낌. - 압축 후에 OptiPNG 등..
지난 3월 5일 모질라에서는 mozjpeg라는 프로젝트를 발표했다. 이것은 기존 JPEG의 규격을 그대로 유지하면서 JPEG 압축률을 대폭 향상시키는 프로젝트다. 즉, 구글 WebP의 커다란 걸림돌이 나타난 것이다. 이번에 발표된 1.0을 직접 컴파일해보니 VS에서는 약간의 오류 수정이 필요했다. 제대로 동작하게 하려면 두 개의 파일을 수정해야 한다. 1. CMakeLists.txt 488행은 다음과 같다. SOURCES libjpeg-turbo.nsi) 이것을 아래와 같이 수정해야 한다. SOURCES libmozjpeg.nsi) 2. jcparam.c 741행부터는 다음과 같다. GLOBAL(void) jpeg_simple_progression (j_compress_ptr cinfo) { if (ci..
인터넷 환경이 아무리 빨라지더라도 그 바닥(?) 중요 테마 중 하나는 전송량을 줄이는 것이다.그리고, 전송량 중에서 이미지가 차지하는 비중은 굉장히 높다. 다양한 이미지 포맷이 있지만, 인터넷(특히 웹)에서는 JPEG과 PNG이 압도적으로 많이 쓰인다. JPEG가 1992년, PNG이 1996년에 발표됐으니 20년정도 지났고, 나올만한 기술은 다 나왔다고 봐야 된다. 즉, 이제 두 포맷의 압축률은 거의 한계점이라 보는 것이 정설이다. 많은 사람들이 그런 줄 알았다… 하지만, 현실은 언제나 외계인이 지배하는 법… 1. PNG 압축의 여력이 더 큰 쪽은 PNG이다.기본적으로 PNG은 무손실 압축이기 때문에 전처리를 거의 하지 않는다. 필터링 단계가 있기는 하지만, 큰 영향을 주는 정도는 아니다. PNG 파일..
태-영화체가 업데이트되었다는 메일을 받고 부랴부랴 업데이트를 했다.업데이트 내역들을 메일에서 본 뒤 확인을 해보니, 상당한 업데이트가 있었다. - 오자 수정 띤을 입력하면 띡이 나오는 문제가 수정되었다. - 원문자/괄호문자 등 추가 이 쪽 업데이트가 특히 만족스러웠다. 이전 버전의 태-영화체는 원래 극장 자막용으로 만들어져서 그런지 영문자/숫자/기본기호/한글밖에 없었다. 그래서, PC에서 쓰기엔 뭔가 부족한 당신이었다. 그런데, 아직 미진한 부분이 있다. - 버전 관리 미흡 지난 버전, 이번 버전 모두 001.005로 표시된다. 확인해보니 001.007로 가려던 게 실수로 잘못 표시된 것이며, 다음 버전부터는 제대로 관리될 예정이라 한다. - 유럽어 지원 미흡 많은 글꼴이 추가되었지만, umlaut 등의..
종종 메모장2 mod에서 설정이 잘 저장되지 않는다는 제보를 해주신다.그리고, 그 때마다 "관리자 계정으로 실행하세요"라는 답을 했다. 이건 올바른 답은 결코 아니고, 미봉책으로 그런 답을 한 것이다. 1. 문제의 진짜 원인 이건 근본적으로 메모장2 자체의 문제이다. 메모장2에서 설정파일(Notepad2.ini)을 찾는 순서는 다음과 같다. 프로그램 설치 폴더 → Application Data → PATH 그리고, Notepad2.ini를 찾지 못하면 프로그램 설치 폴더에 Notepad2.ini를 생성하려고 한다. 따라서, 설정파일을 저장하려면 UAC를 안 쓰거나 관리자 권한으로 실행해야 되는 것이다.워낙 많은 사용자들이 UAC를 끄고 살기 때문에 대체로 잘 되는 건 사실이지만… 물론, 다른 방법으로는 ..
2014/01/24 - 탈탈 털린 내 KB카드 정보. KB의 수준은 버러지다. KB에 갔다 개빡친 이후 두 주 간의 유예기간(?)을 두고 농협을 갔다.물론, 온 국민이 털렸으니 내 정보라고 안 털릴 순 없고… 대략 이 정도 털렸다. 중요한 털린 정보에 밑줄을 좌악 그으며 카드는 재발급받으면 되고 어쩌고… 드립을 날리는데, 참으로 한심했다. 근데, 가만 들어주니 가관인 게 얘들은 주민등록번호, 휴대폰번호, 주소 등이 털린 게 정말 별게 아니라고 생각한다.거기서 얘기를 들으며 느낀 점들… - 입출금 창구는 번호표도 있고, 나름 관리되는데, 해지 상담 창구는 그런 거 없음. 여기만 그런 걸지도. - 재발급 받으면 쉽게 바뀌는 카드번호 등과 달리 민증번호 등 진짜 정보의 중요성은 전혀 모름 - 창구 직원은 자기..
이전 포스트에서 예고(?)했듯이, Notepad2-mod의 새 버전이 즉각 튀어나왔다. 이번 버전에서는 Scintilla가 3.3.9로 업데이트 되었다. 3.3.8에는 외부 lexer 연결시 다운되는 치명적 버그가 있었는데, 사실 수정된 내용은 몇 줄 되지 않는다. 물론 그 몇 줄이 굉장히 심각한 내용이란 걸 모르는 바는 전혀 아니고, 그냥 그렇다는 얘기다. r902는 아래 링크에서 다운받을 수 있다. 그리고, 언제나 그렇듯이, 한/영 x86/x64 버전이 모두 들어있다.
메모장2-mod의 2014년 첫번째 공개.무엇보다 2014년을 맞이하여 아이콘이 리뉴얼되었다. 이번에도 메모장2-mod의 아이콘을 디자인해주신 c6248님께 감사드립니다. 꾸벅. 이번에 수정된 내용은 아래와 같다. - 아이콘 교체- Scintilla를 3.3.8로 업데이트- CSS 키워드에 text-overflow 추가 r901은 아래 링크에서 다운받을 수 있다.그리고, 언제나 그렇듯이, 한/영 x86/x64 버전이 모두 들어있다.
요즘 울 가족은 [셜록]에 푹 빠졌다.필요시 소시오패스를 자처하면서까지 친구를 위하는 천재 캐릭을 어떻게 사랑하지 않을 수 있나! 다들 좋아하지만, 특히 린이가 더욱 푹 빠진 것 같다.덕질계의 존잘로 키우기 위해선 기초공사가 중요하다. 그래서, 질렀다. 시간과공간사에서 나온 이 전집을 번역한 정태원 씨는 추리소설 전문 번역가라고 하니, 더욱 기대가 크다. 덧. 신민식 독서노트 :: 셜록홈즈 전집, 뭘로 사지?에 이 전집을 어떤 순서로 읽어야 하는지가 설명되어있다.현재 판본 기준으로는 1-2-5-3-6-4-7-8 순으로 읽어야 한다(고 한다).
온 국민이 KB에서 개인 정보를 털렸는데, 나라고 빠질 소냐. 나도 털렸다. 은행에서 목록을 뽑아보니 대략 이 정도 털렸다. 하지만, 우리의 KB에선 이런 얘긴 슬쩍 숨기고, 오로지 한 가지만 얘기한다. 저희 은행은 고객님의 가장 중요한 정보인 카드번호와 비밀번호는 안 털렸어용! 지점장실에 쳐들어가 2시간 동안 얘기를 해보니 여러가지를 알게 됐다. - KB는 수시로 개인정보 보호 등에 대한 교육을 한다. 하지만, 개인정보 보호를 위한 시스템은 사실상 없다. 즉, KB에서의 개인정보 보호란 수사적 표현 이상의 의미를 갖고 있지 않다. - 털린 이유는 KCB에서 개인 정보를 인터넷 도박 업체에 팔았기 때문이지만, 개인 정보는 개인이 지켜야 한다. - KCB가 팔아먹지 않도록 관리감독할 책임은 KB에 있지만,..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 2013/01/12 - 키보드 보안 프로그램을 찾아서 지우는 프로그램 공개 근 1년만의 업데이트... 뱅킹이 끝나고나면 설치되는 활동적 X 기반의 쓰레기들을 하나씩 제거해주는 프로그램을 살짝 업데이트했다. 바로 위의 링크에서 다운받을 수 있으며, 이번 버전 역시 실행한 뒤 모두 제거 버튼만 클릭하면 된다. 이번 버전에서 살짝 바뀐 부분은 아래와 같다. - 제거 대상 프로그램 추가 (IssacW**, KeySh*** Ce** 등) - 철자오류 수정 (Elemenator → Eliminator) - 컴파일러를 Visual Studio 2012 Update4로 교체 - 아이콘 변경 본 프로그램이 제거하는 프로그램은 아래와 같다. [키보드 보안 프로그램]..
마누라님과 결혼한 지도 12년이 지났다.갑자가 한 바퀴 돌았으니 시간이 제법 흐른 것 같다. 이번 결혼기념일에는 포항을 가기로 했다. 일단 가는 길에 경주에 있는 감은사지를 잠시 들렀다.감은사는 문무대왕이 죽어서도 나라를 지키기 위해 만들었다는데… 절도 제대로 못 지켰다는 게 함정… 감은사지엔 쌍탑만이 남아있다. 짱이는 서탑 쪽에서… 린이는 동탑 쪽에서 한 컷. 마지막으로 중문터에서 한 컷. 그리고는 문무대왕릉으로 향했다.한겨울에도 주차비를 받는 건 좀 많이 생뚱맞았지만, 지역경제 발전을 위해 2,000원을 내고 주차. 수중왕릉은 그러려니하고, 갈매기들이랑 잠시 놀았다. 숙소에 여장을 풀고서 단골집이자 영원한 포항의 맛집 경주회식당으로 갔다. 일단, 기본반찬의 질부터 장난이 아니다.그냥 다 맛있고, 신선..
세상에 별별 맛집이 다 있고, 별별 기술이 다 있겠지만...음식 맛에서 가장 중요한 건 재료 자체의 신선도일 것이다.그리고, 당연한 얘기지만, 산지의 재료가 가장 신선하다… 각설하고...아버지 생신 기념으로 통영에 모여 굴코스요리를 맛봤다. 일단 굴구이가 나온다. 하지만, 굽는데 시간이 걸리고, 그 틈에 회무침 등장.당연히 신선하고 맛있다. 그리고, 이어서 나온 굴전.근데, 재료는 신선한데, 기름기가 좀 많다. 왠지 살짝 아깝다는 느낌적 느낌... 이 정도 타이밍에서 굴구이솥(?) 뚜껑을 여니 딱 먹을만 하다.그렇다. 굴은 생굴 아니면 구이가 진리인 것이다.맛이 딱이다. 더 이상 설명이 필요 없다. 한 타이밍 늦게 나온 굴튀김 탕수육.뭔가 굴전과 비슷한 느낌이었다. 맛이 1% 부족하고 느끼하다. 뭔가 또..
이 블로그에서 공개되는 메모장2 mod는 XhmikosR이 공개하는 Notepad2-mod를 기반으로 한다. 하지만, (당연하게도) 한글 IME 처리부분 수정을 포함하여 다양한 수정이 적용되어있다. 지금까지 적용한 수정 내용들을 정리해봤다. 1. 한글 입력 IME가 정상적으로 동작하도록 수정(관련 포스트)말이 필요없는 한글화 버전의 가장 기본이며 가장 중요한 기능임.단, 현재 배포되는 버전의 코드는 위 포스트와는 조금 다름. 2. 젠코딩 입력 기능 추가(관련 포스트)굉장히 간단하게 HTML/XML 코드를 구성해주는 젠코딩 기능을 추가했음. 3. 포트란 스키마 추가(관련 포스트)아주 가끔 쓸 일이 있던 포트란 스키마를 추가했음.현재는 나도 아예 안 쓴다는 함정이… 4. 날짜/시간 삽입시 순서를 날짜-시간으..
2013/12/01 - Notepad2-mod r887 (7254c1a) 한글화 버전 공개 지난 포스팅에서 언급한 문제를 해결한 기념으로 포스팅. 해결이라고 거창하게는 썼지만, 사실 해결까지는 아니고, 64비트 버전은 WDK로 컴파일한 것을 공개하기로 했다. 따라서, 이번 버전부터는 윈도우 8.1을 완벽하게 지원한다. 수정된 내용은 아래와 같다. - x86 버전은 VS2012 update4로, x64 버전은 WDK 7.1로 컴파일 - Scintilla를 3.3.7 [c818dc]로 업데이트 r891은 아래 링크에서 다운받을 수 있다. 그리고, 언제나 그렇듯이, 한/영 x86/x64 버전이 모두 들어있다.
2013/12/01 - Notepad2-mod r887 (7254c1a) 한글화 버전 공개 이전 포스트에서 얘기했듯이, Notepad2-mod엔 묘한 버그가 하나 있다.32비트 어플리케이션에서 64비트 Notepad2-mod로 드래그앤드롭을 하면 오류가 발생한다는 것이다. 이 문제는 사실 몇 가지 조건이 만족되는 경우에만 발생한다. 1. Windows 8.1에서만 발생함 (Win7은 발생하지 않고, Win8은 확인하지 못함)2. 32비트 Shell에서만 발생함 (Total Commander, XYplorer 등)3. Visual Studio, ICL 로 컴파일할 때만 발생함 (WDK에선 발생하지 않음) 무엇이 문제인지 분석하기 위해 드래그앤드롭을 처리하는 부분의 소스를 찾아봤다. case WM_DROPF..
2013/09/23 - Notepad2-mod r876 (89d33e9) 한글화 버전 공개 특별한 개선 사항은 없지만, Windows 8.1을 정식 지원한다고 하니 덩달아 공개… 그러나… 일단, 수정된 내용은 아래와 같다. - 컴파일러를 Visual Studio 2012 Update4로 변경- manifest에 Windows 8.1 ID 포함 그렇다. 공식적으로 Windows 8.1을 지원한다(고 한다). 그런데, 사실은 문제가 살짝 있다.64비트 Windows 8.1에서 32비트 어플을 통해 64비트 메모장2 mod에 드래그 앤 드롭을 하면 오류가 발생한다.상세한 내용은 별도로 포스팅 예정인데, WM_DROPFILES를 제대로 처리하지 못하는 것 같다. 이 문제는 이 버전만의 문제는 전혀 아니며, 이전..
Static duration means that the object or variable is allocated when the program starts and is deallocated when the program ends.- MSDN iTrans 버그 리포트 중에 아주 이상한 내용을 하나 들었다.같은 자막을 두 번 변환하면 가 추가된다는 것… 제보해주신 분들과 연락을 해보니 static으로 선언한 어떤 부분의 데이터가 깨지는 게 원인이었다. bool CSami2Srt::convISO88591(LPCTSTR lp, TCHAR &tc, int &len){ static LPCTSTR lpEntityNames[] = { _T("quot"), _T("apos"), _T("amp"), _T("lt"), _T..
[터미네이터 2: 심판의 날 감독판]을 봤다. 이걸 극장에서 본 게 91년 9월쯤이었으니, 22년만에 다시 극장에서 본 것이다. 무엇보다 이번 개봉의 가장 큰 미덕은 삭제씬을 극장에서 볼 수 있다는 것이다. 각 에디션 별로 수십번 씩은 봤지만, 역시 이 추가씬들을 극장에서 볼 수 있다는 건 경이로운 경험이었다. 그런데… 마냥 만족할 수만은 없는 문제들이 꽤 있었다. 1. 93년의 Special Edition과 동일 사골네이터라고도 불릴 정도로 많이 울궈먹은 작품이지만, 사실 이 영화는 3가지 에디션밖에 없다. - 극장판 - 특별판 (Special Edition) - 최종판 (Ultimate Edition 또는 Skynet Edition) 이 세 가지 에디션이 메뉴 배치를 바꾸거나, 메뉴를 숨기는 형태로 ..
아이들의 스케줄 등을 적어놓은 메모판이 너무 작아 은근 불편했다. 애들과 얘기하거나 문제를 풀 때 편하게 쓸 수 있는 보드 같은 게 필요하단 생각도 들었다.연습장 들고 와서 쓰는 것도 좋지만, 왠지 뽀대도 좀 나면 좋겠단 생각도 들었고… 그래서 좀 큰 크기의 자석 보드를 하나 사기로 했다. 오피스디포 같은 오프라인 매장도 가보고, 옥션도 뒤지면서 고민을 했다.화이트는 너무 흔하고, 블랙은 펜의 종류가 제한될 것 같아서 배제…다양한 고민을 거친 끝에 옥션 파란들칠판에서 칼라 보드를 구매하기로 했다. 우선, 선택한 크기는 130x110.이거 저거 다 붙여도 낙서가 충분히 가능한 크기다. 다음은 색깔…그린/핑크/블루/옐로우가 있는데, 그린을 골랐다.프레임과 깔맞춤을 하려면 그린/핑크 외엔 선택의 여지가 없다는..
어플이 실행되는 OS의 버전을 인식하게 하려면 GetVersionEx() 함수를 쓰면 되었다. 그런데, Windows 8.1에서는 여러가지 이유로 이 함수를 deprecate 시켰다. 대신 VersionHelpers라는 API를 통해 훨씬 간단하게 OS 버전을 확인하도록 만들었다. 그럼에도 불구하고, 굳이 GetVersionEx()로 버전을 정확히 인식하려면 매니페스트에 몇 줄을 추가하면 된다. 위와 같은 파일을 하나 만들어 적절한 위치에 저장한 뒤에 이를 추가 매니페스트로 지정하면 끝임. 덧. 원래 iTrans의 문제를 해결하려고 시작했지만, 정작 OS 정보는 레지스트리에서 직접 읽었다는 게 함정
린이가 학교 스포츠 클럽에서 내준 숙제로 지점토로 운동선수를 만들게 되었다.그런데, 우리 핏줄(?)엔 예술 같은 건 없다. 덕분에 린이는 패닉… 일단 머리를 맛대고 기본적인 원칙부터 정하기로 했다. - 뼈대는 나무젓가락을 사용한다- 뼈대 연결은 글루건을 사용한다- 뼈대 보강은 빨강 노끈을 사용한다 그리하여 챙긴 준비물… 모델은 자세가 좋으면서도 뼈대를 단순화할 수 있는 사진을 찾아봤다.종목은 야구로 정했고, 결국 넥센의 박모 선수로 낙점되었다. 그리고, 우리가 한 일은 각 파트별 길이를 재는 것.예술적 감각 따윈 없는 우리가 믿을 것은 숫자 뿐이다.모델은 짱이… ㅋ 이제는 계산된 결과에 맞춰 부지런히 잘라 붙이는 일만 남았다.이런 식으로… 결국 필요한 부분을 다 잘라낸 뒤에 대략의 배치를 해 보니 이렇게..
iTrans에서 함께 배포하는 mp4box의 버전은 0.4.6-DEV이다. 이 프로그램은 변환 최종단계에서 비디오와 오디오/자막을 합치는(muxing), 가장 중요한 툴이다. 그런데, 현재 정식 배포되는 버전은 0.5.0이고, 0.5.1이 하루에도 몇번씩 업데이트되고 있다. 그럼에도 불구하고, 구버전을 함께 배포하는 이유는 간단하다. 최신버전들에선 구버전에 없던 오류가 계속 발생하기 때문이다. 그간 만난 굵직한 오류들은 대략 다음과 같다. - avi+AC3 오디오 파일에서 비디오를 추출하지 못함 - 5.1ch AAC 오디오를 muxing하면 결과 파일을 아무런 프로그램으로도 읽을 수 없음 너무나 흔하게 발생하는 상황인데, 이를 처리하지 못한다. 어쩌면 프로그램이 안정화가 덜된 게 아니라, 핵심 개발자가 ..
Visual Studio 2010/2012에선 도구상자가 분실(?)되는 사건이 종종 발생한다. 이 문제를 해결하려면 다음 순서를 따르면 된다. 1. 도구 상자 다시 설정 - 도구 상자에서 오른쪽 클릭을 한 뒤 도구 상자 다시 설정(E)를 클릭한다. 2. Visual Studio 종료 3. 탐색기에서 다음 위치로 이동해 .TBD 파일들을 삭제 [사용자 폴더]\AppData\Local\Microsoft\VisualStudio\[VS버전] 4. 레지스트리 편집기에서 다음 키들의 내용을 삭제 HKCU\Software\Microsoft\VisualStudio\[VS버전]\ToolboxControlsInstaller_AssemblyFoldersExCacheHKCU\Software\Microsoft\VisualStu..
Visual C++에서 개발하다 보면 리소스 ID가 종종 꼬이는 문제가 생긴다.리소스 ID를 수작업으로 정리하며 이런 툴을 하나 만들어볼까 했는데… 아니나 다를까 이미 있었다. Riverblade에서는 Code Project에는 VC 5.0/6.0/.Net 용을 2001년에 공개했고…이후, 이를 ResOrg라는 이름으로 업그레이드해서 상용 버전으로 공개했다. 상용 버전은 플러그인 형태로 VS2012에도 적용할 수 있고, 공개 버전 역시 VS2012에서 사용 가능하다.
2013/08/06 - Notepad2-mod r875 (c85ca22) 한글화 버전 공개 (비공개로 전환) 지난 릴리즈를 비공개처리한 뒤 다시 1달여만에 새 버전을 공개함. 수정된 내용은 아래와 같다. - Scintilla를 3.3.5로 업데이트(물론, 지난 포스트에서 언급된 내용 포함)- 한글 입력 부분 코드 개선- 컴파일러를 Visual Studio 2012 Update 3으로 교체- Shift+마우스휠에 가로 스크롤 기능 지정- Ctrl+Shift+마우스휠에 페이지 스크롤 기능 지정 r876는 아래 링크에서 다운받을 수 있다.그리고, 언제나 그렇듯이, 한/영 x86/x64 버전이 모두 들어있다.
앞 포스팅에서도 얘기했듯이, VCi가 iTrans로 이름을 바꿨다.그리고, 수많은 변화가 있었다. 그 중 굵직한 변화들을 정리하면 아래와 같다. 1. 일반 사항 - 개발 환경을 Visual Studio 2012로 변경 - FFMPeg을 1.2로 업데이트, MediaInfo를 0.7.54로 업데이트 ※ FFMpeg 확인시 .\fonts\fonts.conf 및 빌드 날짜 확인 - MkvExtract, m2ts, norm.exe 제거 - 지원 형식에 real media, ts, tp, m2ts 추가 - 레지스트리 저장 위치 변경 (HKCU\Software\BLUEnLIVE\iTrans) - 싱크를 추가로 보정하는 DC 파일 생성 기능 제거 - 블로그용 비디오 생성 기능 제거 - 인식하는 윈도우 버전에 8.1 ..
난 여전히 VC++ 6.0을 사용해왔다. 컴파일된 실행파일을 어떤 윈도우(물론 2K 이상)에서도 실행할 수 있다는 점이 가장 큰 이유다. 물론, 정적 라이브러리에서 MFC 사용으로 설정하면 되지만, 실행파일의 크기가 너무 커진다. 그런데, 이제 보니 컴파일러 설정 등을 조금만 손대면 VS2005 이상에서도 유사한 결과를 만들 수 있었다. 우선, targetver.h을 수정한다. XP에서 동작하는 프로그램을 원하면 이 정도면 된다. #pragma once #include #define _WIN32_WINNT _WIN32_WINNT_WINXP #include 그리고, 프로젝트 속성에서 다음 부분을 손대면 된다. - 일반 → MFC 사용: 표준 Windows 라이브러리 사용 - C/C++ → 코드 생성 → 런..