Tag: software

  • VSCode 에서 내가 작성한 모듈을 찾지 못해 ModuleNotFound가 나올 때

    여러가지 방법이 있지만 가장 간단한 방법은 내 프로젝트의 루트디렉토리 또는 소스 코드가 있는 디렉토리를 PYTHONPATH에 지정하는 것입니다. settings.json에 다음 라인을 추가합니다. 만약 windows라면 terminal.integrated.env.windows로 지정하면 됩니다. settings.json은 ctrl+p 를 눌러 command palette를 연다음 open user settings 를 검색하면 됩니다. 해당 필드를 업데이트 한 뒤에는 반드시 vscode를 재시작합니다. 이후에는 어떻게 실행해도 내가 작성한 모듈이 잘 보이게…

  • 트위터

    어느덧 이제 블로그를 한지 굉장히 오랜 시간이지나 얼마나 했는지도 모를만큼 시간이 지났습니다. 다른 모든 개발자 하늘처럼 나는 이제 글도 별로 쓰지 않는데 뭔가 배우는 것이 없어서가 아니라 그냥 글을 쓰지 않기 때문에 글을 쓰지 않고 있네요. 트위터에는 종종 글을 쓰는데 와서 봐 줬으면 좋겠습니다. @Minkoo 입니디.

  • typing.NamedTuple

    파이썬의 typing, types를 보면 신기한 것들이 많이 추가되고 있다. 최근 @golbin 님으로부터 배운 것중 하나는 NamedTuple. 파이썬 3.7부터는 @dataclass라는 annotation으로 가능해진다. 혹시 -> float 부분이 뭐지 싶으신 분은 Type Hints를 참고하시길.

  • choco

    윈도우용 유니버셜 인스톨러. https://chocolatey.org/ 예를들어 ssh 도 이렇게 설치 가능하다.

  • 파이썬 코드에서 중간에 콘솔 띄우는 디버깅

    파이썬 디버깅할 때 쉽게 하는 방법중 하나입니다. 코드를 실행하다가 중간에 로컬 변수를 모두 볼 수 있는 콘솔을 띄우려면 이렇게 합니다. 그러면 파이썬 콘솔이 a=3 뒤에 실행되고 곧바로 print(a) 로 그 내용을 볼 수 있습니다.

  • Rounding Half to Even

    반올림을 할 때의 문제는 0.5 입니다. 0.5를 제외하고는 절반은 작은 수, 절반은 큰수로 가죠. 예를들어 round(0.3)=0 이고 round(0.6)=1입니다. [0, 1] 사이의 수에 반올림을 하면 소수점 이하가 0.5인 경우를 제외하고는 round()를 하고나면 절반은 0, 절반은 1이되어 기대값이 0.5가 됩니다. 문제는 0.5인데, 통상 우리가 아는 반올림은 round(0.5)=1입니다. 이 방법을 Round Half Up이라고 합니다. 이 방법의 문제점은 대칭적이지…

  • AMP (Accelerated Mobile Pages)

    https://www.ampproject.org/ 성능을 우선한 설계와 캐싱으로 모바일 페이지 로딩 속도를 향상시키는 open source initiative. 이를 사용중인 회사에는 Google, LinkedIn, Twitter등이 있습니다.

  • TeraSort on Hadoop

    아파치 하둡에서 예~전에 했던 테라소트에 대한 페이퍼가 TeraByte Sort on Apache Hadoop에 있습니다. 입력 데이터가 상당히 흥미로운데 대회 홈페이지의 입력 데이터 FAQ를 보면 JouleSort의 경우 key가 10바이트이고 key의 각 자리는 95개의 value에 대응된다고 합니다. 따라서 key가 같다고 value가 같지는 않지만 key 순으로 정렬하면 value도 정렬됩니다. 그래서 http://www.slideshare.net/mobile/tungld/terasort에 있는 것처럼 키값을 여러개의 범위로 나누고 각 범위를 reducer에…

  • Rvalue reference와 함수의 반환값

    C++에서 const Klass&반환값 형태의 단점들을 쓴지도 시간이 많이 지났네요. C++11에서는 많은 것이 바뀌었습니다. 대표적인 것이 rvalue reference로 대표되는 Move semantics입니다. Move는 RVO(return value optimization)가 동작할 수 없을 때 객체의 복사비용을 줄이는 목적으로 사용됩니다. Move는 객체를 “복사”하는 대신 객체가 내부에 가진 포인터만 가져옵니다. 그런이유로 속도가 매우 빠릅니다. 이 글에서는 rvalue reference와 관련해 함수의 리턴 타입과 적절한…

  • if else 대신 빠른 return의 코딩 스타일

    회사에서 코드 리뷰를 하다가 알게된 if-else 대신 빨리 return하는 코딩 스타일인데 접해보지 않은 분들도 계실것같아 올려봅니다. stack overflow에도 Programming style: should you return early if a guard condition is not satisfied?란 제목으로 글이 올라와 있기도 하고 effective go에도 간단히 언급되어 있는 스타일입니다. stackoverflow에 있는 질문을 옮겨보자면 다음 두가지 코딩 스타일 중 어느것이 나은가라는 것입니다. 1.…