목록개발 및 공부 (189)
NeuroWhAI의 잡블로그
bevyengine.org/ Bevy - A data-driven game engine built in Rust Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever! bevyengine.org Bevy는 Rust로 짜여진 게임 엔진입니다. 이 글을 쓰는 시점엔 막 0.4.0 버전이 나와 활발히 바뀌고 있는 단계라는 게 좀 걸리지만 맘에 들어서 소개합니다. 주요 특징으론 ECS, 2D/3D, 크로스플랫폼, UI, Hot Reloading, 빠른 컴파일 시간, 여러 플러그인(피킹, 물리엔진 등) 지원 등이네요. 저는 쉽게 다가갈 수 있었던 게 강점 같습니다. 아래는 제가 차례..
github.com/NeuroWhAI/stocking NeuroWhAI/stocking 네이버 증권 기반, 거래 기능은 없는 국내 주식 디스코드 봇. Contribute to NeuroWhAI/stocking development by creating an account on GitHub. github.com HTS 기반은 아니고 네이버 금융 사이트 기반이라 국내 시장 조회나 알림 기능만 있습니다. 그래서 거래 기능은 없지만 쉽게 설정할 수 있고 대부분의 OS에서 잘 돌아갈 것으로 예상합니다. 이름은 stocking이라고 지었는데 잘 지었다고 생각했지만 이미 있더군요 ㅋㅋ... 사용하시려면 오직 봇 주인 전용이라서 별도 봇 계정(?)과 서버를 두셔야 합니다. 저는 안 쓰는 노트북에서 돌렸었습니다. 처음에..
단순히 지진이 발생했다는 것만 모두에게 똑같이 알려주는 기존 재난 문자나 앱들과 다르게 내 위치에 해당하는 진도를 중심으로 신속하게 대피 요령이나 그런 것들을 알려줄 생각입니다. 그래서 신속정보 외의 정보들은 고려 대상에서 제외했습니다. 음... 그런데 제대로 만드려면 시간이 많이 필요할 것 같아서 완성은 장담을 못 하겠네요. 안드로이드만 되기도 하고 ㅋㅋ... 뭣보다 아직 앱 UI는 구현도 안 되어있고 알림 조차도 수신이 되었다 안 되었다하는 상황이라 ㅠㅠ
보호되어 있는 글입니다.
MS가 최근 winrt를 Rust로 구현하여 공개했는데 그 예제로 지뢰찾기가 있다. 지뢰찾기 코드를 구경하던 중 아래와 같은 코드(#)를 발견. Rust는 블럭({ ... })도 식으로 평가하기 때문에 while의 조건식에 블럭을 사용할 수 있는 것을 이용한 꼼수이다. while { 수행할 내용들; ... 조건식 } { /* 빈 실제 실행문 */ } 찾아보니 거의 6년전(#)에 나온 꼼수인 듯하다. 근데 사실 보기에 그리 좋진 않다. 간단한 매크로를 만들면 좀 더 보기 괜찮아진다. macro_rules! do_while { ($x:block, $y:expr) => {{ while { $x; $y } {} }}; } fn main() { let mut i = 0; do_while!({ i += 1; }, ..
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://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..
이 알고리즘은 우연히 알게되었다. 구현은 참으로 간단한데 이게 왜 되는지 이해가 안돼서 한참을 삽질했다. 정리할 겸 글을 적어본다. 일단 알고리즘의 목적은 유향 그래프든 연결 리스트든 그 속에 순환이 존재하는지, 존재한다면 그 시작 지점은 어딘지 찾는 것이다. 1. 먼저 시작 노드를 가리키는 포인터 2개를 준비한다. 2. 노드의 간선을 따라 포인터를 이동시킬 것인데 하나는 1칸씩, 다른 하나는 2칸씩 옮긴다. 3. 순환이 없다면 두 포인터가 만나는 일은 없겠지만 순환이 존재하면 결국 만나게 된다. 4. 이때 느린 포인터를 다시 시작 노드로 옮기고 이번엔 둘 다 1칸씩 이동시킨다. 5. 그럼 또 결국 어떤 지점에서 만나게 되는데 놀랍게도 여기가 순환이 시작되는 곳이다. 이 방법으로 순환을 찾을 수 있다는 ..
※ "케라스 창시자에게 배우는 딥러닝" 책 일부 내용을 정리함. 사전 훈련된 네트워크(Pretrained Network)를 사용하는 기법엔 두가지가 있다. 특성 추출(Feature Extraction), 미세 조정(Fine Tuning)이다. 특성 추출도 여러 방법으로 진행할 수 있다. 먼저 사전 훈련된 네트워크에 샘플 데이터를 넣어 말 그대로 특성을 추출하여 나온 결과값(예측값)을 새로 만들 모델의 입력으로 사용하는 방법이 있다. 이 방법은 데이터 증식을 사용할 수 없고 미세 조정이 힘들다는 문제가 있다. 다른 방법은 새로 만들 모델에 사전 훈련된 네트워크를 포함하여 학습을 진행하는 것이다. 이 방법은 데이터 증식을 사용할 수 있지만 모델이 무거워진다는 단점이 있다. 첫번째 방법은 쉽다. 사전 훈련된 ..
OAuth 2.0는 가끔, 특히 구글 API를 사용할 때 필연적으로 만났던 인가 방식인데 제대로 배워두자고 생각해서 책을 사서 보고있습니다. 책에 나온 내용은 어렵지 않은데 막상 실제로 쓰려고 하면 서비스마다 OAuth 2.0의 세부적인 구현 방법이나 용어가 달라서 어렵게 느껴지는 것 같습니다. 크게 2가지 방식이 있는데 Implicit grant 방식만 간단하게 정리해보면 아래와 같습니다. 일단 Implicit grant는 비신뢰 클라이언트를 위한 방식입니다. (이게 좀 애매한 게 '신뢰'라는 건 인증 키를 안전하게 저장할 수 있느냐 여부, 보안 통신 가능 여부 등으로 결정할 수 있다는데 구체적인 기준은 없는 것 같습니다.) 주체는 사용자, 비신뢰 클라이언트, 서비스 제공자 이렇게 있으며 서비스 제..