목록전체보기 (408)
NeuroWhAI의 잡블로그
https://langserver.org/ LSP는 프로그래밍을 할 때 자동 완성, 정의로 이동, 모든 참조 찾기와 같은 똑똑한 도구들을 쉽게 지원하기 위해서 사용되는 프로토콜이라고 합니다.모든 편집기가 각자 모든 언어에 대해 그러한 기능들을 추가하려고 한다면 바퀴를 매우 많이 발명해야 할 것입니다.그래서 편집기를 클라이언트로, 편의 기능을 지원하는 무언가를 서버로 두고 그 사이에 LSP를 사용하여 이 문제를 해결합니다.쉽게 말하면 "커서가 A 소스의 n번째 줄 c번째에 있는데 여기서 '정의로 이동'을 수행하려고 해"를 편집기가 LSP에 맞게 서버로 요청을 보내는 것이고서버는 이 요청을 받아 "B 소스의 n번째 줄 c번째에 있어"를 응답으로 보내주는 것이죠.물론 실제론 좀 다르겠지만... 만약 이런 서버..
데코레이터 패턴으로 HTML 코드를 표현한 예제입니다. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b0fb18d31a6e4da32f135a3970985efc trait Element { fn outer_html(&self) -> String; } struct Content { content: String } impl Content { fn new(content: &str) -> Content { Content { content: content.into() } } } impl Element for Content { fn outer_html(&self) -> String { self.content.clone() } } st..
https://merry-christmas-wasm.herokuapp.com 확증은 없는데 경험적으로 보자면 원인은 잊혀진(?) 메모리의 재사용 때문이 아닐까 싶습니다.문제가 되는 시나리오는 아래와 같습니다.일단 캔버스에 쓸 메모리를 Rust에서 할당하고 forget합니다.눈을 계속 만들면서 Vec가 내부적으로 공간 확보를 위해 재할당을 수행하는데 이때 forget했던 메모리 부분을 침범합니다.캔버스 이미지가 제대로 나오지 않게 됩니다!그래서 임시로 눈을 담고 있는 Vec의 재할당이 일어나지 않게 하고 캔버스에 쓸 메모리를 할당하기 전에 초기 눈 생성을 수행했더니 제대로 동작을 했습니다.이것을 토대로 어차피 할당하는 메모리는 캔버스에 쓸 이미지 메모리 뿐이니 전용 static Vec을 만들고 forget..
#[macro_use] extern crate log; fn main() { debug!("hello, "); info!("world!"); }매크로가 다른 모듈에 있는 경우 macro_use 어트리뷰트를 써서 매크로를 임포트하라고 배웠었는데이제 꼭 필요한건 아니게 되었다고 하네요. extern crate log; use log::info; fn main() { log::debug!("hello, "); info!("world!"); }이렇게 매크로 외의 것들을 임포트 할 때처럼 할 수 있다고 합니다. 그나저나 Procedural Macro 기능이 정식으로 추가된 게 아주 마음에 드네요.C#처럼 어트리뷰트를 만들 수 있다! 얏호! 참고https://blog.rust-lang.org/2018/12/21/P..
VRChat Stalker : https://neurowhai.tistory.com/202 VRC Stalker를 개발할 때 친구들을 목록에 표시하는 부분을 ListBox의 바인딩으로 구현했었습니다.친구들이 추가되거나 삭제될 때는 제대로 ListBox에서도 갱신이 되었었는데기존 친구 객체의 필드 값이 바뀌면 그 정보는 갱신이 되질 않았습니다.예를 들면 ListBox에서 친구 객체의 Name을 표시하도록 해놨는데코드에서 Name이 바뀌어도 ListBox에는 이전 Name이 계속 표시되는 것이죠.무려 며칠에 걸친 구글링을 했지만 참 멍청하게 해결책이랍시고 갱신된 친구 객체를 리스트에서 제거하고 다시 삽입했습니다.그럼 뭐 일단 ListBox에서 갱신은 됬었으니까요....문제는 이 리스트 박스에 필터와 정렬 기..
https://merry-christmas-wasm.herokuapp.com위 링크로 들어가시면 됩니다.그저 눈이 내리는 페이지... 무슨 문제인지 모르겠는데 가끔 안됩니다 ㅠㅠ창 크기를 조정하면 될 수도 있어요. 핵심 부분은 Rust로 작성했습니다.웹은 잘 모르기도 하고 삽질을 많이 했네요 ㅠ 소스코드도 GitHub에 올려두었습니다.https://github.com/NeuroWhAI/merry-christmas-wasm 늦었지만 모두 메리 크리스마스!
fn main() { let num = u32::max_value(); println!("{}", num + 1); } 러스트는 런타임 연산 과정에서 오버/언더플로를 감지하여 패닉을 일으켜주는 기능이 있습니다.그래서 위 코드는 "thread 'main' panicked at 'attempt to add with overflow'"같은 에러를 뿜습니다.대부분은 도움이 되지만 가끔 일부러 오버/언더플로를 일으키는 경우도 있습니다.그럴 때 쓸 수 있는게 wrapping_* 메소드나 Wrapping입니다. fn main() { let num = u32::max_value(); println!("{}", num.wrapping_add(1)); }위 코드는 wrapping_add 메소드를 사용해서 패닉 없이 오버플..
하하 나의 커밋(commit : 저지르다는 뜻ㅎ)을 받아라! ... 농담이고, merge 감사합니다 헤헷 앞으로 티스토리 API 문서 보실 때 약 0.7% 정도 저에게 감사하며 쓰세요.(농담) PR은 언제든지 환영하신다고 하셨으니까 다른 분들도 쓰시면서 기여해도 좋을 것 같아요. 아직도 빠진 부분이 좀 있더라구요. 그나저나 이거 회사 입장에서 완전 개꿀 아닙니까?
다운로드 : https://drive.google.com/file/d/1dy5_5C3FDgdFEY79i3rFWqXy4FNX8T9Q/view?usp=sharing설명 : https://neurowhai.tistory.com/297 v1.1.3.1- 로그인 안 되던 문제 수정.- 신규 에디터로 작성된 글의 이미지 일부 다운로드 가능. v1.1.3- .Net Framework의 버전을 4.6으로 업그레이드하여 개체 참조 오류 수정. v1.1.2.1- 새로운 에디터로 삽입한 이미지가 표시되지 않는 문제를 일부 해결하였습니다. (아직은 단일 삽입 이미지만 제대로 나옵니다.) v1.1.2- 글의 제목을 title.txt 파일로 백업합니다. v1.1.1.2- 최대한 백업이 도중에 중지되지 않도록 처리 가능한 예외 범..
Tistory Saver OpenAPI를 사용하여 티스토리의 글을 파일로 백업하는 프로그램입니다.블로그 전체를 백업하는게 아니라 글의 내용(HTML 형식)과 리소스(이미지, 첨부파일)만 백업합니다.카테고리 구조를 폴더로 유지하여 백업합니다.개발 초기 단계라 버그가 있을 수 있으니 많은 피드백 부탁드립니다. ※ 신규 에디터로 작성된 글은 제대로 백업이 안됩니다. (아래 FAQ 참고.) 다운로드 인터넷 익스플로러 9 이상 : https://support.microsoft.com/ko-kr/help/17621/internet-explorer-downloads닷넷 프레임워크 4.6 이상 : https://dotnet.microsoft.com/download/dotnet-framework/net46Tistory ..