Tag: software

  • Out of memory in Executor.map

    https://github.com/python/cpython/issues/74028 Executor.map 은 iterator에 있는 모든 입력을 submit 한 뒤에야 결과를 yield 합니다. 따라서 입력이 매우 크거나 무한의 데이터라면 out of memory 로 인해 죽게됩니다. 실제 에러는 이보다는 좀더 알기 어렵게 나오지만 메모리 사용량을 모니터링해보면 결국 메모리 탓인건 알 수 있습니다. Executor.map을 쓰겠다면 데이터를 잘라서 메모리에 맞게 주거나 아니면 producer consumer 형태로 큐에 데이터를 넣고…

  • Causal profiling

    실험적으로 일부 코드의 속도를 늦추거나 빠르게하면 해당 부분이 전체 latency 에 주는 영향을 알 수 있다는 방법이 causal profiling 입니다. https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger 만약에 distributed critical path tracing 이 있다면 좋겠지만 그런건 만들기도 어렵고 정착시키기도 어렵기때문에 정말 똘똘한 아이디어인듯 합니다. https://queue.acm.org/detail.cfm?id=3526967 비슷한 사례로 legacy code deprecation을 할때 카운터 넣어서 legacy code 로 얼마나 많은 traffic 이 가는지…

  • keras의 timeseries_dataset_from_array 사용시 주의할 점

    timeseries_dataset_from_array 에 대한 github issue 예를들어 X=[1, 2, 3], y=[2, 3, 4] 일때 sequence_length=2 라면 X=[1, 2], y=[3] 이 올거라고 생각하지만 아니다. y=[2]가 옴. 다시말해 y는 x 의 시작점의 값임. 간단하게는 y를 shift 해서 호출하면 해결되지만 API에 이런 점이 있다는걸 놓치기 너무 쉽다. 이슈가 그냥 닫혀버려서 더욱 아쉬움.

  • Google Cloud Workstation vs Codespace

    https://cloud.google.com/workstations?hl=ko#section-7 구글 클라우드 워크스테이션이란 서비스가 ec2 보다 ide 연결해서 쓰기는 훨씬 좋아보입니다. 유휴 시간이 길어지면 자동 종료로 비용 절약하고, 종료뒤 재시작시에는 보안 패치등이 잘 적용된 최신 이미지로 실행됩니다. 홈 디렉토리는 종료와 상관없이 유지됩니다. 다만 gcp 를 직접 사용하는 경우 대비 비용은 높고 (e2 기준 약 2배?) 현재까진 gpu 인스턴스는 없습니다. 비슷한 서비스로 github codespace가 있습니다.…

  • 간단한 파일 암호화

    개인 파일을 클라우드 등에 저장할때 보안이 걱정된다면 – 예를들어 동기화시킨 윈도우가 해킹 된다거나 – ccrypt가 정말 간편한 툴입니다. 이렇게 간단하게 암호화하고 풀때는 ccrypt -d 파일명으로 합니다.

  • 개발자로서 읽어볼 만한 책

    개발자로서 메니저로서 도움이 되었던 책들 적어봅니다. 새로운 프로젝트를 시작할 때, 일이 잘 안풀린다 싶을 때 이런책들을 보다보면 새로운 시각으로 문제를 접근할 수 있었습니다. 서로 다른 시각이 담겨 있기도 해서 다양한 시각을 익히는데도 도움이 되고요.

  • How to cache function output to the disk given pandas obj params

    joblib.Memory doesn’t seem to be performing correct hash computation, so I wrote a ‘cache’ decorator. It considers parameters and the argument values to determine if cached value can be used. As a bonus, this even can consider functions as the arguments. You need to write your own save(), load(), and should_use_cache(). The purpose of should_use_cache()…

  • 파이썬 positional only, keyword only argument

    https://peps.python.org/pep-3102/ 에 나온 내용입니다. 함수의 parameter 가 길어지다보면 foo(1, 2, ‘bar’, 4) 처럼 position으로 인자를 모두 넘기기보다 keyword argument로 foo(param1=1, param2=2) 형태의 코딩을 사용해야 실수를 줄일 수 있을때가 있습니다. 또는 매개변수가 필수는 아닌 옵션의 성격일 때도 있습니다. 앞서의 PEP는 keyword 형태로 인자를 지정하도록 강제하는 방법으로 문법은 다음과 같습니다. 본래 * 는 개수가 정해지지 않은 가변길이…

  • 모바일 크롬 다크모드와 글자 크기 조절

    모바일 크롬과 삼성 브라우저 (삼브)가 웹 페이지를 보여줄 때 큰 차이점은 다크모드가 컨텐츠 영역에도 제공되는지, 그리고 웹 사이트의 설정과 무관하게 글자 크기를 변경할 수 있는지이다. 그 두가지 설정을 크롬에서도 동일하게 하려면 다음과 같이 설정한다 이렇게 두가지를 enable 해주면 된다. 웹 보기가 불편해서 삼브를 써야했던 분들에게 도움이 되기를..

  • ssh-add 를 자동실행하는 방법

    https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-a-password-prompt 에서 다양한 방법을 본 결과 저는 그냥 keychain 쓰기로 했습니다. 맥에서는 ssh config 안에 키체인을 사용하게 자동으로 되서 신경을 안썼는데 chrome os 안의 리눅스는 설정을 해야하는군요. sudo apt-get install keychain 으로 설치한다음 ~/.bash_profile에 다음을 추가합니다. 그러면 재부팅때 마다 실행되면서 패스워드를 단 한번 요청하게 됩니다. 아래는 이미 패스워드가 입력된 상황입니다. 이외에도 ssh-ident 를 쓰는 방법도…