한빛미디어에서 주최하는 혼공학습단에 선정되어 7월 4일부터 활동을 시작합니다. (모집안내 링크) 책을 하나 골라서 공부한 내용을 블로그에 올리는 것인데, 자바스크립트, C언어, R 데분 등 다양한 주제가 있었지만 저는 과감하게(?) 머신러닝+딥러닝을 골랐습니다. 사실 미션은 어렵지 않습니다. 이 정도 미션도 수행하지 않았다면 그냥 공부를 안 했다고 봐도 무방할 정도인 것 같군요. (말넘심?) 얼마 전 박조은(유튜브 채널 오늘코드) 님의 발표를 듣고 적잖은 충격을 받았습니다. 발표를 한 마디로 요약하면 이렇습니다. DONE IS BETTER THAN PERFECT. 완벽하게 하려고 하지 말고 일단 뭐라도 해라. 자괴감, 한심스러움, 계획만 무성하고 실천에 옮기지 않는 자신에 대한 자책감... 반성하는 마음..
유튜브 영상의 썸네일이 간혹 영상에 나오지 않는 장면일 때가 있습니다. 이것은 제작자가 썸네일을 따로 설정했기 때문인데요. 그렇다고 플레이 하기 전 화면을 캡쳐하자니 한 가운데의 유튜브 마크와 제어바가 걸리적거리는군요. 깔끔하게 썸네일만을 따로 다운받는 방법이 있어서 소개하고자 합니다. 본 글의 내용은 이 영상을 참고하였습니다. 1. 영상 ID 복사 대상 영상의 주소에서 등호(=) 이후 영문과 숫자로 구성된 부분만을 복사합니다. 이 부분이 영상의 ID입니다. 주의할 것이 있습니다. 간혹 주소 뒷부분에 &feature나 &list가 붙어있을 수 있는데, 이 부분은 제외해야 합니다. 즉, 등호와 앰퍼샌드 사이의 문자열을 복사합니다. 2. 썸네일 사이트로 이동 새 탭을 열고 주소창에 아래와 같이 입력합니다. ..
저는 유튜브 영상을 파일로 받고 싶을 때 ssyoutube를 사용합니다만, 가끔 ssyoutube가 동작하지 않을 때가 있습니다. 그럴 때는 VLC 플레이어를 이용해서 영상을 다운받을 수 있습니다. ※ 본 글은 위키하우의 글을 참고하여 작성했습니다. 본 글은 윈도우 기준이며, 맥 사용자분께서는 앞의 링크를 들어가주세요. 1. 다운받고 싶은 영상 주소를 복사합니다. 2. VLC 플레이어를 열고 [미디어] - [네트워크 스트림 열기]로 들어갑니다. 단축키는 Ctrl + N 3. 아까 복사한 유튜브 영상 주소를 붙이고 [재생]을 누릅니다. 4. 영상 자동재생이 시작될 겁니다. 이제 [도구] - [코덱 정보]로 들어갑니다. 단축키는 Ctrl + J 5. 아래쪽에 뭔가 엄청나게 길고 무서운 문자열이 보일텐데요. ..
나름 유명한 유머입니다. 이 유머의 포인트는 느낌표를 강조로 보느냐 factorial로 보느냐에 있습니다. 이과의 관점에서는 이라서 옳은 답이고, 문과의 관점에서는 이라야 옳은 답이 됩니다. 이런 유머가 가능한 숫자는 40, 32, 4 외에도 더 있습니다. 예를 들어 아래와 같은 조합도 가능합니다. [문제1] A - B÷2 = C!의 형태로 동일한 유머가 가능한 10000 이하의 자연수 A, B, C는 총 몇 쌍이 있을까요? 답은 총 3쌍입니다. 여러분도 한번 찾아보세요! [문제2] A - B÷D = C!의 형태로 동일한 유머가 가능한 2 이상 100 이하의 자연수 A, B, C, D는 총 몇 쌍이 있을까요? 역시 답은 총 3쌍입니다. 여러분도 한번 찾아보세요! - 게으른
2008년이니까 거의 15년 전 일이긴 합니다만, 파이썬에서 self를 불편해하던 분이 있었습니다. 그래서 제안을 하게 됩니다. 제목이 상당히 자극적이네요. “Redundant is not Explicit” 우리말로 하면 “과잉과 명시明示는 동의어가 아니다” 정도일까요? 이 분의 제안은 아래와 같습니다. 메서드 정의에 self를 강제하는 것은 파이써닉하지 않다. 적어도 메서드 입력 파라미터에서는 self를 없앨 수 있지 않을까? self를 키워드로 만들면 해결되지 않을까? 예를 들자면 class C: def meth(self, arg): self.val = arg return self.val 이렇게 쓰던 코드를 class C: def meth(arg): self.val = arg return self.v..
한줄요약: 함수명 뒤에 괄호를 쓰고 1초만 기다려보자. 자주 쓰는 함수가 아니면 사용법이 생각나지 않을 때가 있습니다. 사실 자주 쓰는 함수도 종종 헷갈립니다. 예를 들어... - interp1의 인자를 어떤 순서로 쓰더라? method가 먼저던가, extrapolation이 먼저던가? - polyfit에 인자가 몇 개 들어가지? - randi에 max 값이 먼저였나? 아니면 행렬 크기가 먼저였나? 이럴 때 쓰는 방법이 몇 가지 있습니다. 가장 확실한 방법은 명령 창에 아래처럼 쓰는 것입니다. >> doc randi 도움말 창이 뜨면서 randi 사용법 문서를 볼 수 있습니다. 이 정도까지는 필요없고 간단히 사용법만 보고 싶다면 명령 창에 아래처럼 쓰면 됩니다. >> help randi 이보다 더 빠른 ..
단축키는 중요할 수도 있고 아닐 수도 있습니다. 하지만 자주 쓰는 기능의 단축키를 알아두면 분명 도움이 될 겁니다. 제가 자주 쓰는 단축키를 모아봤습니다. (주의: 본 글은 gif가 많습니다.) 0. 한장요약 1. 코드 전체 실행: F5 2. 코드 실행 중 디버그 모드 진입: CTRL + F5 - Breakpoint(중단점)과 기능적으로 동일합니다. - 프롬프트의 K>>는 키보드 입력이 가능함을 의미합니다. 3. 디버그 끝, 코드 실행 계속: F5 - 멈췄던 부분에서 이어서 실행을 계속합니다. 4. 디버그 중 코드 실행 종료: SHIFT + F5 - 코드 실행을 완전히 중지합니다. 5. 코드 실행 강제종료: CTRL + C - 명령 창에서 CTRL + C를 누르면 됩니다. 6. 변수명 일괄 변경: SHI..
개발자든 아니든 문서 작성은 중요합니다. 연구자에게도 비슷한 뜻의 유명한 문구가 있습니다. Publish or Perish - 번역: 논문으로 내지 않는 연구는 헛짓거리일 뿐이다. - 참고: 위키피디아 꼭 연구결과물을 논문으로 치환하는 거창한 작업이 아니더라도, 뭔가 했다면 기록을 남기는 것이 지식인의 책무 중 하나라고 생각합니다. 요즘 노션에 살짝 재미가 들어있습니다. 적은 노력으로 이쁜 문서를 만들어내기에 정말 좋은 툴이라고 생각됩니다. 노션 문서 작성을 위한 팁을 간단히 작성해보았습니다. 아래는 요약본이고, 풀 버전은 노션 링크를 참고해주세요.
eval은 마법의 명령어입니다. 아무리 복잡한 코드도 eval로 모두 생성할 수 있습니다. 그래서인지 많은 분들이 아직도 eval을 사용합니다. 특히 변수명을 A1, A2, A3, …처럼 생성하기 위해 eval을 자주 사용합니다. 이러한 연속된 이름의 변수 생성은 eval 없이 할 수 없기 때문이죠. 게다가 크기가 일정하지 않은 변수들은 하나의 numeric array에 담을 수 없으므로 eval을 이용하는 경우가 많습니다. 하지만 eval은 양날의 검입니다. global과 함께 대표적으로 지양해야 할 것 top2입니다. 괜히 eval을 evil이라고 하는게 아닙니다. 왜 eval을 쓰지 말아야 하는지, 어떤 대안이 있는지 살펴보겠습니다. eval의 문제점 1. 실행속도가 느려질 수 있습니다. 매트랩은 ..