목록전체보기 (408)
NeuroWhAI의 잡블로그
http://sled.rs/errors Error Handling in a Correctness-Critical Rust Project sled home documentation support blog introduction to sled motivating experiences error handling in Rust Error Handling in a Correctness-Critical Rust Project Let’s begin with two excerpts from the paper Simple Testing Can Prevent Most Critical Failures: An sled.rs 에러를 올바르게 다루는 방법에 대한 글에서 나온 중첩 Result 사용 예가 인상깊어서 가져왔습니다. ..
https://neurowhai.github.io/raccoon-link/ 라쿤 아파트라는 단편 만화가 있습니다. 어떤 애니메이션에 나오는 캐릭터들을 사용한 코즈믹호러 2차 창작인 것인데 거기 신박한 엘리베이터가 나옵니다. 제가 만들 땐 좀 단순화를 하긴 했지만 계기판이 저따구로 생겨서 경우의 수가 엄청 많습니다. 그래서 수 많은 층이 있는데 각 층마다 여러 괴이한 현상이 나오는 그런 작품입니다. 아침에 샤워하다가 문뜩 떠올라서 만들었습니다. 이론상 보통의 웹 주소들은 다 만들 수 있을겁니다. 근데 알고리즘보다 UI 만드는데 더 오래걸렸네요. 물론 절대 디자인이 힘들어서 그런 건 아니지만 언제나 심플함을 원칙으로 하여 간단하게 만들었습니다. 저 입력을 어떻게 URL로 변환하는지 궁금하신 분은 코드를 보시..
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로 처음 접했는데 그걸 보고 멀티플레이 게임은 만들 수 있었지만 네트워크에 대한 전반적인 감을 잡기엔 일부분에 특화된 책이었죠. 이건 얕게 이것저것 알려줍니다. 볼 계획에 있던 책은 아니었는데 얇기도 하고 빠르게 보고 넘길 책 구하다 봤습니다. 사실 그림으로 배우는 뭐시기 책들은 오히려 그림을 너무 남발하는지라 이해가 더 어려운 경향이 있던데 이건 애초에 얕은 내용인지라 이해하는데 무리는 없었네요. 그리고 재미있었습니다. 독립된 장치들이 네트워크에 연결된 친구들과 지키는 프로토콜은 아주 흥미롭고 아 이게 이래서 가능하구나하는 통찰도 얻을 수 있었습니다. 흥미 유발용 입문용으로 좋은 듯.