지금까지 사용해오던 Square 스킨을 무려 3년만에 교체했다. 스킨 자체엔 아무 문제가 없었지만, 커져가는 해상도 환경에서 뭔가 좀 갑갑해보이는 면이 있기 때문이었다. 이왕 변경하는 김에 그간 수정하려고 생각만 한 부분들을 함께 고쳐보았다. 1. 스킨 앞에서 얘기했듯 스킨은 친효스킨을 선택했다. 2. 글꼴 기존 블로그에선 구글에서 제공하는 웹 글꼴들을 사용했는데, 다 걷어내고 리디 바탕체를 단독으로 사용하기로 했다. 이 글꼴은 리디북스로 유명한 리디주식회사에서 공개한 글꼴이다. Syntax Highlighter 등을 위해서는 D2Coding의 웹폰트를 적용했다. 이 과정에서 성능과 용량 최적화를 위해 이상진 님의 Webfont 사용과 최적화를 참고했다. 3. 수식 지금까지 수식을 표현하기 위해서 mat..
트위터 계정이 완전히 사라졌다. 상황 진행은 단순했다. 1. 웬 일본인(으로 추정되는 ㅅㄲ)가 종군 위안부 피해자는 미군도 동의한 성매매 였고, 일본은 배상했고... 같은 장문의 멘션 몇 개를 사진들과 함께 보냄 2. 꺼져, 쪽빠리야 멘션 보내고 신고함 3. 내가 인종차별로 계정 정지 당함 4. 트위터에 나를 신고한 놈이 비윤리적 멘션을 보낸 것이며, 그가 역사적 죄를 지은 것이라 장문의 답변 보냄 5. 인종차별 맞다고 다시 경고 메일 받음 6. 더러워서 더 이상 대응하지 않음 트위터는 대체 누가 인간을 차별하고, 인간성을 말살하는지 판단할 능력도 없는 쓰레기 회사이다. 깨끗한 척 사용자를 평가한다 오만방자를 떨어대지만, 조금만 들춰도 썩은내가 진동하는, 최악의 윤리 회사이며, 오히려 전쟁범죄국 일본의 ..
윈도우 10은 이전 버전의 윈도우들에 비해 사용자 편이성이 대폭 향상되었다. UI는 기존 스타일을 대체로 따라가지만, 들여다보면 편리하게 추가된 기능들이 한둘이 아니다. 그 중 하나는 시작 프로그램 관리. 검색창에서 시작 프로그램 또는 시작 앱을 검색해서 실행하면 시작 프로그램을 손쉽게 관리할 수 있다. 그리고, 이를 쉽게 실행할 수 있는 URI도 공개했다. ms-settings:startupapps 이를 프로그램에서 직접 사용하는 것도 대단히 쉽다. 대략 아래와 같은 한 줄이면 가능하다. ShellExecute(NULL, NULL, _T("ms-settings:startupapps"), NULL, NULL, SW_SHOWDEFAULT); 그런데, 이를 프로그램에서 직접 사용하려면 생각을 좀 해야 한다...
2013/10/29 - Windows 8.1에서 GetVersionEx() 함수가 버전을 제대로 인식하게 하려면… 전통적으로(?) Visual C++에서 윈도우의 버전 번호를 읽는 함수는 GetVersion() / GetVersionEx() 였다. 그런데, MS는 윈도우 8.1을 출시하면서 이 함수의 기능을 OS의 버전 대신 manifest 정보를 리턴하도록 변경했다. MS의 입장은 알겠지만, 많은 개발자들에게 이 수정은 커다란 혼란을 가져왔고, 여전히 이해가 어려운 게 사실이다. 이에 다양한 버전 번호를 읽는 방식들과 동작 결과 등을 간략하게 정리한다. 아래의 실행 환경은 모두 윈도우 10 Pro (x64)임을 미리 얘기해둔다. 1. GetVersionEx() OS의 버전을 읽는 방식은 앞에서 기술한 ..
티스토리의 좋은 기능 중 하나는 2차 도메인을 편하게 사용할 수 있다는 점이다. 그런데, 얼마 전부터 로그인을 해도 로그인 상태로 진입하지 못하는 애매한 문제가 발생했다. 처음엔 카카오(티스토리)의 잘못으로 생각했는데, 공지사항을 보니 브라우저들의 보안 정책 변경이 원인이었다. 즉, 구글 등의 입장은 티스토리 같은 방식으로는 2차 도메인 쓰지 말라는 것이다. 티스토리가 개선방안을 찾겠다고 하니, 일단 기다려야 되는 상황이고. 기다리는 동안 댓글 기능을 정상적으로 사용할 수 있는 우회로를 만들기로 했다. 개념은 간단하다. 2차 도메인으로 접속하면 기본 도메인 주소로 돌려주는 것. 블로그 스킨 편집 화면에서 아래와 같은 스크립트를 헤더 영역 최상단에 배치하면 이 우회로를 적용할 수 있다. 물론, 아래의 코드..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. iDevice용 동영상 변환기를 18.10으로 업데이트 했다. 18.x대 업데이트에서 가장 크게 변경된 내용은 32비트 용과 64비트 용을 별도로 분리한 것이다. 이를 통해 각 CPU의 성능을 최대한 발휘한 인코딩이 가능해졌다. 변환기는 아래 링크에서 다운받을 수 있으며, 여전히 별도의 설치 프로그램따위는 없다. 64비트 / password: teus.me 32비트 / password: teus.me 관심 있는 분들의 수많은 지적과 질타 부탁드립니다. 이 프로그램은 여러분 덕에 완성되어 갑니다. ▲ iTrans의 상세한 기능 및 특징 #일반 1. 대상 비디오 파일을 목록에 드롭한 뒤 변환 버튼을 클릭하면 알아서 변환함 지원 포맷: AVI, MKV,..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 이제 DSLR 이외의 수많은 장비들이 카메라의 자리를 대신하고 있다. 이러다보니, 여행을 가서 찍은 사진을 모아보면 의외로 정리가 쉽지 않다. 온라인 서비스/모바일 앱들은 정렬 순서를 Exif 촬영일자 순으로 하는 경우가 많지만, PC에선 파일명 순인 경우가 일반적이다. 그러다보니 촬영시간 순서는 알기 힘들고 카메라 기종순으로 파일을 보게 되는 경우가 대부분이다. FPO는 JPEG에 저장된 Exif 정보 중 촬영일자 정보를 활용해서 파일명을 수정하고, 최대한 작은 크기로 파일을 줄여주는 프로그램이다. mozjpeg를 활용해서 파일 자체의 크기를 조금이라도 더 줄이도록 했고, 이와 별개로 resample을 적용해서 사진의 크기도 축소시킬 수 있다. ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsic..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 메모장2 mod의 이번 배포판에서는 아주 중요한 변화가 있었다. 바로 한국어 버전과 영어 버전을 하나로 통합했다는 것이다. 깃헙의 상위 프로젝트에서는 중국어(번체, 간체) 및 일본어 UI까지 구현했지만, 이 배포판엔 한/영 버전만 포함되어 있다. (추가 또는 변형된 기능이 다수 있기 때문에 깃헙 배포판의 dll 파일을 사용할 수 없다는 점에 유의해야 함) 기본 언어는 한국어로 되어있으며, 언어를 변경하고 설정을 저장한 뒤 프로그램을 다시 실행하면 바뀐 UI가 동작한다. 기존 버전에서도 영문 버전은 회색 아이콘을 사용했는데 이 부분까지 동일하게 동작한다. 아래 링크에서 다운받을 수 있으며, 언제나 그렇듯 x86/x64/avx2 버전이 함께 들어있다...
최근 많은 사람들이 집이나 차량에 IoT 기능이 탑재된 장치들을 설치하고 있다. 필립스 휴(Hue) 라인업의 경우 단순한 밝기 뿐만 아니라 다양한 효과까지도 줄 수도 있고, 샤오미 만능 리모콘은 IR 신호들을 학습시켜 에어컨 등을 다양하게 제어할 수도 있다고 한다. 돈이 없어서이러한 장비들을 설치하기에 앞서, 일단 워밍업 하는 기분으로 IoT 전원 스위치를 달아보기로 했다. 선택한 스위치는 Somgoms 사의 2로 스위치. 알리 익스프레스에서 약 2만원 이하에 구매할 수 있었다. 알리 답지 않게(?) 주문한지 8일밖에 안 됐는데 도착했다. 포장을 벗기니 찬란한 박스가 눈에 들어온다... 상자 속에는 대략 이렇게 생긴 전원 스위치가 들어있다. 그리고, 대망의 뒷부분. 아래 사진을 보면 알 수 있듯이, 이 ..
난 잭 스나이더의 영화 스타일을 그렇게 선호하는 편이 아니다. 액션 시퀀스 자체는 압도적이지만 오히려 과해서 피로도가 높고, 큰 그림은 잘 만들지만 디테일로 들어가면 실소가 나오는 경우가 종종 있기 때문이다. 그런데, 개인 사정으로 하차한 이후 기용된 [어벤저스]의 조스 웨던이 보여준 [저스티스 리그]의 결과물은 실망스럽기 짝이 없는 수준이었다. 이런 상황에서 많은 팬들이 스나이더 컷의 제작을 요구했고, 드디어 곧 론칭되는 HBO max를 통해 2021년에 개봉될 것이라는 공식 발표가 있었다. 좀 다른 얘기지만... 잭 스나이더의 하차는 촬영 분량이 엉망이라 워너가 해고했다는 루머도 있었지만, 아마도 워너의 언플이라 보는 게 맞는 것 같다. 정황으로 봐서도 하차가 맞으며, 이후 잭 스나이더 본인도 하차라..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. PC 뱅킹의 주적은 PC 뱅킹 프로그램이다. PC 뱅킹을 하고 나면 컴퓨터가 미친 듯이 느려지기 때문이다. 키보드 보안 프로그램을 필두로 컴퓨터를 느려지게 만드는 악의 무리들이 너무나 많다. 전통의 명가(?) nProte**부터 컴퓨터 발목잡기의 거목 안* 온라인 시큐**, 그 외에도 수많은 잡 구라들… KISA에서 I사 보안모듈 프로그램에 문제가 있다고 발표할 정도로 완성도가 엉망인 경우도 있다. 보안 취약점을 갖고있는 보안 프로그램이라니… 무슨 열림교회 닫힘도 아니고… 더군다나 이런 프로그램들은 몰래 설치가 되는 것도 아니고 아예 (강제로) 동의를 받아 설치된다. 마치 건물 철거 강제 집행하면서 동의서 서명당하는 기분이다 그래서 간단히 만들었다..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. SRT 자막 관리 도우미 SRTier를 3.90으로 업데이트했다. 자막 변환 외에도 SRT 교정, 텍스트 추출에서도 폴더 단위로 처리할 수 있도록 변경했고, 챕터 파일도 조정하며, 후원 계좌를 표시하도록 수정했다. 이 프로그램의 주요 기능은 아래와 같다. - SRT 파일 교정: SRT 파일을 읽은 뒤 오류를 수정한 뒤 다시 기록하거나 시간을 조정함 - 자막 변환: SAMI/SSA/ASS 자막을 SRT로 변환, SRT 자막을 SAMI로 변환 - 텍스트 추출: SRT 자막에서 텍스트만 추출 - 텍스트 합치기: 기존의 SRT 자막의 시간 코드에 맞춰 텍스트 파일의 내용을 합침 - 챕터 XML 수정: XML 포맷의 챕터 파일 역시 자막과 동일한 기준으로 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 이번 배포판에서 추가된 가장 중요한 기능은 지정어 강조(Mark Phrase) 기능이 추가됐다는 점이다. 기존의 선택 영역 강조(Mark Occurences)에 덧붙여 추가한 이 기능은 순정 Notepad2-mod에는 없는 기능이다. 강조 여부는 보기-선택어 강조-지정구도 동시에 강조에서 선택할 수 있으며, 문구는 설정-강조할 지정구 설정에서 설정할 수 있다. 이 외에도 괄호짝 강조 기능의 스타일이 변경되고, 많은 부분이 튜닝되는 등 수많은 개선이 적용되었다. 아래 링크에서 다운받을 수 있다. 기존의 한/영 x86/x64 버전과 함께 avx2 버전도 함께 들어있다. password: teus.me ▲ 히스토리 2019.4.12: 4.20.03 r2..
요즘 일이 너무 바빠 변변하게 블로그 포스팅을 못 하고 있었다. 이러다 개점휴업 상태가 되어버릴까봐 하루 바짝 시간을 끌어모아 프로그램들도 업데이트 하고 근황도 정리해본다. 1. LG 노트북에 탑재될뻔한 구라 제거기 한달 하고도 두어주 전에 LG전자에서 구라 제거기를 탑재하고 싶다는 연락을 받았다. 처음엔 스팸을 의심했다가, 레이더를 돌려 스팸이 아니라는 점을 확인하고 컨퍼런스 콜도 진행했다. 그런데, 비용없이 탑재할 의향이 있는지 황당한 질문을 하길래 개인 무료, 기업 유료라는 상식 수준의 답변을 해줬다. 그러자 무려 한달 하고도 두주만에 돌아온 대답은 이런 것... 그 회사 지인을 통해 살짝 조언을 구해보니, 등골만 빼먹고 튀는 경우도 있으니 주의하란 권고를 들었었는데, 과연... 틀리지 않은 듯. ..
약 1년여 전에 한 회사의 업무 환경에 시놀로지를 전면 적용했고, 계속 사용해오고 있다. 시놀로지 NAS 장비 한 대에 다양한 업무들을 안정적으로 통합했는데, 결과는 물론 통합하는 과정도 상당히 만족스러웠다. 0. 배경 회사는 직원이 50명이 조금 넘는 중소기업이라 대규모의 전산 시스템을 구축할 여유는 없었다. 업종은 아웃바운드 콜과 이에 연계하여 강의를 하는 곳이고, 관련 자료들을 일일이 수작업으로 관리하고 있었다. 창업 이후 모든 데이터는 엑셀 파일들로 관리하고 있었으며, 실무자는 몇년치 엑셀 자료들을 검색해서 업무를 진행했다. 부서별로 공유해야 할 자료들은 윈도우 폴더 공유를 통해 공유하였고, 업무상 필요한 일부 자료들은 드롭박스로 공유했다. 엑셀 자료들은 파일의 크기가 너무 커져서 관리가 힘들어지..
짧고 간결한 프로젝트 오일러 문제 하나. 제목에서도 적었듯이 n제곱 해서 나온 숫자의 자릿수가 n인 모든 경우를 묻는 것이다. 다른 문제도 그렇지만, 이 문제는 일일이 제곱을 해가며 풀 수도 있다. 제곱의 결과가 64비트 범위를 넘어설 수도 있으니 이 부분을 해결할 아이디어만 있으면 된다. 하지만 그런 무식한(?) 방법보다는 로그를 활용하는 것이 훨씬 더 좋다. 일단 10진수 D의 자릿수가 n이라는 건 \(n-1 \leq log _{10} D \lt n\) 이라고 쓸 수 있다. 또한, 문제의 특성상 지수의 밑은 오로지 1~9 까지만 가능하다. 다시 말해서 \(1 \leq d \leq 9\) 인 자연수 d에 대해서 \(n-1 \leq log _{10} d ^ {n} \lt n\) 인 자연수 n의 개수를 세..
앞 포스팅에서도 짧게 언급했는데, 소수 여부를 판별하는 가장 빠른 방법은 에라토스테네스의 체다. 수의 범위가 정해져있다면 그 범위까지의 소수를 모두 식별하는데 이것보다 빠른 방법은 없다. 하지만, 반대로 이 방식은 임의의 한 수가 소수인지 식별할 때는 오히려 느린 편이다. 일일이 숫자를 나눠서 확인하는 경우 더 빠른 방법이 어느쪽인지 테스트해봤다. 테스트 환경은 그냥 개인용 PC(AMD Ryzen 5 3600X)인데, 다른 환경이라고 큰 차이는 없을 듯. 0. 에라토스테네스의 체 그냥 지나치긴 뭐해서 일단은 간단히 구현해봤다. bool IsPrime_0(unsigned num) { switch (num) { case 0: case 1: case 9: return false; case 2: case 3: ..
간만에 풀어보는 프로젝트 오일러. 이 문제는 복잡하게 생각하지 않아도 된다. 간단한 규칙만 찾으면 된다. 오히려 진짜 문제는 소수의 판별을 빠르게 하는 방법을 찾는 것. 에라토스테네스의 체를 활용하기 힘든 문제라 오히려 이 쪽이 성능에 영향을 미칠 수 있다. 1. 소수 식별 앞에서도 썼듯이, 소수를 식별하는 방법 중 에라토스테네스의 체보다 더 빠른 방식은 없다. 충분한 메모리만 확보할 수 있으면 이 방법이 최고다. 하지만, 이 문제에선 왠지 이 방식을 쓰는 게 어색하다. 대체 얼마만큼의 메모리를 확보해야 하는지를 알 수 없기 때문이다. 그래서 여기선 정공법을 선택했다. 정공법으로 풀 때 나누어지는지의 여부는 3 ~ \(\sqrt {n}\)까지만 확인하면 된다. 정수 범위에서 제곱근을 빠르게 구하는 방법은..
앞 포스팅들을 다시 읽어보니 뭔가 마무리가 되지 않은 느낌이 들었다. pow() 함수가 없기 때문인 것 같아서 이것까지 마저 만들기로 했다. 이미 ln()과 exp() 함수가 있기 때문에 구현 자체는 어려운 게 없다. 아래 적힌 관계만 이용하면 된다. 여기서 유의해야 될 점은 몇 가지 예외조건이 있다는 것이다. 이런 점을 고려한 코드는 아래와 같다. double EXP(const double x, const double limit) { double result = 1 + x; double x0 = x; int count = 1; while (true) { ++count; x0 = x0 * x / count; if (isinf(x0)) { break; } result += x0; if (fabs(x0) <..
이전 블로그에서 적었듯, ln()을 구현한 김에 sin()도 함께 구현해봤고, 원주율 계산도 간단하게 구현해봤다. 1. sin(x)의 구현 물론, 이번에도 테일러 급수다. sin(x)는 아래와 같이 전개된다. 이번에도 역시 구현 자체는 그리 어렵지 않지만 적절한 횟수를 정하는 것이 필요하다. const static double PI = 3.141592653589796323846; void SIN_v1(double x, double limit, double& result, int& count) { result = 0; count = 0; while (x > 2 * PI) { x -= 2 * PI; } while (x < 0) { x += 2 * PI; } double xxxx = x * x * x * x;..
2020/03/19 - 온도 센서의 출력 저항값으로 원래 온도값 계산 삽질기 이전 포스팅에서 로그와 간단한 식을 이용해서 센서 데이터를 처리하는 방식들을 얘기했다. 그런데, 새로운 문제가 제기되었다. 구현하는 환경에서 log() 함수가 지원되지 않으면 어떻게 하지? 쿼드코어 CPU가 발길에 채이는 세상이지만, 놀랍게도 이런 문제는 상존한다. 예컨데, Cortex 시리즈의 경우 M0는 물론 M3까지도 HW 부동소수점 기능이 제공되지 않는다. 1. 로그(ln(x))의 구현 방안 로그의 계산은 당연하게도(!) 테일러 급수에서 시작된다. 자연로그는 아래 두 가지 형태로 기술된다. 뭔가 좀 복잡해보이니 간단하게(?) 전개하면 아래와 같다. 그런데, 이 두 식은 조금만 생각해보면 홀수차 항만 남기도록 정리가 가능하..
회사에서 뫄뫄 온도 센서의 입력값(온도)과 출력 저항값을 볼 일이 생겼다. 이 센서는 온도에 따른 출력 저항값을 한 장의 시트로 제공하는데, 대략 아래와 같은 내용이다. 이렇게 장황한 표로 뭔가를 해야되는 상황이 마음에 들지 않아 역셈을 해보기로 했다. 일단, 그래프를 그려보니 아래와 같다. 언뜻 보기에도 흔한 \(log ()\) 기반 그래프. 그래서 출력 저항값(R)에 로그를 취했다. 입력 온도와의 그래프는 아래와 같은데, 이제 뭔가 분석이란 걸 할 수 있을 것 같다. 이를 위해 추세선을 2차 함수로 그려보니 결정계수(\(R ^ 2\))가 0.9999가 나왔다. 즉, 이 추세선은 원본 데이터와 상당히 비슷하지만, 그대로 사용하기엔 무리가 있다. 게다가, 추세선 식을 보면 계수가 0.0001로 유효숫자가..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 이번 배포판에서 추가된 가장 중요한 기능은 hex 포맷 계열의 문법 강조 기능이 추가되었다는 점이다. 원래 이 계열의 문법 강조 Lexer는 Scintilla 라이브러리에 포함되어 있다. 하지만, 메모장2에선 이 부분을 구현하지 않았었다. 회사에서 이 기능을 사용할 일이 생겨 구현한 것을 공개한다. 이번에 추가된 기능에는 위에서 보여준 Intel HEX와 더불어 Motorola SREC과 Tektronix extended HEX를 모두 지원한다. 1. Motorola SREC, Intel HEX, Tektronix extended HEX 를 모두 지원하며, 확장자를 통해 구분함 2. 체크섬을 포함하여 내용에 오류가 있으면 붉은 색 글자로 표시함 3..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 애플 iOS 11에서부터 적용되기 시작한 HEIF가 조금씩 확산되고 있고, 이제 윈도우10에서도 뷰어를 무료로 제공하고 있기는 하지만, 아직은 윈도우에서 이 포맷을 사용하는 건 불편함이 있다. 보기는 그럭저럭 보지만, 편집을 하려면 그 때부턴 조금씩 뭔가가 복잡해진다. 오픈소스 프로그램만을 활용하며, 다중코어를 활용하여 최대한 빠르게 변환하는 HEIF 변환기를 좀 더 개선하여 아래와 같이 공개한다. password: teus.me 이 프로그램은 이전 버전과 마찬가지로 HEIF를 jpeg/png로 변환해주며 성능도 빨라졌고 안정성도 향상되었다. ICC Profile, Exif 등을 모두 제대로 읽어내어 변환하며, 덤으로 파일의 시간 정보 Exif와 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsic..
퇴근이 좀 늦어 집에 와보니 가족들은 모두 식사를 마치고... 난 혼자서 눈물 젖은 소고기를 먹을 수 밖에 없었다... 헛헛한 마음을 달래줄 물건이 둘 와있었는데, 하나는 라즈베리 파이 4 히트싱크 케이스... 나머지 하나는 공식 파워 서플라이. 기존에 사용하던 케이스는 팬(Fan SHIM)과 함께 사용하던 모델이었다. 나름 소음이 큰 편도 아니고, 그럭저럭 쓸만은 했는데, 사용하다보니 사소한 문제들이 부각되어 보였다. 밤에는 팬 소음이 들린다는 점과, CPU SoC에만 팬이 적용되고 다른 부분엔 적용되지 않았다는 점. 구글링 해보면 라즈베리파이 4의 열 테스트 자료를 쉽게 찾을 수 있는데, 일단 CPU 외에도 메모리의 열이 상당히 높다. 자료에 따라서는 이더넷 칩의 온도가 더 높다는 자료도 볼 수 있고..
부동소수점 값이 정상 범위가 아닌지 확인하는 것은 은근히 손이 가고 신경이 쓰이는 작업이다. NaN과 Infinite를 구분해야 하는 분야도 있지만, 사실 대부분의 경우에선 구분할 필요까진 없는데, 내장 함수들은 이를 구분하게 되어있다. C++ 11에 와서야 isfinite() 함수가 추가되어 편하게 쓸 수 있는 수준이 되었지만, 그 전까진 뭔가 2% 부족한 느낌이었다. isnormal()은 0도 false를 리턴하는 기염을 토했으며, isnan()과 ininf()를 따로 확인해야 했었다. C#은 아직 isfinite()에 해당하는 함수가 없어서 이런 얘기 자체가 사치스럽게(?) 들리는 상황이다. 그런데, 값이 정상 범위인지를 확인하는 것은 의외로 간단하다. 이는 부동소수점의 구조를 보면 쉽게 이해할 수..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 어도비 사의 걸작품 포토샵의 기능들 중 많이 사용하는 것들은 상당수가 프리웨어들로 대체가 가능하다. 그런데, 자유 변형(Free Transform)의 경우 효과적인 대체 프로그램을 찾지 못했다. 그래서 프리웨어 이미지 편집 도구인 Paint.NET 용으로 이 플러그인을 만들어봤다. 이 플러그인을 설치한 뒤 효과 - 비틀기 메뉴 아래에서 FreeTransform... 을 선택하면 이 기능을 사용할 수 있다. 이 플러그인을 실행하면 네 개의 꼭지점과 렌더링 모드를 지정할 수 있다. 지정하는 꼭지점은 직사각형에 집어넣고 싶은 네 개의 꼭지점이고, 렌더링 모드는 화면에 표시하는 방식을 의미한다. 예를 들어, 아래와 같은 원본 이미지가 있을 때... 일단 ..
2020/02/03 - Paint.NET 용 자유 변형(Free Transform) 플러그인 공개 이전 글을 통해 공개한 자유 변형 플러그인을 만들어가는 삽질기를 간략하게 정리해본다. 1. 플러그인 개발 환경 플러그인은 Paint.NET용 플러그인 개발의 영원한 지존 CodeLab으로 일단 틀을 잡고 시작한다. CodeLab 하나만으로도 플러그인 전체를 완전하게 만들 수도 있을 정도로 파워풀한 도구이다. 게다가, CodeLab은 이 소스를 VS에서 개발 가능하도록 변경해주는 기능도 제공한다. 이렇게 할 때 가장 중요한 장점은 완벽한 수준의 디버깅이 가능하다는 점. 2. 수학적 배경: Homography 자유변형 알고리즘은 간단하게 말해 Homography 하나만 구현하면 된다. OpenCV에서도 이 내용..