파이썬은 굉장히 파워풀한 언어다. 특히 Numpy와 Pandas를 활용하면 기존 언어에선 어렵게 처리할 문제를 손쉽게 해결할 수 있다. 하지만, 파이썬의 특성상 멀티코어를 활용하거나 SIMD를 자유롭게 활용하기 어렵다. 그래서 C/C++로 dll을 만들어 파이썬에서 이를 불러 사용하는 방식을 종종 사용한다. 파이썬(Numpy)은 기본적으로 배열을 C언어와 동일한 순서로 저장한다. 하지만 연산을 처리하는 과정에서 더 효율적이라 판단되면 이 저장 순서를 바꿔버린다. 대표적으로 볼 수 있는 것은 전치행렬. 이렇게 저장된 데이터를 그대로 C/C++에서 접근하면 기대와 전혀 다른 동작을 하게 된다. 일단 아래와 같이 입력해서 2×3 크기의 int 배열(행렬)을 만들어보자. >>> a = np.array([[1,2..
PC 뱅킹의 주적은 PC 뱅킹 프로그램이다. PC 뱅킹을 하고 나면 컴퓨터가 미친 듯이 느려지기 때문이다. 키보드 보안 프로그램을 필두로 컴퓨터를 느려지게 만드는 악의 무리들이 너무나 많다. 전통의 명가(?) nProte**부터 컴퓨터 발목잡기의 거목 안* 온라인 시큐**, 그 외에도 수많은 잡 구라들… KISA에서 I사 보안모듈 프로그램에 문제가 있다고 발표할 정도로 완성도가 엉망인 경우도 있다. 보안 취약점을 갖고있는 보안 프로그램이라니… 무슨 열림교회 닫힘도 아니고… 더군다나 이런 프로그램들은 몰래 설치가 되는 것도 아니고 아예 (강제로) 동의를 받아 설치된다. 마치 건물 철거 강제 집행하면서 동의서 서명당하는 기분이다 게다가 보안 전문가인 블라디미르 팔란트 씨의 글에 따르면 이 과정에서 설치된 루..
오류를 수정하고 다양한 성능 개선이 반영된 버전을 공개한다. 아래 링크에서 다운받을 수 있으며, 언제나 그렇듯 x86/x64/avx2 버전이 함께 들어있다. password: teus.me ▲ 히스토리 2023.7.30: 4.23.06 r4913 공개 - Nim script 지원 추가 (관련 링크) - Zig 지원 추가 (관련 링크) - Mathematica 지원 추가 (관련 링크) - OCaml 지원 추가 (관련 링크) - Haskell 지원 추가 (관련 링크) - F# lexer를 F# 7.0으로 업데이트 (관련 링크) - CSV에 코드 폴딩 기능 추가 (100라인 단위 / 관련 링크) - Scintilla를 5.3.6으로 업데이트 (관련 링크) - 행 전/후 삽입시 빈 행 건너뛰는 옵션 추가 (관련..
RTX 40 계열에 대한 시장의 비난이 크다. 그야말로 탑 오브 탑인 RTX 4090을 제외하면 RTX 30 계열에 비해 장점은 별로 없는데 가격은 미친듯이 비싸기 때문이다. 심지어 메모리 버스폭마저 동일 라인업 기준으로 좁아져서 비난받지 않으면 오히려 이상할 지경이다. 전성비가 높다는 점을 제외하면 큰 장점이 없다... 그런데, 게임 성능은 게임 성능이고... 비디오 인코딩 성능이 궁금해졌다. 인텔 Arc도 돌려본 마당에 RTX 40을 안 돌려볼 수 없고... H.264 이제 nvdia도 경험이 충분히 쌓인 것 같다. 인텔® QSV 수준의 인코딩 수준을 보여준다. 높은 용량 대비 화질을 목표로 하는 경우라도 더 이상 x264로 인코딩할 필요가 없을 것 같다. RTX 40 계열 및 인텔® QSV의 용량 ..
[스파이더맨: 어크로스 더 유니버스]는 멀티버스가 뇌절까지 온 시점에 아예 "모든 스파이더맨"을 끌고 나와 정면승부하는 애니메이션이다. 그런데, 기가 막히게 잘 뽑아서 한시도 눈을 뗄 수가 없는 수작이다. 이 시리즈의 제목은 1편부터 잘못 번역됐었는데, "스파이더버스"를 "유니버스"로 번역했었다. 원래의 제목은 스파이더맨이 아니었던 모랄레스가 스파이더버스에 편입된다는 뜻을 내포했는데, 그 맛이 사라져버렸다. 3부작 중 2부에 해당하는 본 작품은 전작을 보고 나서 보면 더욱 더 많은 재미를 느낄 수 있는 작품이다. 또한, 수많은 스파이더맨 사가를 집대성한 작품 답게 온갖 스파이더맨이 다 튀어나오는 재미를 선사한다. 이 작품은 일단 시각적으로도 훌륭하고 작품 자체로서 재미도 굉장하지만, 애매한 돈즈니형 PC..
주의! 스포일러가 잔뜩 포함된 글입니다 많은 올드 팬들에게 그렇겠지만 인디아나 존스는 내 인생의 시리즈다. 3편이 개봉했을 땐 소설판까지 구해 읽으며 영화판과의 차이를 비교하며 분석해보곤 했었다. 그러다 4편이 나왔었고... 그 영화는 더 이상의 설명은 생략한다... 1. 역겨움 이 영화는 일단 4편이었던 [크리스탈 해골의 왕국]보단 조금은 나은 영화다. 신비로운 영물은 영화 마지막에만 작용하고, 그 전까지는 오로지 사람의 능력만으로 문제를 해결한다. 하지만, 딱 거기까지고 영화는 특히 올드 팬들에게는 전반적으로 역겨움을 선사한다. 일단 은퇴하는 존스 박사 주변의 모두가 그를 모욕하지 못해 안달이다. 이건 이웃이건, 대녀건 모두 마찬가지다. 옛날부터 알았던 캐릭터들을 제외하면 그냥 모두가 그를 능멸하는 ..
2011년 여름에 태국에 엄청난 홍수가 발생했고, 이때 하드디스크를 비롯한 많은 산업이 큰 영향을 받았다. 이를 계기로 HDD 중심의 PC 저장장치 구성이 SSD 중심으로 이동하기도 했고, 모 회사는 헬 게이트란 비난을 듣는 일도 발생했다. 그렇지 않아도 2009년 바라쿠다 시리즈의 설계 결함으로 인해 하드가 죽어버려 데스 게이트란 비아냥을 듣던 상황이었는데... 상세한 내막은 나 같은 일반 사용자가 다 알 순 없지만, 이때를 시작으로 x게이트 사의 HDD에서 신뢰성 문제가 생기기 시작한 건 확실하다. 어쨌거나 그 홍수는 10년도 더 지난 일이고, 이제 역사 속의 이야기가 된 것 같지만, 최근까지도 바라쿠다가 죽는 얘긴 가끔 들려왔다. 2년 전쯤 가까운 지인도 그렇게 홀연히 데이터를 날려먹고 다신 헬 게..
주의! 스포일러가 포함된 글입니다 영화 [플래시]는 기존 잭 스나이더 세계관으로 불리는 DCEU의 마지막 작품이다. 주연 배우인 에즈라 밀러의 반복되는 범죄에도 불구하고 제작진이 개봉을 강행할 정도로 자신감을 가졌던 영화다. 잘 알려져있다시피 이 영화는 플래시의 능력을 통한 멀티버스를 주된 내용으로 한다. 지금은 MCU 때문에 뇌절까지 가버린 지겹디 지겨운 멀티버스지만 사실 멀티버스의 원조는 DC의 플래시이다. 1961년 작품인 가 최초의 멀티버스 작품인 것. 훌륭한 각본 멀티버스의 개념을 적극적으로 활용한 걸작 코믹스 가 이번 영화의 기본 줄기이다. 영화화를 위해 상당한 수정이 있었지만, 원작을 본 사람이라면 누구나 알 수 있는 지점들이 계속 나온다. 무엇보다 "과거를 조금만 바꿔도 파급효과는 거대하다..
약 석달 전에 미친 척 하고(아니 그냥 미친 건가...) 인텔의 Arc A750을 구매했다. 비디오 인코딩/디코딩을 포함하여 약 석달 정도 사용하면서 느낀 점들을 정리해봤다. 1. 외형 이건 분명히 말하고 싶은데, 카드의 디자인 자체는 예쁘다. 처음 박스에서 뜯었을 때 깔끔하고 완성도 높은 디자인과 마감에 좀 놀라기까지 했었다. 2. 동영상 재생 동영상 재생 능력은 현존하는 글카 중 상위권이다. HEVC는 물론 AV1까지 HW 디코딩을 지원하기 때문에 영상 재생 능력은 아쉬운 점이 없다. 물론, 이걸 꽂을 정도의 컴퓨터라면 CPU에서 SW 디코딩만 해도 별 문제는 없겠지만... nvidia처럼 AI 기능을 활용해서 해상도를 끌어올리는 기능까진 없어도 동영상 재생의 깡성능은 대단히 좋은 편이다. 3. 동영..
2012년에 개봉한 007 영화인 [스카이폴]은 시리즈 역사상 처음으로 10억 달러 수익을 돌파한 영화다. 크레이그의 007 영화 중 [카지노 로얄]과 더불어 흥행과 평가 모두 투톱을 달리는 작품이다. 이 영화에서 Q가 사용하는 머그컵은 Scrabble 게임의 알파벳 머그컵이다. 영화에 꽂힌 김에 당연히(?) 이 머그컵을 사서 써오고 있었다. 그런데, 사용한 지 10년이 넘어가니 손잡이가 떨어져나갔다. 붙여서 다시 쓸까도 생각했지만 떠나가야 할 때는 보내주는 게 나을 것 같아서 작별... p.s. 지금 쓰는 컵은 [살인면허] 머그컵...
처음 아키텍처를 배우던 시절에 교수님께서 DRAM와 SRAM의 구조를 강의하실 때 수퍼 컴퓨터는 SRAM을 사용한다는 말씀을 하셨다. CRAY 같은 것들의 구조는 내부적으로 액체 냉각을 하고 메모리도 SRAM을 사용한다고... 사실 위 사진의 CRAY-1은 SRAM을 사용하지는 않았다. 하지만, CRAY-2 모델은 공통 메모리(Common Memory)로 DRAM 모델을 기본으로 하면서, SRAM 모델도 판매헀었다. SRAM은 우리가 메인 메모리로 사용하는 DRAM과 달리 6개의 소자를 한 묶음으로 메모리를 구성한다. refresh가 필요한 DRAM과 달리 속도가 빠른 게 장점이다. 이에 따라 CPU 내부에서 사용되는 cache 메모리는 SRAM을 사용한다. 집적도가 상대적으로 낮았던 과거와 달리, 외계..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 오류를 수정하고 다양한 성능 개선이 반영된 버전을 공개한다. 아래 링크에서 다운받을 수 있으며, 언제나 그렇듯 x86/x64/avx2 버전이 함께 들어있다. password: teus.me ▲ 히스토리 2023.5.29: 4.23.04 r4838 공개 - 후원 계좌를 띄우지 않고 토스 아이디를 통해 후원받도록 수정 - Dart lexer를 3.0으로 업데이트 등 (관련 링크) - tinyexpr-plusplus 업데이트 (Commits on May 27, 2023) (관련 링크)
온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇번 소개했던 mozjpeg, ZopfliPNG, pngquant, Gifsicle에 웹 프론트엔드를 얹은 서비스들이다. 다시 말하면 이 프로그램들을 로컬에서 실행하면 동일한 서비스를 누릴 수 있으며, 업로드 제한 따윈 걱정할 필요도 ..
이제 DSLR 이외의 수많은 장비들이 카메라의 자리를 대신하고 있다. 이러다보니, 여행을 가서 찍은 사진을 모아보면 의외로 정리가 쉽지 않다. 온라인/모바일 환경에선 정렬을 Exif 촬영일자 순으로 하는 경우가 많지만, PC에선 파일명 순인 경우가 일반적이다. 그러다보니 촬영시간 순서는 알기 힘들고 카메라 기종순으로 파일을 보게 되는 경우가 대부분이다. FPO는 HEIF/JPEG의 Exif 정보 중 촬영일자 정보를 읽어 파일명을 수정하고, 최대한 파일을 줄여주는 프로그램이다. mozjpeg를 활용해서 파일 크기를 조금이라도 더 줄이고, 추가로 resample을 적용해서 사진 크기도 축소시켜준다. 또한, 사진과 더불어 함께 저장된 PNG, WebP, avi, mp4 등의 다양한 미디어 자료들도 함께 파일명..
애플 iOS 11에서부터 적용되기 시작한 HEIF가 조금씩 확산되고 있고, 이제 윈도우10에서도 뷰어를 무료로 제공하고 있기는 하지만, 아직은 윈도우에서 이 포맷을 사용하는 건 불편함이 있다. 보기는 그럭저럭 보지만, 편집을 하려면 그 때부턴 조금씩 뭔가가 복잡해진다. Windows 10의 HEIF 확장 및 HEVC 확장을 활용해서 더욱 빨라진 HEIF→JPEG/PNG 변환기를 공개한다. 오픈소스 프로그램만을 활용하며, 다중코어를 활용하여 최대한 빠르게 변환하는 기존의 기능도 더욱 안정화시켰다. 64비트(avx2) / password: teus.me 32비트 / password: teus.me 이 프로그램은 이전 버전과 마찬가지로 HEIF를 jpeg/png로 변환해주며 성능도 빨라졌고 안정성도 더욱 향상..
iDevice용 동영상 변환기를 20.22로 업데이트 했다. 인코딩 HW에 적용했던 MainConcept HEVC 인코더에 대해 좀 더 정확한 기능을 적용하였다. 변환기는 아래 링크에서 다운받을 수 있으며, 여전히 별도의 설치 프로그램따위는 없다. 64bit only / password: teus.me 관심 있는 분들의 수많은 지적과 질타 부탁드립니다. 이 프로그램은 여러분 덕에 완성되어 갑니다. iTrans의 상세한 기능 및 특징 #일반 1. 대상 비디오 파일을 목록에 드롭한 뒤 변환 버튼을 클릭하면 알아서 변환함 지원 포맷: AVI, MKV, MP4(mov), MOV(qt), MPG(mpeg/dat/vob/m2ts/mts/mxf/ts/tp), Real Media, OGM, FLV, WMV(asf), ..
2011년에 모든 미디어를 mp3/m4a로 변환하는 프로그램을 간단히 만들었었다. 물론 iTrans와 유사하게 ffmpeg 등의 프론트엔드. PC에 iTunes가 설치된 경우 기존의 neroAacEnc 외에도 iTunes를 사용하여 AAC로 인코딩하는 기능 외에도 libfdk_aac를 적용할 수 있도록 컴파일된 ffmpeg.exe이 있으면 Fraunhofer FDK를 활용하여 AAC를 생성할 수도 있다. 이 프로그램에서 지원하는 미디어 파일의 종류는 다음과 같다. - 비디오: avi, mkv, flv, ogm, mp4(m4a, m4r), mov, swf, wmv, asf, mpeg(mpg, dat, vob, m2ts, ts, ps), webm, rm(rmvb) - 오디오: mp2, mp3, ac3, dt..
SRT 자막 관리 도우미 SRTier를 5.09로 업데이트했다. NEL(0x85) 및 NBSP(0xa0) 처리 기능을 보강했고, 시간 지정 관련 인터페이스를 개선했다. 이 프로그램의 주요 기능은 아래와 같다. - SRT 교정: SRT 파일을 읽은 뒤 오류를 수정한 뒤 다시 기록하거나 시간을 조정함 - 자막 변환: SAMI/SSA/ASS 자막을 SRT로 변환, SRT 자막을 SAMI로 변환 - 텍스트 추출: SRT 자막에서 텍스트만 추출 - 텍스트 병합: 기존의 SRT 자막의 시간 코드에 맞춰 텍스트 파일의 내용을 합침 - XML/ass 등 수정: XML 포맷의 챕터 및 ass 역시 자막과 동일한 기준으로 시간을 조정해줌 - mpls → txt: 블루레이 MPLS 파일에서 챕터 정보를 추출해줌 - sup ..
잊혀질만 하면 업데이트하던 한/글 파일 압축기를 이번에도 정말 오랜만에(5년만에... ㄷㄷㄷ) 업데이트했다. 우리나라 특성상 이 프로그램을 완전히 벗어나는 건 쉽지 않은데다, 잊을만하면 이걸로 큰 작업할 일이 생겨서 업데이트. 멀티코어를 제대로 적용해서 속도를 올려보려는 시도를 해봤지만, 프로그램 구조상 너무 많이 뜯어고쳐야 돼서 포기하고... 전체적으로 동작 속도를 향상시키고, 안정성을 보강하는 많은 업데이트를 적용했다. 이전 버전들과 동일하게, 예전 한/글 파일(*.hwp)는 압축하지 못하고, 한/글 표준문서(*.hwpx)와 HWPML 2.x(*.hml)만 압축할 수 있다. 굳이 예전 포맷의 데이터를 사용해야 하는 사용자라면 한/글 표준문서(hwpx)로 다시 저장해서 변환하면 된다. 이 버전에서 수정..
유니코드에서 한글 테이블을 만들 때 많은 분들이 각고의 노력을 기울였던 결과 넓은 한글 코드 영역을 사용하고 있다. 심지어 여기엔 고어도 포함되어 있고, 일반적인 코드 외에 초성, 중성, 종성이 분리된 자소 역시 별도로 코드를 할당받았다. 그런데, 이게 약간 과유불급이 되어버린 면이 있다. 우리가 흔히 사용하는 한글(가, 각, 간... 힢, 힣) 외에 자소 분리 코드도 정식으로 사용할 수 있게 된 것이다. 특히, iOS에서는 자소 분리 코드(U+1100..U+11C2)를 기본으로 사용하기 때문에 아이폰 등에서 파일을 받으면 뭔가 좀 복잡하다. 이러한 현상을 불편하게 여긴 게 하루이틀도 아니라 솔루션들이 꽤 있다. 심지어 압축 프로그램인 반디집에서도 압축을 했다 해제하는 과정에서 이러한 파일명을 정리해주기..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. PC 뱅킹의 주적은 PC 뱅킹 프로그램이다. PC 뱅킹을 하고 나면 컴퓨터가 미친 듯이 느려지기 때문이다. 키보드 보안 프로그램을 필두로 컴퓨터를 느려지게 만드는 악의 무리들이 너무나 많다. 전통의 명가(?) nProte**부터 컴퓨터 발목잡기의 거목 안* 온라인 시큐**, 그 외에도 수많은 잡 구라들… KISA에서 I사 보안모듈 프로그램에 문제가 있다고 발표할 정도로 완성도가 엉망인 경우도 있다. 보안 취약점을 갖고있는 보안 프로그램이라니… 무슨 열림교회 닫힘도 아니고… 더군다나 이런 프로그램들은 몰래 설치가 되는 것도 아니고 아예 (강제로) 동의를 받아 설치된다. 마치 건물 철거 강제 집행하면서 동의서 서명당하는 기분이다 게다가 보안 전문가인 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 오류를 수정하고 다양한 성능 개선이 반영된 버전을 공개한다. 아래 링크에서 다운받을 수 있으며, 언제나 그렇듯 x86/x64/avx2 버전이 함께 들어있다. password: teus.me ▲ 히스토리 2023.4.23: 4.23.04 r4771 공개 - 마크다운 예약어 추가 반영 (내용 링크) - HTML 예약어 추가 반영 (관련 링크) - CSS 예약어 추가 반영 (관련 링크) - JavaScript API 목록을 ECMAScript 2023까지 반영 (관련 링크) - Scintilla 최신 패치 반영 (관련 링크) 2023.5.17: 4.23.04 r4816 공개 - Shell script 목록을 Bash 5.2와 tcsh 6.24로 업데이트..
한동안 조카가 우리 집에 살았었다. 그리고, 조카가 올 때 피아노를 갖고 왔었다. 세월이 흘러 조카는 학교를 졸업하고 사회인이 되었지만, 집이 그렇게는 넓지 않아 피아노는 항상 우리와 함께 다녔다. 그동안 이 피아노는 조카는 물론 딸아이도 쳤고, 이사를 다닐 때도 우리와 같이 다녔다. 이제 더 이상 집에 두기도 별로이고, 그렇다고 조카가 가져갈 상황도 되지 않아 떠나보내기로 했다. 이게 집에 온 게 15년 전인데, 이 피아노 자체는 87년에 생산된 것이라 무려 35년이나 된 것이라고 한다. 잘 가. 안녕.
약 1년 전에 인텔은 SVT-AV1 인코더를 공개했고, 여기서도 개략적인 성능을 테스트했었다. 그리고, 이번에 Arc A750을 구입한 뒤 AV1에 대한 성능을 비교했었다. 그런데, 이 과정에서 예상하지 못했던 문제가 하나 발생했었다. 바로 SVT-AV1 인코더를 업데이트한 뒤 인코딩이 제대로 되지 않았다는 것. gitlab의 설명에도, 프로그램 자체의 도움말에도 아무런 특이한 점은 없었지만, 아무튼 변환은 되지 않았다. 옵션을 적용하는 방법이 뭔가 바뀌었는데, 바뀐 부분을 적용하거나 말거나 그냥 실패... 좌충우돌 끝에 확인한 건 SvtAv1EncApp.exe는 포기해야 되고, ffmpeg.exe 빌드 중에서 full version을 사용해야 한다는 것. Essential version은 인코딩은 되지..
지난 포스팅에서 얘기했듯이 인텔® Arc 라인업의 HEVC 인코딩 성능은 대단히 훌륭하다. 그 글 말미에서 얘기한 대로 AV1 인코딩 성능을 HEVC 인코딩과 동일한 방식으로 확인해봤다. 우선 인코딩 속도를 확인해봤다. 인코딩 속도는 아래 표와 같다. 인텔® QSV를 사용해서 인코딩하면 AV1 역시 HEVC에 버금가는 인코딩 속도를 보여준다. AV1의 인코딩 테스트는 같은 조건에서 HEVC 인코딩한 결과와 비교하는 방식으로 진행했다. 우선, HEVC 인코딩 결과물의 용량 대비 화질은 아래와 같다. 이 그래프는 x265, MainConcept plugin, QSV 등으로 인코딩한 결과에 대해 용량 대비 SSIM을 정리한 결과이다. 용량 대비 품질이 가장 높은 것들과 가장 낮은 것을 아래에 표기했는데, 사실..
인텔의 야심작(?) Arc는 A750과 A770 두 가지 모델이 출시되었다. 상위 모델인 A770이 겨우 RTX3060과의 경쟁제품인 안습의 상황이지만, 궁금함을 참지 못하고 지르고야 말았다. 게임을 거의 하지 않아 약간이라도 더 저렴한 제품인 A750을 구매했다. 박스 포장은 깔끔하다. 기본적으로 글카 자체가 예쁘게 나왔기 때문에 박스를 열었을 때 일단 좀 있어보인다. 그리고 대망의 글카 본체. 설치 이 카드는 집 세컨 PC에 설치하는 것을 최종 목적으로 고려했다. 이 PC에는 문제(?)가 하나 있는데, 예전에 MBR 파티션으로 포맷해놓은 드라이브를 계속 사용해오고 있었던 것. 언젠간 포맷할 거란 생각만 하면서 그냥 써오고 있었는데, 드디어 벽에 부딪혔다. 인텔 홈페이지에도 명시되어 있듯이, UEFI/..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 오류를 수정하고 다양한 성능 개선이 반영된 버전을 공개한다. r4740에서는 계산 기능을 더욱 강화했으며, 인공위성 등에서 사용되는 TLE 포맷에 대한 지원이 추가되었다. 아래 링크에서 다운받을 수 있으며, 언제나 그렇듯 x86/x64/avx2 버전이 함께 들어있다. password: teus.me ▲ 히스토리 2023.3.25: 4.23.03 r4740 공개 - 수식 계산 기능 강화: and, or, rand, min, max, if 등 다양한 수식이 추가됨 (상세 내용 링크) - Scintilla 라이브러리를 5.3.4로 업데이트 (관련 링크) - AutoHotKey API 목록을 2.0.2로 업데이트 (관련 링크) - 파이썬의 PEP 701 ..
TinyExpr을 활용하여 계산 기능을 추가하고 보니 2% 부족하다는 생각이 들기 시작했다. 연산자의 종류도 좀 제한적이었고, 함수의 종류도 좀 부족해보였다. 뒤져보니 (당연히도) 이걸 발전시킨 프로젝트인 TinyExpr++가 있었다. 이 라이브러리는 전체적인 구조는 기존과 거의 같지만 C++로 되어있으며, 인자가 여러 개인 함수도 추가되었다. 심지어 Excel에서 사용되던 함수들도 여럿 도입되었고, 기존의 함수와 Excel의 함수가 모두 있으나 이름이 다른 경우는 둘 다 구현되기도 했다. min(), max(), sum()과 같은 함수들은 인자를 1개에서 7개까지 다양하게 입력받을 수도 있다. 코드 수정 방식에 대한 고민 결과 이전 글에서도 썼듯이 처음 구현할 때는 ScintillaWin.cxx 파일을..
발단은 한 줄의 댓글이었다. 처음엔 이거 웬 엉뚱한 얘긴가 했는데, 생각해볼수록 흥미가 생기는 주제였다. 회사에서 일하면서 메모장에 내용을 기록하다가 계산하기 위해 계산기를 띄우는 일은 자주 벌어지기 때문이었다. 일단은 깃헙의 Notepad2-mod 리파지토리 쪽에 이 기능에 대해 의견을 물어봤다. 그런데, 놀랍게도 이미 그러한 프로젝트가 깃헙에 있다는 답글이 올라왔다. 심지어 이 프로그램은 TortoiseGit에서 사용되고 있었다. 하지만, 여기서 사용한 방식은 내가 원하는 스타일은 아니었다. 수식을 입력하면 상태표시줄에 계산결과를 보여주는 방식이었는데, 나는 결과를 문서에 포함시키고 싶었다. 이 프로그램에서 사용하는 라이브러리는 TinyExpr인데, 이것만 적절히 적용하면 수식을 해석하는 부분은 손쉽..