NeuroWhAI의 잡블로그
https://sourcerer.io 위 사이트에 접속하신 후 SIGN IN 링크를 눌러 로그인 화면으로 갑니다. 그 뒤 원하시는 계정으로 로그인하시면 통계가 집계됩니다. 아래는 예시로서 제 통계 중 일부입니다.
use std::io::{self, Read}; mod bf { use std::io::{self, Read}; #[derive(Default)] pub struct Machine { code: Vec, ram: Vec, head: usize, ptr: usize, } impl Machine { pub fn new() -> Self { Machine::default() } } impl Machine { pub fn initialize(&mut self, ram_size: usize) { self.ram.resize(ram_size, 0); } pub fn mount(&mut self, code: &str) { self.code = code.chars().collect(); } pub fn step(&mu..
panic은 Rust의 매크로로서 프로그램이 복구할 수 없는 오류에 빠졌을 때 프로그램을 즉시 종료하고 디버깅에 필요한 정보를 제공하는 기능을 합니다.Rust는 panic이 일어난 것을 감지할 수 있는 기능도 제공합니다. use std::panic; fn main() { let result = panic::catch_unwind(|| -> i32 { println!("good"); "42".parse().unwrap() }); println!("{:?}", result); let result = panic::catch_unwind(|| -> i32 { println!("bad"); "AaaaaAAaaaAAAaaAAAAaAAAAA".parse().unwrap() }); println!("{:?}", res..
if self.cache.contains_key(ids) { let sub_cache = self.cache.get_mut(ids).unwrap(); if sub_cache.contains_key(page_id) { let data = sub_cache.get_mut(page_id).unwrap(); data.update(cnt); } else { // 캐시가 비정상적으로 커질 가능성 배제. if sub_cache.len() >= self.max_sub_cache_len { sub_cache.clear(); } sub_cache.insert(page_id.clone(), CacheData::new(cnt)); } } else { let mut sub_cache = HashMap::new(); sub_ca..
https://turbo.fish/ 터보피쉬는 물고기의 한 종류 Rust의 문법 중 하나입니다.C++로 따지면 템플릿 파라미터를 직접 지정하는 것과 비슷하다고 할 수 있습니다. let num = "42".parse();위 코드는 컴파일이 안됩니다.타입 추론에 필요한 정보가 부족하기 때문이죠.num의 타입을 추론하자니 parse의 반환형이 제너릭 타입이라 알 수 없고parse의 제너릭 타입을 추론하자니 num의 타입을 모르는 상황이죠.두 해결 방법이 있는데 그냥 num: i32 이렇게 num의 타입을 지정하는 것과parse에 turbofish 문법을 사용해서 해결할 수도 있습니다. let num: i32 = "42".parse(); let num = "42".parse::(); // turbofish사실 ..
https://blog.github.com/changelog/2019-01-08-pricing-changes/ 좋은 소식이네요.2019년 1월 7일에 올라온 로그를 보면 깃헙이 비공개 저장소를 모두가 무료로 만들 수 있게 바꾸었다고 합니다!다만 비공개 저장소 하나당 최대 3명의 협력자(collaborator)만 지정할 수 있다고 하네요.뭐 어때요 저는 지정할 협력자가 없는데 ㅎㅎ.. ㅠ
(귀여운 고양이 사진을 혐짤로 만드는 예시) 지금 보는 케라스 책의 VGG16을 이용한 딥 드림 이미지 생성 예제를 실습하고 있는데 결과물이 이렇게 나오는 이유가 뭘까 생각한 것을 정리 해봅니다. 수알못이라 설명이 실제와는 많이 다를 것 같습니다 ㅠ 수알, 딥알님들의 설명을 기다립니다..! 코드는 다 필요없고 핵심만 남기면 아래와 같습니다. for i in range(num_pool_layers): layer_name = "block{:d}_pool".format(i+1) print("Pooling layer: {:s}".format(layer_name)) layer_output = layer_dict[layer_name].output # Loss loss = K.mean(layer_output) # G..
릴리즈 노트(190105) 예시 바로 어제 추가되었네요! (감격)(감사) 이제 자동 완성도 넣어주ㅅ....
https://www.acmicpc.net/problem/6591 정답 비율이 낮아서 겁먹고 미뤘던 문제입니다. 그런데 다른 쉬웠던 이항 계수 문제랑 거의 똑같이 했는데도 패스가 나네요. 무엇?? 그냥 캐시를 사용한 동적계획법으로 풀었더니 시간, 공간 복잡도가 안습이긴 하지만 패스는 되더라고요. 이후에 검색해서 공부한 방법으로 다시 풀었더니 정석대로 패스된 것 같습니다. 동적계획법으로 풀때의 아이디어는 위키백과에서 봤던 C(n, r) = C(n, n-r)이라는 점을 이용해서 중복 계산을 피하는 것이고 r = 0, r = 1, n = r일때는 답이 명확하므로 조건문을 써줬다는 것? 캐시는 최대한 크게 할당하고 n, r이 범위에 있을때만 캐시를 검사하도록 했습니다. 2번의 메모리 초과는 적절한 캐시 크기를 ..
무슨 라디오랑 인더스트리 DLC 빼고 다 구매했습니다! 할인 개꿀 ㅎㅎ 첫 도시는 무리한 도로 배치로 인한 적자로 말아먹었고 공략을 좀 보고 진행한 두번째는 다행히 안정적으로(?) 진행이 되었습니다. 아무튼 위 도시로 계속 진행을 해서 인구 6만을 넘기게 되었습니다. 지구를 설정해서 특화하면 테마가 적용이 안되는건지 고층빌딩이 나오긴 하더라고요. 고층빌딩이 더 간지가 있으므로(?) 다행인 일이었습니다. 테마라는 게 있는 줄 몰랐거든요 ㅠㅠ 플레이하는데 밤에는 적자가 나기 일수고 교통 문제는 뭘 해도 해결이 안되고 ㅠ (여러 종류의 인터체인지를 소개하는 영상을 봤는데 직접 만들 엄두가 안나더라고요) 도로 확장 공사할 때 자동으로 파괴되지 않는 건물을 직접 옮겨야하는 것은 가장 귀찮은 일이기도 했죠. 그래도..