`ncal -3` 직접 Perl으로 짜봤다
ncal -3
이 뭐냐하면:
https://man7.org/linux/man-pages/man1/cal.1.html
…뭐 이런건데, 개인적으로 저전력 글쓰기 전용머신에서 사용하는 스크립트에서 배포판이 달라서 패키지를 못찾겠어서 1, …그냥 직접 짜서 대체했다.
https://github.com/ageldama/configs/commit/66bd92b42ba5a5ee03b9336370c3a8f84293e488
그래서 스크린샷은:
재밌었던 부분은:
- 어차피 Perl으로 전부 짜서 쓰는 스크립트였는데, 아예 외부 커맨드라인 도구 의존성을 더 없애서 뿌듯하다.
- 매달 달력을 문자열으로 뽑았는데, 3달치를 뽑아서, 이걸 한 row에 표시하고 싶었는데, Text::Table으로 적절히 간단히 완료.
- Term::ANSIColor와 perlre을 써서 깔끔하게 원하는 일자에 highlighting 해서 편안했다.
-
…더 해킹을 해서,
…calendar(..)
결과문자열을 적당히 파싱해서, 작은 Text::Table으로 만들어서, 그것들으로 조합하고 했었어도 될거 같아.
C++: Golang-ish `defer`-macro
별거 없는데, 문득 심심해서 툭닥거려봤다.
원하는 것과 접근법
- https://go.dev/blog/defer-panic-and-recover
- https://docs.rs/defer/latest/defer/fn.defer.html
- https://ziglang.org/documentation/master/#defer
golang/zig에서처럼 defer
등록한 LIFO순서대로 호출되도록.
검색해보면, 대부분 RAII을 사용하거나 하는 것들이 보인다:
- DDG: c++ golang defer
- https://stackoverflow.com/questions/33050620/golang-style-defer-in-c
- https://stackoverflow.com/questions/45617758/proper-way-to-release-resources-with-defer-in-a-loop
- https://codesire-deng.github.io/2022/02/06/One-Minute-to-C-defer/
…그냥 std::shared_ptr<void>
을 이용하는 방식이 마음에
들었다. 그리고 조금 더 간단하게 사용하려고 매크로로 만들어 봤다.
defer.inl
:
|
|
__COUNTER__
이용해서 매크로가 생성한 std::shared_ptr<..>
변수의
이름이 겹치지 않도록 해봤다. (…위에 검색한 링크들에도 사용하듯이)
Ping 26/02/2023 .01 : 디자인 css 가볍게 수정
아예 아무런 스타일도 주지 않고, 그냥 알아서 html/css만으로 잘 보이도록 고쳤다. 웹폰트니 그런것도 그냥 껐고.
불필요한 스타일이나 폰트로딩을 줄여서 가볍고, 어차피 웹브라우져의 'reader mode' 지원 같은걸로 내가 스타일 주는 것보다 훨씬 읽기 편안하게 볼 수 있을테니까.
lynx, w3m 같은 텍스트 웹브라우져에서 읽으나 그냥 무거운 웹브라우져으로 읽으나 사람마다 알아서 잘 읽히도록 하는데에만 집중해봤다.
…