목록2019/01 (17)
NeuroWhAI의 잡블로그
https://neurowhai-memo-app.firebaseapp.com/ 인프런의 강좌를 보고 실습한 결과물입니당 ㅎㅎ 아주 조금 개선한 부분도 있고요... 처음 들어가면 팝업(차단되면 허용하고 다시 새로고침...)이 뜰텐데 구글 계정으로 로그인하면 됩니다. 그러고 메모를 적은 후 '+' 버튼을 누른다거나 해서 포커스를 다른 곳에 두면 수정/저장됩니다. 메모를 불러오려면 좌측 메뉴의 동그란 버튼?을 누르면 됩니다. 삭제는 커서를 좌측 메뉴에 두면 버튼이 나옵니다. 하도 좋다길래 함 써본건데 편하긴 하네요. 나중에 앱 개발도 공부할 건데 그때 같이 써서 뭐 좀 만들어봐야겠습니다 ㅎㅎ
JTBC의 드라마 'SKY 캐슬'의 엔딩곡입니다.드라마를 다 보진 않았고 어쩌다 조금씩 보는데 끝날 때 나오는 노래가 자꾸 기억에 남더라구요. 공식 버블디아 피아노 바이올린 느린 버전, 오케스트라, 원곡 8비트 간첩소녀 듀엣 기타 리아
https://deepmind.com/blog/alphastar-mastering-real-time-strategy-game-starcraft-ii/ 알파스타의 동작 시각화를 포함한 한 경기 영상. 알파스타가 사람과 치른 모든 경기를 요약한 경기 영상.(영상에서 빠진 경기도 있음) 인공지능 알파스타(AlphaStar)가 며칠 전 프로게이머 MaNa에게 5:0으로 승리하였다고 합니다.리매치에서 MaNa가 약점을 파악하여 1번 승리하였다는 소식도 있네요.알파스타는 이전에 TLO라는 저그 유저와도 경기하여 5:0으로 승리한 전적이 있기에 최종 전적은 10:1이라고 합니다. 당연하지만 알파스타는 전체 맵을 볼 수 없으며 APM을 포함하여 일반 고수 플레이어와 같은 제약을 가진 상태에서 플레이하였습니다.자신의 종..
Rust 표준 라이브러리에 있는 AsRef와 Borrow trait은 생긴 것이 매우 비슷합니다. pub trait AsRef where T: ?Sized, { fn as_ref(&self) -> &T; } pub trait Borrow where Borrowed: ?Sized, { fn borrow(&self) -> &Borrowed; } impl Borrow for T impl
주의! 공부하고 정리한 글이라서 틀린 부분이 있을 수 있습니다.올바른 지적은 언제나 환영합니다. Rust는 패턴 매칭시 적절한 바인딩 모드를 선택함으로써 프로그래머 입장에서 쉽게 패턴 매칭 코드를 작성할 수 있게 합니다.다만 구버전 Rust까지는 그런 기능이 부족해서 아래 코드는 컴파일이 안되었었습니다. let s: &Option = &Some("hello".to_string()); match s { Some(s) => println!("s is: {}", s), _ => (), };s는 &Option인데 패턴은 Option이기 때문이었죠.그래서 아래처럼 수정해야 했었습니다. let s: &Option = &Some("hello".to_string()); match s { &Some(ref s) => p..
KSP는 직접 만든 발사체로 우주 프로젝트를 수행할 수 있는 게임으로서 제가 한창 중학생 때 매달렸던 게임입니다.(첫 도킹은 일주일이나 걸렸죠..)지금은 지쳐서 플레이하고 있진 않지만 Youtube의 Stratzenblitz75 채널 영상은 계속 보고 있습니다.이 분이 만드는 발사체는 창의성, 웅장함, 노가다(?)를 모두 겸비하고 있고 영상 자체도 마치 영화나 다큐를 보는 듯합니다.KSP를 해본 사람이라면 더욱 신기할테고요... 아래는 제가 그 중에서도 더 좋아하는 영상들을 모아보았습니다.
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..