목록2020/02 (8)
NeuroWhAI의 잡블로그
이 알고리즘은 우연히 알게되었다. 구현은 참으로 간단한데 이게 왜 되는지 이해가 안돼서 한참을 삽질했다. 정리할 겸 글을 적어본다. 일단 알고리즘의 목적은 유향 그래프든 연결 리스트든 그 속에 순환이 존재하는지, 존재한다면 그 시작 지점은 어딘지 찾는 것이다. 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의 컨셉을 버무린다거나 하는 식입니다. 오랜만에 복습한다는 느낌으로 보기에 아주 딱 맞는 책이었습니다.