Category Archives: Uncategorized

AutoValue in Java

https://github.com/google/auto/blob/master/value/userguide/index.md @AutoValue 만 쓰면 인터페이스로부터 immutable value class를 만들어준다. 좋긴한데 뭔가 좋지 않다. 자바는 진짜 언어가 너무 복잡한거 아닌가.

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. […]