새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. 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일밖에 안 됐는데 도착했다. 포장을 벗기니 찬란한 박스가 눈에 들어온다... 상자 속에는 대략 이렇게 생긴 전원 스위치가 들어있다. 그리고, 대망의 뒷부분. 아래 사진을 보면 알 수 있듯이, 이 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 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에서도 이 내용..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. PC 뱅킹의 주적은 PC 뱅킹 프로그램이다. PC 뱅킹을 하고 나면 컴퓨터가 미친 듯이 느려지기 때문이다. 키보드 보안 프로그램을 필두로 컴퓨터를 느려지게 만드는 악의 무리들이 너무나 많다. 전통의 명가(?) nProte**부터 안* 온라인 시큐**, 그 외에도 수많은 잡 구라들… KISA에서 I사 보안모듈 프로그램에 문제가 있다고 발표할 정도로 완성도가 엉망인 경우도 있다. 보안 취약점을 갖고있는 보안 프로그램이라니… 무슨 열림교회 닫힘도 아니고… 더군다나 이런 프로그램들은 몰래 설치가 되는 것도 아니고 아예 (강제로) 동의를 받아 설치된다. 마치 건물 철거 강제 집행하면서 동의서 서명당하는 기분이다 그래서 간단히 만들었다. 설치 프로그램 목록에..
이번에 ASUS의 D712DA-AU071 모델을 구매하게 되었다. 옵션은 최대한 올려서 NVME SSD는 512GB로 하고, HDD 1TB를 추가하고, 메모리도 12GB 추가했다. 요즘 핫한 라이젠 프로세서를 장착한 모델로, 전체적인 성능은 높고, 가격은 적절한 편이라 가성비는 상당히 높다. 일단 외관은 은색 케이스로 깔끔한 편이다. 요즘 노트북이 으레 그러하듯이, ASUS 로고만 박혀있다. 하단은 아래와 같다. 고무 받침은, 상단에는 길게 배치되어 있고, 하단은 조그마한 2개가 배치되어있다. 통풍구의 크기는 작은 편이지만, 발열이 큰 편이 아니라 무리는 없는 것 같다. 이 제품의 장점 중 하나는 풀 사이즈 키보드. 숫자 키패드가 달려있어 '작고 아름다운' 노트북들에 비해 훨씬 좋은 입력 환경을 제공한다..
내가 사용하는 PC 케이스는 Nanoxia의 Deep Silence 2 라는 모델이다. 나름 무소음 케이스를 지향하고 나온 케이스로, 튼튼하고 소음도 잘 잡아준다. 그런데, 어느날부턴가 전원 버튼이 맛이 가기 시작했다. 깊이 눌러야 전원이 켜지는데, 이게 또 완전히 고장난 건 아니라 켜지기는 하는 뭐 그런 상태. 메일을 뒤져보니 약 3년 전부터 살짝 맛이 가고 있었으니, 3년간 graceful degration 상태였던 건가… 그동안 제작사에 해결책을 요청하는 메일을 보냈고, 답변으로 부품을 구매할 수 있는 아시아 지역 연락처도 받았다. 하지만, 현실은 냉혹해서, 그 연락처 중에 쓸만한 연락처가 없었다. 그 홈페이지들에서는 해당 부품을 구매할 수도 없었고, 그나마도 죄다 중국어/일본어로만 표시되어 읽을 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 이번 배포판은 이전 버전에 비해 많은 수정들이 반영되었다. 1. 정규식을 메모장2 원본에 포함된 정규식 엔진으로 복원 이에 따라 다중행에 대한 검색 기능이 제거되었음 2. 자동완성 기능을 통해 ), >, ] 등이 입력되었을 때 사용자가 또 입력하면 이를 무시하도록 수정 3. 다중 모니터 환경에서 창 위치를 제대로 기억하도록 수정 4. 선택어 강조 시에 2,000개 이하만 표시하도록 추가했던 기능 제거(원본으로 복원) 5. 사용자 지정 스키마 번역 추가 6. 컴파일 환경을 Visual Studio 2019로 변경 및 Windows XP 지원 종료 7. 120DPI 및 144DPI용 대형 툴바 아이콘 추가 아래 링크에서 다운받을 수 있다. 언제나 그렇..
오랜만에 머리도 식힐(?) 겸 프로젝트 오일러를 하나 풀어봤다. 문제의 골자는 세제곱수 중에 순열을 이루는 것이 다섯 개 있는 것을 찾아내는 것. 이 문제는 사실 unsigned long long을 사용하면 그닥 어렵지 않게 만들 수 있다. 몇 가지 포인트만 잡으면 꽤 빠르게 동작하는 프로그램을 만들 수 있다. 1. 모든 자릿수의 모든 숫자를 대상으로 계산하면 너무 복잡해짐 2. 세제곱수의 자릿수를 결정한 뒤 그 범위에 해당되는 세제곱근들만 계산 #include #include #include using namespace std; bool ArePermutated(unsigned long long b1, unsigned long long b2) { int cnt[10]; memset(cnt, 0, siz..
소형 LCD에 글자와 그림을 찍어야 할 상황이 생겼다. 사용하게 된 모델은 ILI9341. 2.2인치 TFT LCD로, SPI 통신으로 동작하는 모델이다. 뒤져보니 6x8 영문 폰트도 있고, 8x16 ASCII 폰트, 16x16 한글 폰트 등이 있었다. 이 폰트 파일들은 모두 한 픽셀을 한 비트(!!!)에 저장해서 크기를 극단적으로 줄인 코드들이다. 6x8 폰트는 너무 작아서 2~3배로 확대해야 볼만 하고, 16x16은 그나마 볼 수는 있는 크기이다. 일단 둘 다 적용. 막상 적용하고 보니, 슬슬 글자 모양에 불만(?)이 생기기 시작한다. 나쁜 폰트는 아닌데, 워낙 오래된 느낌이 많이 나는 폰트이다. 또, 영문 폰트 아래에 1~2 픽셀의 공간이 있는데, 이것 때문에 글자가 좀 떠있는 느낌도 난다. 그래서..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. PC 뱅킹의 주적은 PC 뱅킹 프로그램이다. PC 뱅킹을 하고 나면 컴퓨터가 미친 듯이 느려지기 때문이다. 키보드 보안 프로그램을 필두로 컴퓨터를 느려지게 만드는 악의 무리들이 너무나 많다. 전통의 명가(?) nProte**부터 안* 온라인 시큐**, 그 외에도 수많은 잡 구라들… KISA에서 I사 보안모듈 프로그램에 문제가 있다고 발표할 정도로 완성도가 엉망인 경우도 있다. 보안 취약점을 갖고있는 보안 프로그램이라니… 무슨 열림교회 닫힘도 아니고… 더군다나 이런 프로그램들은 몰래 설치가 되는 것도 아니고 아예 (강제로) 동의를 받아 설치된다. 마치 건물 철거 강제 집행하면서 동의서 서명당하는 기분이다 그래서 간단히 만들었다. 설치 프로그램 목록에..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 2018/03/11 - 제대로 HEIF를 변환할 수 있는 iTrans HEIF 1.9 업데이트 제대로 HEIF를 변환할 수 있는 iTrans HEIF 1.9 업데이트 이전 포스트에서 설명했듯이, 지금까지 공개된 윈도우용 HEIF 변환 프로그램들은 뭔가 많이 부족하다. mp4box와 ffmpeg만 잘 활용해도 변환의 상당부분을 처리할 수 있는 걸 보면 아직 상용 프로.. teus.me 애플 iOS 11에서부터 적용되기 시작한 HEIF가 조금씩 확산되고 있고, 이제 윈도우10에서도 뷰어를 무료로 제공하고 있기는 하지만, 아직은 윈도우에서 이 포맷을 사용하는 건 불편함이 있다. 보기는 그럭저럭 보지만, 편집을 하려면 그 때부턴 조금씩 뭔가가 복잡해진다...