2016년 11월 25일 금요일

sorting big file and searching without index

용량이 큰 텍스트 파일을 소팅하고 인덱스 없이 특정 키를 찾는 것을 해봤다. 결과는 꽤 괜찮아서 쓸만했다.  내가 해본 것은 수십기가 파일이었는데 그보다 더 큰 파일도 잘 될것 같다. 방법은 다음과 같다.
1. 하둡으로 큰 파일을 소팅한다.
2. sgrep으로 검색. binary search이므로 매우 빠르다.

소팅은 몇십, 몇백기가라도 하둡으로 하면 1분 정도 내에 할 수 있다. 싱글 머신에서 sort 명령으로 시도하면 훨씬 오래 걸린다. 메모리가 충분하지 못하면 디스크 스왑이 많아지므로 더 오래 걸린다. 하둡으로 소팅할 때 파티셔너를 직접 만들어줘야 한다. 키 값에 따라 리듀서가 구분되도록 하는 것이다.

sgrep은 매우 빨라서 수십기가 파일에서도 0.001초 내에 금방 검색 가능하다.

자세한 내용은 나중에 더 정리해봐야겠다.

2016년 11월 15일 화요일

scala spark

요즘 오랜만에 신나게 열정적으로 개발을 하고 있다. scala의 매력에 빠졌다. 앞으로 주력 언어를 perl 대신 scala로 사용하고자 한다. 아직 scala가 덜 익숙해서 좀 어려운 부분이 있지만 참 매력적인 언어이다. perl 못지 않게 간결하게 쓸 수도 있고, 매우 유연해서(flexible) 한가지 작업을 하기 위한 다양한 코드 표현이 가능하다. 그리고 procedural가 아닌 functional 언어라서 데이터 중심의 패러다임과 병렬성을 적용하기 좋다.

이제 웬만한 map reduce를 scala, spark으로 작성할 수 있게 됐다. map reduce로 6개 job을 6분 동안 실행시켰던 것을 scala, spark 로 만들어서 실행해보니 2분이 걸렸다.

아직 불편한 것 중 하나는 디버깅, 테스트가 쉽지 않다는 것이다. perl로 할 때는 소스 코드 조금 고치고 바로 그냥 다시 돌려보면서 할 수 있는데, scala, spark으로 할 때는 소스 코드를 고치면 컴파일을 다시해야 하고(sbt 컴파일 하는데 수초 정도 시간 걸림), 일부분만 실행해보는 것이 어려워서 작은 테스트 데이터로 해봐야하고, 실행 중간 값을 출력해보기 어렵다. 그리고 결과 데이터를 stdout으로 간단히 출력해보는 것도 가능할 것 같은데 아직 해보지는 않았다. 좀 더 빠르고 쉽게 간단히 디버깅, 테스트 하면 좋겠다. sbt를 데몬 형태로 띄워두고 빠른 컴파일/인터프리터 방식이 있다는데..

2016년 11월 9일 수요일

airdrop 으로 아이폰 사진 원본 전송

airdrop 으로 아이폰 사진을 맥북으로 전송해보았다. 처음 연결할 때 양쪽 모두 한번씩 사용자 아이콘이 뜨는 것을 확인하고 클릭해주어야 한다. 그 다음부터는 받는 쪽 확인은 필요없이 그냥 보내기만 하면 받는쪽(맥북)의 '다운로드' 디렉토리에 바로 저장된다.

원본 파일이 정확하게 복사되는 것까지 확인했다. 아이폰에서 HashPhotos 앱으로 사진 파일 크기를 바이트 단위까지 확인하였고, 맥북에 전송된 파일 크기 역시 정확히 일치하였고, GPS를 포함한 모든 메타데이터도 포함되어 있었고, flickr에 저장했던 파일을 다운 받아서 diff 명령으로 비교해봐도 정확히 일치했다. 즉, airdrop으로 사진 파일 원본이 정확히 전송되는 것은 확실하다.

참고로, 맥북의 '사진' 앱으로 열어서 finder로 끌어다가 복사하면 원본 그대로 복사가 안되고 약간 크기가 작아지거나 메타 데이터가 빠지는 것 같다.

airdrop 전송시 약간 문제점은 있다. 사진 하나씩 전송할 때는 파일이름(IMG_XXXX.JPG)까지 정확히 전송되는데, '특별한 순간' 탭(사진앱 하단에서 첫번째 탭)에서 사진을 2개 이상 골라서 전송하면 파일은 정확히 전송되지만, 파일 이름이 FullSizeRender.jpg, FullSizeRender 2.jpg 와 같은 형태로 변경된다. 그런데 '앨범'(사진앱 하단에서 4번째 탭) -> '모든 사진' 내에서 2개 이상 골라서 전송했을 때는 파일 이름까지 모두 정확히 전송된다. 그런데 '모든 사진' 앨범은 백업, 복원에 의해 종종 순서가 뒤섞이는 문제가 있기 때문에 날짜 단위 벌크 선택이 어려운 문제가 있다. 그래도 대충 많은 사진을 전송해서 '생성일' 기준으로 정렬해서 골라내면 될 것 같다.

해보다가 발견한 문제가 있는데, 아이폰 iOS 버전 10 이상일 때, 맥북 사진앱에서 '가져오기'를 하려면 맥북도 macOS Sierra 이상이어야 한다. El Capitan이면 사진앱에서 '가져오기'를 선택했을 때 아무 것도 안보인다.

2016년 11월 3일 목요일

맥북 프로의 force touch

최근 맥북 프로를 쓰기 시작했다. 1-2주 써봤다. force touch를 처음 써보는데 아직 별로 유용한건지 모르겠다. force touch를 쓸 일이 별로 없었다. 손가락과 팔에 힘이 더 드는데, 어떤 경우에 유용한지 잘 모르겠다. 연속적인 힘의 강도를 인식하는 것은 아니고, 카메라 반셔터 같은 느낌이다. 아, 유용한 경우가 한가지 있다. 세게 꾹 누르면 커서에 있는 단어를 사전에서 찾아 뜻을 보여주는 창이 표시된다.(그림1) 그런데 꾹 누를 때 꽤 힘을 많이 줘야 눌린다.

그림1:

2016년 11월 1일 화요일

맥 시에라에서 Microsoft Office

El Capitan까지도 오피스가 잘 되었는데(가끔 안될때도 있었지만), 시에라 업데이트한 후로는 Microsoft Office가 전혀 되지 않는다. 오피스는 최신 버전인데 Excel, Powerpoint, Word 모두 실행하면 오류 메시지 창만 나온다. 그래서 요즘은 Numbers, Keynote, Pages를 쓴다.

2016년 10월 31일 월요일

맥북 팜레스트(palmrest)

날씨가 꽤 쌀쌀해졌다. 맥북 팜레스트에 손목을 올려두고 작업을 하면 손목에 좀 한기가 느껴진다. 알루미늄 케이스라서 그런지 더 차갑게 느껴진다. 부드럽고 얇은 스킨 같은 것을 깔거나 붙이면 좋겠다. 애플 공식 홈페이지에는 팜레스트나 키보드 부분에 아무것도 붙이지 말라고 되어 있는데, 붙이고 덮개를 닫으면 안되겠지만 맥북을 열어 사용할 때만 두고 덮을 때는 빼두면 괜찮지 않을까.. 이 글을 쓰고 있는 동안에도 손목이 약간 차가운 것 같다.

2016년 10월 30일 일요일

아이폰 사진 앱

아이폰 업데이트 할 때마다 사진 앱에 저장된 사진들이 뒤죽박죽이 된다. 최근 ios 10에서 10.1로 업데이트 할때도 그랬다. 사진 개수가 1만개를 초과하니 그런 현상이 생기는 것 같다. 아이폰 사진 파일이름은 IMG_0001.JPG 이런 형식이라 9999 넘어가니 이상해진다. 사진이 없어지거나 변경되는 건 아니지만 순서가 뒤섞인다. '모든 사진' 앨범(카메라 롤)은 순서가 뒤섞이지만 다행히도 시간 순서로 볼 수 있는 별도 탭이 있다. 하지만 다른 앱에서 최근 사진을 접근할 때는 시간 순서 접근은 안되고 앨범 단위로만 접근해야해서 최근 사진 찾기가 어렵다. 대신할 방법은 있다. 사진앱에서 내가 불러들일 사진을 즐겨찾기 표시(하트)를 해서 즐겨찾기 앨범으로 접근하면 된다. 그러나 이건 그다지 깔끔한 방법이 아니므로 ios 사진앱 버그가 속히 해결되면 좋겠다. 참고로 한번 순서가 뒤섞인 이후 찍은 사진들은 순서를 잘 유지한다. 그러나 또 ios 업데이트를 하거나 백업 복원을 하면 또 순서가 뒤섞인다. 그리고 재부팅 한 후에도 뒤섞이기도 한다. 사진 파일 이름들을 확인해봤지만 파일 이름 순서로 정렬되는 것도 아니고 어떤 기준으로 섞이는지 모르겠다. 아무래도 ios 버그인 것 같다.

그리고 ios 10부터 도입된 얼굴 인식 기능에 좀 문제가 있다. 인식된 얼굴에 이름을 써둔 것이 백업이 안되었는데 10.1부터 아이클라우드 백업이 된다고 한다. 그러나 여전히 문제가 있다. 백업은 되더라도 얼굴 이름 정보가 다른 기기와 동기화가 되지 않는다. 처음에는 열심히 얼굴 이름을 붙였는데 다른 장비와 동기화가 안되니 이름을 붙일 동기나 의욕이 사라져버렸다. 사진들은 모두 동기화가 잘 되는데 얼굴 이름이 같이 동기화 되지 않는다는 건 좀 이상하다.
또 얼굴 클러스터링이 너무 지나치게 파편화 되어서 얼굴이 1개인 클러스터 그룹이 너무 많이 생긴다. 그래서 얼굴 이름 붙이는 작업도 너무 번거롭다. 참고로 구글 포토의 얼굴 인식 기능은 별로 파편화 되지 않는다.

2016년 10월 29일 토요일

맥북 프로

맥북 프로를 사용하기 시작했다. 사무실에서는 잘 몰랐는데, 조용한 밤에 써보니 약간의 소리가 들린다. 팬 소리는 전에 썼던 맥북에어에도 있었는데, 팬 소리 외에 디스크 긇는 듯한 딸깍딸깍 소리가 작게 들린다. SSD 디스크니까 전혀 소리가 안날 줄 알았는데..