NeuroWhAI의 잡블로그
https://thomashartmann.dev/blog/on-generics-and-associated-types/ On Generics and Associated Types In which we look at traits using generic types (or type parameters) and traits with associated types in Rust. What is the difference and when does it make sense to use one over the other? thomashartmann.dev 제너릭은 대상 타입에 대해 여러 타입 매개변수로 여러번 구현하는 것이 의도일 경우 사용합니다. From처럼 어떤 Foo 타입을 대상으로 impl From for Fo..

https://www.microsoft.com/store/productId/9NBLGGH516XP 윈도우즈의 X같은 기본 볼륨 믹서를 잊게 만들 수 있는 프로그램. 마스터 볼륨을 조절한다고 각 프로그램별 설정 값이 달라지지 않음. 완벽한 상위호환! 우클릭 메뉴에서 기본 스피커 전환 가능. 프로그램별로 오디오 장치 따로 설정 쉬움.

이 알고리즘은 우연히 알게되었다. 구현은 참으로 간단한데 이게 왜 되는지 이해가 안돼서 한참을 삽질했다. 정리할 겸 글을 적어본다. 일단 알고리즘의 목적은 유향 그래프든 연결 리스트든 그 속에 순환이 존재하는지, 존재한다면 그 시작 지점은 어딘지 찾는 것이다. 1. 먼저 시작 노드를 가리키는 포인터 2개를 준비한다. 2. 노드의 간선을 따라 포인터를 이동시킬 것인데 하나는 1칸씩, 다른 하나는 2칸씩 옮긴다. 3. 순환이 없다면 두 포인터가 만나는 일은 없겠지만 순환이 존재하면 결국 만나게 된다. 4. 이때 느린 포인터를 다시 시작 노드로 옮기고 이번엔 둘 다 1칸씩 이동시킨다. 5. 그럼 또 결국 어떤 지점에서 만나게 되는데 놀랍게도 여기가 순환이 시작되는 곳이다. 이 방법으로 순환을 찾을 수 있다는 ..
※ "케라스 창시자에게 배우는 딥러닝" 책 일부 내용을 정리함. 사전 훈련된 네트워크(Pretrained Network)를 사용하는 기법엔 두가지가 있다. 특성 추출(Feature Extraction), 미세 조정(Fine Tuning)이다. 특성 추출도 여러 방법으로 진행할 수 있다. 먼저 사전 훈련된 네트워크에 샘플 데이터를 넣어 말 그대로 특성을 추출하여 나온 결과값(예측값)을 새로 만들 모델의 입력으로 사용하는 방법이 있다. 이 방법은 데이터 증식을 사용할 수 없고 미세 조정이 힘들다는 문제가 있다. 다른 방법은 새로 만들 모델에 사전 훈련된 네트워크를 포함하여 학습을 진행하는 것이다. 이 방법은 데이터 증식을 사용할 수 있지만 모델이 무거워진다는 단점이 있다. 첫번째 방법은 쉽다. 사전 훈련된 ..
https://www.youtube.com/watch?v=27j7_dOniWk 하필 터널 진입 직후에 사고가 나서 진입 전 운전자들이 사고 상황을 늦게 인지했을 확률이 커 보이네요. 터널 진입 전에도 내부 상황을 잘 보이게 할 수 있는 방법은 정녕 없는 걸까요...

OAuth 2.0는 가끔, 특히 구글 API를 사용할 때 필연적으로 만났던 인가 방식인데 제대로 배워두자고 생각해서 책을 사서 보고있습니다. 책에 나온 내용은 어렵지 않은데 막상 실제로 쓰려고 하면 서비스마다 OAuth 2.0의 세부적인 구현 방법이나 용어가 달라서 어렵게 느껴지는 것 같습니다. 크게 2가지 방식이 있는데 Implicit grant 방식만 간단하게 정리해보면 아래와 같습니다. 일단 Implicit grant는 비신뢰 클라이언트를 위한 방식입니다. (이게 좀 애매한 게 '신뢰'라는 건 인증 키를 안전하게 저장할 수 있느냐 여부, 보안 통신 가능 여부 등으로 결정할 수 있다는데 구체적인 기준은 없는 것 같습니다.) 주체는 사용자, 비신뢰 클라이언트, 서비스 제공자 이렇게 있으며 서비스 제..
첫번째 버전 : https://blog.naver.com/neurowhai/221715701528 입체음향 방향 시각화 세로는 위가 오른쪽, 아래가 왼쪽이며 가로는 시간축입니다.각 시간대에 주파수별로 방향(세로 위치)을 계... blog.naver.com 이번엔 재생하면서 실시간으로 시각화 하도록 해봤습니다. 이전 글에서도 말했지만 방향 계산식이 정확한 게 아니라서 그냥 눈요깃거리가 되어버렸습니다... 테스트 음성 시각화 음악 시각화 (출처 : https://youtu.be/wVJNLD8zL00) 이것도 Rust로 짰습니다. 이전엔 piston을 써서 이미지로 만들었는데 이번엔 ggez를 사용했습니다. ggez 쵝오...

네트워크 분야는 오래 전 윤성우의 TCP/IP로 처음 접했는데 그걸 보고 멀티플레이 게임은 만들 수 있었지만 네트워크에 대한 전반적인 감을 잡기엔 일부분에 특화된 책이었죠. 이건 얕게 이것저것 알려줍니다. 볼 계획에 있던 책은 아니었는데 얇기도 하고 빠르게 보고 넘길 책 구하다 봤습니다. 사실 그림으로 배우는 뭐시기 책들은 오히려 그림을 너무 남발하는지라 이해가 더 어려운 경향이 있던데 이건 애초에 얕은 내용인지라 이해하는데 무리는 없었네요. 그리고 재미있었습니다. 독립된 장치들이 네트워크에 연결된 친구들과 지키는 프로토콜은 아주 흥미롭고 아 이게 이래서 가능하구나하는 통찰도 얻을 수 있었습니다. 흥미 유발용 입문용으로 좋은 듯.
https://stjepang.github.io/2020/01/31/build-your-own-executor.html Build your own executor Now that we’ve built the block_on() function, it’s time to take one step further and turn it into a real executor. We want our executor to run not just one future at a time but many futures concurrently! stjepang.github.io spawn 함수를 만들고 여기에 future를 넘기면 적절하게 감싸고 큐에 올려 실제로 실행되게 합니다.

개인적으론 요즘 잘 안 쓰지만 회사에선 쓰니까 C++ 책을 오랜만에 볼까 해서 봤습니다. 제가 C++을 배울 땐 여러 책을 통해서 각 표준안(C++11, C++14, ...)들을 따로 하나씩 배웠는데 이 책은 그것들을 전부 모아 정말 C++이라는 하나의 언어처럼 알려줍니다. 고전 문법인 템플릿을 소개하면서 자연스럽게 C++20의 컨셉을 버무린다거나 하는 식입니다. 오랜만에 복습한다는 느낌으로 보기에 아주 딱 맞는 책이었습니다.