1.
지난 주에는 많은 일이 있었다. 친구 아버지의 장례식, 얼룩 첫 합주, 리얼라이즈 공연 구경, HarrisCam 갤러리 기능 구현(사진 크기 설정 이슈와 백업용 사진을 불러오는 기능까지!) 등등... 일주일 내내 하루하루를 정말 꽉꽉 눌러서 사용한 것 같은 느낌이다. 이번 주도 여러 할 일들이 있는데, 이제 이 스케쥴에 적응을 해야할 것 같다.
2.
HarrisCam의 갤러리 기능을 구현했다. 사진 크기 이슈와 'content://' scheme을 해결했다. 처음에는 휴대폰 외장메모리에 저장된 파일만 불러올 거라 생각하고 구현했는데, 백업 사진들도 불러 올 경우(실수로 눌렀는데 안 되더라... 이전까지는 이런 문제가 있을 줄 정말 몰랐다.)가 있을 수 있어서 그 부분을 InputStream을 이용해서 처리해줬다. 사진 크기는 결국 채우기 혹은 늘이기 옵션을 사용하기로 했다. 현재 '채우기'는 1번 이미지를 기준으로 다른 이미지들을 높이:너비 비율을 유지한 채 남은 여백을 채우는 옵션이고, '늘이기'는 1번 이미지의 크기를 기준으로 잡아 늘이거나 줄이는 옵션이다. 추후에는 채우기 옵션에서 이미지의 위치 조정(드래그 등을 통해서) 기능을 넣어야 할 것 같다.
갤러리에서 불러오는 이미지를 다루면서 비트맵 관리에 정말 신경을 많이 썼다. BitmapFactory.decode~는 메모리에 새로운 공간을 할당받는 것이고, Bitmap.create~는 기존의 Bitmap 객체에 Reference로 연결한다고 생각한다. 그 개념이 확실히 잡히기 전에 recycle() 때문에 삽질을 많이 했다. recycle() 된 Bitmap을 사용하지 말라는 에러도 많이 보고, recycle() 시점을 어디로 둬야하는 지도 많이 고민했다. 결국 앱의 메모리를 로그로 남겨서 메모리 누수가 없는 지 확인하면서 코딩을 했다. Bitmap을 다룰 때마다 항상 같은 고민을 하게 되는데, 몇 번 삽질을 반복하다보니 이젠 확실히 알겠다.
3.
'다양한 예제로 학습하는 데이터 구조와 알고리즘 for Java'을 읽고있는데, 책에 문제가 좀 있는 것 같다. 똑같은 문장을 바로 다음 줄에 쓰질 않나(마치 Ctrl + C, Ctrl + V 처럼), 분명 Java를 사용하면서 C의 struct 와 -> 연산자가 있질 않나, 오탈자가 좀 있다. 원래 C로 쓴 책을 Java로 옮기다가 생긴 실수인 것 같은데, 그저 복사 붙여넣기만 한 느낌이라 책의 완성도가 떨어지는 느낌이다. 그럼에도 불구하고 이 책의 좋은 점은 다른 책들과 달리 예제들이 많이 있다는 것이다. 간략한 개념 설명과 많은 예제는 이 책의 장점이라고 생각한다.(만약 이전에 자료구조와 알고리즘에 대해서 배우지 않았다면 이 책을 읽는 데 약간 힘들었을 것이다.)
4.
토요일, 리얼라이즈에서 공연은 정말 재밌었다. 얼룩, 문센트, 홍롱, 개차반이 참여했는데, 특히 홍롱이라는 밴드가 좋았다. 음악 스타일도 좋았고(디스코? 펑키? 그루브? 댄스락? 느낌이 났다) 멤버들이 실력이 대단했다. 얼룩은 역시 얼룩다운 공연을 했다고 생각한다. 어서 같이 무대에 서고 싶다. 문센트는 어쿠스틱 밴드였는데, 자작곡도 좋았지만 커버곡도 정말 좋았다. 'Daft Punk'의 'Get Lucky'와 'Madonna'의 'Music'을 커버했었다. Get Lucky는 약간 예상 가능했지만, Music은 정말 신선했다. 원곡의 리듬을 살리면서 어쿠스틱의 느낌을 잃지않은 느낌(악기 편성이 어쿠스틱이라 잃을 수 없었던 걸 수도...)이었다. 개차반은 맨 마지막 순서였는데 보컬분이 가볍게(?) 한 잔 하시고 공연을 했다. 개차반도 흥겨웠다.
5.
이번주 HarrisCam의 목표는 공유 기능을 구현하는 것이다. 'Socialauth Android'라는 라이브러리를 이용할 계획이다. 이전에 써봤을 때, 정말 간편하게 앱에 적용할 수 있었다. 공유 가능한 곳은 페이스북, 트위터, 텀블러 그리고 안드로이드에서 제공하는 공유 기능, 정도로 계획 중이다. 공유 기능을 구현하고 시간이 좀 남는다면, UI 쪽으로 많이(...) 개선해야 할 것 같다.
6.
이번 주는 계획대로라면 3, 4일은 수영 갈 수 있을 것 같다.
2014년 3월 17일 월요일
2014년 3월 14일 금요일
희한하게 바빴던 몇 일
1.
월요일에는 친구 아버지 장례식장에 갔다왔다. 다음날 발인이었지만 회사에서 시간을 빼지 못해 관을 들어줄 수 없었다. 사랑하는 사람을 먼저 보내는 일은 힘든 일일 것 같다. 아직 나는 그런 경험을 겪지 않았지만 겪게된다면 엄청 슬플 것 같다. 사람의 인생을 변화시킬 수도 있을 것 같다는 생각이 든다...
2.
화요일에는 얼룩 연습을 했다. 처음으로 맞춰보는 합주여서 많이 틀리기도 하고, 맞춰나가야 할 부분도 찾게됐다. 로켓에 빈 자리가 있다면 어느 자리든지 탑승하라는 말이 있는데, 내가 보기엔 얼룩은 로켓인 것 같다. 예전부터 좋아하는 밴드여서 같이 합주하는 게 더욱 좋다.
3.
HarrisCam은 갤러리에서 이미지를 불러와서 효과를 적용하는 부분까지 구현했다. 좀 더 세부적인 부분은 다듬어야하지만 큰 기능 부분은 구현이 되어 일정대로 움직이고 있어서 기쁘다. 중요하다고 생각하는 사진 크기 설정 이슈(https://github.com/datakun/HarrisCam/issues/7)에 대해서 고민을 했는데, 윈도우의 디스플레이 설정처럼 가로 맞춤, 세로 맞춤, 채우기, 늘이기 옵션을 주기로 결정했다. 이번 주말에는 사진 크기 설정 이슈를 해결하고 커밋을 해야겠다.
월요일에는 친구 아버지 장례식장에 갔다왔다. 다음날 발인이었지만 회사에서 시간을 빼지 못해 관을 들어줄 수 없었다. 사랑하는 사람을 먼저 보내는 일은 힘든 일일 것 같다. 아직 나는 그런 경험을 겪지 않았지만 겪게된다면 엄청 슬플 것 같다. 사람의 인생을 변화시킬 수도 있을 것 같다는 생각이 든다...
2.
화요일에는 얼룩 연습을 했다. 처음으로 맞춰보는 합주여서 많이 틀리기도 하고, 맞춰나가야 할 부분도 찾게됐다. 로켓에 빈 자리가 있다면 어느 자리든지 탑승하라는 말이 있는데, 내가 보기엔 얼룩은 로켓인 것 같다. 예전부터 좋아하는 밴드여서 같이 합주하는 게 더욱 좋다.
3.
HarrisCam은 갤러리에서 이미지를 불러와서 효과를 적용하는 부분까지 구현했다. 좀 더 세부적인 부분은 다듬어야하지만 큰 기능 부분은 구현이 되어 일정대로 움직이고 있어서 기쁘다. 중요하다고 생각하는 사진 크기 설정 이슈(https://github.com/datakun/HarrisCam/issues/7)에 대해서 고민을 했는데, 윈도우의 디스플레이 설정처럼 가로 맞춤, 세로 맞춤, 채우기, 늘이기 옵션을 주기로 결정했다. 이번 주말에는 사진 크기 설정 이슈를 해결하고 커밋을 해야겠다.
2014년 3월 9일 일요일
2014년 3월 둘째 주, 해야 할 일들 그리고 즐거운 일들
1.
해야 할 일 목록을 작성해봤다.
해야 할 일 목록을 작성해봤다.
<< 2014년 3월 둘째 주, 현재 해야 할 일들 >>
- Harris Cam
- 폰에 저장된 사진들을 불러와서 Harris Shutter 효과 적용
- 다양한 사이즈를 어떻게 다룰 것인가가 문제인 듯, 정책을 세워야 함
- 얼룩
- 편곡을 위해 모임
- 책 읽기
- 자구와 알고리즘 책(for Java), 매트랩 영상처리
당장 생각 나는 것은 이 정도다.
2.
'다양한 예제로 학습하는 데이터 구조와 알고리즘 for Java' 라는 책을 읽고 있는데, 트리 개념을 설명할 때 드는 생각이 있다. 보통 그림과 같이 설명을 하는데, 그림에서는 제일 상단에 있는 노드를 뿌리고 하고, 자식이 없는 맨 마지막 노드를 잎이라고 한다. 그렇다면 그림을 거꾸로 뿌리 노드를 맨 아래에 위치시키고, 잎 노드를 상단에 위치 시켜야하지 않는가 라는 생각을 하게 된다. 또, 노드와 노드를 잇는 간선을 가지라고 하지 않는가?(뭔가 의식의 흐름을 위해 뿌리가 위에 있고, 잎이 아래에 있는 그림을 사용하는 거겠지만...) 마치 바오밥 나무 같은 느낌이 들었다. 그냥 책을 읽다가 든 단상.
3.
요즘엔 감각적인 뮤직비디오가 많이 나온다. 특히 힙합쪽이 그런 뮤직비디오를 많이 만드는 것 같다. 그 뮤직비디오를 보며 많은 영감을 얻는다. 그 중, 'Rphabet의 Black Suit(Feat, San E)'의 뮤직비디오를 보고 화면이 깨진 듯한 효과가 재미있어서 Harris Cam에 적용하기로 했다. Harris Cam에 새로운 효과를 구현하고 적용하면서 이런 사진 효과들을 만드는 것에 재미를 느낀다는 걸 알게됐다. 최근에는 '다이나믹 듀오의 쌔끈해' 뮤직비디오가 눈에 들어왔다. 예전에 동영상을 편집하고 만드는 아르바이트 하면서도 생각한 건데, 프로그래밍 공부를 하지 않았다면 영상 편집이나 제작에 대해 공부를 했을 것 같다. 페르시아 왕자의 영화적 요소 들은 조던 매크너의 영화에 대한 관심 때문에 만들어졌을 거라 생각해본다. 나도 영상 효과 쪽에 관심이 있다는 걸 이 글을 쓰면서 확인하게 됐다.
3.
요즘엔 감각적인 뮤직비디오가 많이 나온다. 특히 힙합쪽이 그런 뮤직비디오를 많이 만드는 것 같다. 그 뮤직비디오를 보며 많은 영감을 얻는다. 그 중, 'Rphabet의 Black Suit(Feat, San E)'의 뮤직비디오를 보고 화면이 깨진 듯한 효과가 재미있어서 Harris Cam에 적용하기로 했다. Harris Cam에 새로운 효과를 구현하고 적용하면서 이런 사진 효과들을 만드는 것에 재미를 느낀다는 걸 알게됐다. 최근에는 '다이나믹 듀오의 쌔끈해' 뮤직비디오가 눈에 들어왔다. 예전에 동영상을 편집하고 만드는 아르바이트 하면서도 생각한 건데, 프로그래밍 공부를 하지 않았다면 영상 편집이나 제작에 대해 공부를 했을 것 같다. 페르시아 왕자의 영화적 요소 들은 조던 매크너의 영화에 대한 관심 때문에 만들어졌을 거라 생각해본다. 나도 영상 효과 쪽에 관심이 있다는 걸 이 글을 쓰면서 확인하게 됐다.
2014년 3월 7일 금요일
매트랩을 이용한 디지털 영상처리와 청축
1.
나를 포함한 4명이서 'MATLAB을 이용한 디지털영상처리' 라는 책을 읽고 있다. 거의 2, 3 주에 한 번씩 모이는데, 모일때마다 한 챕터씩 읽고 있다. 책에 있는 매트랩 예제들도 실습하면서 읽고있다. 디지털 영상처리 분야에서 유명한 곤잘레스의 책 을 매트랩을 통해 실습해볼 수 있는 책이다. 당연히 눈이 돌아가는 수식들이 많이 나온다. 하지만 매트랩으로 실습을 하니 수식을 증명하거나 설명을 제대로 하진 못해도 어느 역할을 하는 구나, 이런 이론이구나 하는 감각이 느껴진다.
2.
같은 챕터라도 처음 읽을 때와 두 번째 읽을 때, 세 번째 읽을 때 느낌이 다르다. 처음엔 이해가 안되더라도 무조건 읽고 책장을 넘기는 데 주력을 했다면, 두 번째 읽을 때는 어느정도 단어, 문장, 이해가능한 수식들이 눈에 들어온다. 그 다음부터는 읽을때마다 이해가 안갔던, 놓쳤던 부분들도 눈에 들어온다.(물론 제대로 이해하려면 아직 한참이다. 그나마 처음에 들었던 거부감이 많이 줄었다.) 역시 반복 학습이 (그 과정이 지루하긴 하지만...) 효과가 좋은 것 같다.
3.
'매트랩을 이용한 디지털영상처리'를 다 읽고나면 Open CV를 책을 잡고 공부할 계획이다. 예전에 연구실에서 프로젝트 진행을 C++ 로 다뤄봤었고, 텀 과제를 C#으로 래핑한 Open CV로 만들었었다.(이 때 만들었던(3-4년 전?) 핸드 프레젠터-손 안대고 카메라 앞에 손을 좌우로 움직이면 다음 화면, 이전 화면으로 슬라이드를 이동 시켜주는 프로그램-는 베가의 그것과 비슷하게 닮았다고 생각한다. TV 광고를 보면서 내가 만들었던 프로그램이 생각이 났다.) 이번에는 C나 Python으로 Open CV를 다뤄 볼 생각이다. 뭔가 공부를 할 때는 목표를 잡는 게 좋다는 상곤 행님의 의견을 따라 Open CV로 간단한 프로젝트를 만들어볼까 생각 중이다.(매트랩 영상처리 책을 다 읽으면 6월은 되어야하니 그 이후에 Open CV를 제대로 공부하지 않을까 생각된다.)
4.
상곤 행님으로부터 청축을 구했다. 짭짭거리는 소리가 너무 좋다! 중고라서 깨끗하게 키보드 청소도 시켰다.(분해를 하고나니 안에 먼지와 머리카락이 후덜덜하더라...) 키캡은 따로 빼서 물에 씻어서 말리는 중이고, 스위치가 있는 바닥은 물티슈와 칫솔로 꼼꼼히 닦아냈다. 내일이 되면 깨끗한 키보드로 일기를 쓸 수 있겠지!!!
나를 포함한 4명이서 'MATLAB을 이용한 디지털영상처리' 라는 책을 읽고 있다. 거의 2, 3 주에 한 번씩 모이는데, 모일때마다 한 챕터씩 읽고 있다. 책에 있는 매트랩 예제들도 실습하면서 읽고있다. 디지털 영상처리 분야에서 유명한 곤잘레스의 책 을 매트랩을 통해 실습해볼 수 있는 책이다. 당연히 눈이 돌아가는 수식들이 많이 나온다. 하지만 매트랩으로 실습을 하니 수식을 증명하거나 설명을 제대로 하진 못해도 어느 역할을 하는 구나, 이런 이론이구나 하는 감각이 느껴진다.
2.
같은 챕터라도 처음 읽을 때와 두 번째 읽을 때, 세 번째 읽을 때 느낌이 다르다. 처음엔 이해가 안되더라도 무조건 읽고 책장을 넘기는 데 주력을 했다면, 두 번째 읽을 때는 어느정도 단어, 문장, 이해가능한 수식들이 눈에 들어온다. 그 다음부터는 읽을때마다 이해가 안갔던, 놓쳤던 부분들도 눈에 들어온다.(물론 제대로 이해하려면 아직 한참이다. 그나마 처음에 들었던 거부감이 많이 줄었다.) 역시 반복 학습이 (그 과정이 지루하긴 하지만...) 효과가 좋은 것 같다.
3.
'매트랩을 이용한 디지털영상처리'를 다 읽고나면 Open CV를 책을 잡고 공부할 계획이다. 예전에 연구실에서 프로젝트 진행을 C++ 로 다뤄봤었고, 텀 과제를 C#으로 래핑한 Open CV로 만들었었다.(이 때 만들었던(3-4년 전?) 핸드 프레젠터-손 안대고 카메라 앞에 손을 좌우로 움직이면 다음 화면, 이전 화면으로 슬라이드를 이동 시켜주는 프로그램-는 베가의 그것과 비슷하게 닮았다고 생각한다. TV 광고를 보면서 내가 만들었던 프로그램이 생각이 났다.) 이번에는 C나 Python으로 Open CV를 다뤄 볼 생각이다. 뭔가 공부를 할 때는 목표를 잡는 게 좋다는 상곤 행님의 의견을 따라 Open CV로 간단한 프로젝트를 만들어볼까 생각 중이다.(매트랩 영상처리 책을 다 읽으면 6월은 되어야하니 그 이후에 Open CV를 제대로 공부하지 않을까 생각된다.)
4.
상곤 행님으로부터 청축을 구했다. 짭짭거리는 소리가 너무 좋다! 중고라서 깨끗하게 키보드 청소도 시켰다.(분해를 하고나니 안에 먼지와 머리카락이 후덜덜하더라...) 키캡은 따로 빼서 물에 씻어서 말리는 중이고, 스위치가 있는 바닥은 물티슈와 칫솔로 꼼꼼히 닦아냈다. 내일이 되면 깨끗한 키보드로 일기를 쓸 수 있겠지!!!
2014년 3월 6일 목요일
UI
상곤 행님이 카메라앱 UI를 보여줬다. 카메라 프리뷰에 셔터 버튼만 있었다. 화면 옆을 쓸면 메뉴가 나오고, 위를 쓸면 또다른 메뉴가 나왔다. 심플한 게 멋졌다. HarrisCam의 목표인 실행하고, 찍고, 공유(저장)하는 것과 맞다고 생각한다. 일부러 정사각형의 사진만 고집했는데, 굳이 그럴 필요 없이. 기기의 화면 전체를 카메라 프리뷰로 보여주고 그대로 저장하는 게 더 좋지않을까 생각해본다.
2014년 3월 5일 수요일
HarrisCam 진행상황
1.
이미지를 회전 시켰고, 회전 시킨 이미지를 정사각형으로 잘라냈다. 잘라낸 이미지에 Harris Shutter 효과를 적용했고, 적용한 이미지와 잘라낸 이미지들을 파일로 저장했다.
2.
내일(수요일)이면 Google Maps Android V2 세미나를 진행한다. 분량은 많지 않은데 잘 이끌 수 있을지가 여전히 걱정거리다.
3.
아이패드 에어 정말 좋다. 이동 중에 한 자라도 더 읽게 된다.
이미지를 회전 시켰고, 회전 시킨 이미지를 정사각형으로 잘라냈다. 잘라낸 이미지에 Harris Shutter 효과를 적용했고, 적용한 이미지와 잘라낸 이미지들을 파일로 저장했다.
2.
내일(수요일)이면 Google Maps Android V2 세미나를 진행한다. 분량은 많지 않은데 잘 이끌 수 있을지가 여전히 걱정거리다.
3.
아이패드 에어 정말 좋다. 이동 중에 한 자라도 더 읽게 된다.
2014년 3월 3일 월요일
Harris Shutter 적용
1.
HarrisCam에서 가장 중요한 기능인 Harris Shutter 효과를 구현했다. JNI를 사용하지 않고 Java 위에서 비트맵 로우(Raw) 데이터를 논리 연산을 통해 구현해보려고 했으나 실패했다. 안드로이드는 RGB_565 방식으로 비트맵을 저장하고 읽기 때문에 비트맵에 따라 byte 배열의 크기가 제각각이다. 그래서 RGB_565 방식을 RGB_888 방식으로 바꿀 필요가 있는데, HarrisCam 우선 순위에는 기능 구현을 먼저 두기 때문에 나중에 정말 할 일이 없으면 구현해보기로 했다.
2.
이제 남은 것은 사진을 정사각형으로 자르는 것, 부가 편의 기능(해상도나 보조선 등등), 적절한 필터 효과 찾아서 적용하기, 사진 편집(회전, 자르기 등등) 기능, 공유 기능 그리고 갤러리에서 사진을 불러와서 효과를 적용하는 기능이 남았다. 천천히 하나씩 구현하다보면 6월에는 완성할 것 같다.
3.
이번 주 수요일에 GDG에서 진행할 MapFragment 세미나 부분을 준비했다. 슬라이드 자료는 완성됐고, 예제 프로젝트도 만들어놨다. 떨지 않고 발표를 잘 하는 것과 시간 배분을 잘 하는 것만이 남았다. 몇 번을 연습해도 사람들 앞에서 발표나 말하는 것은 떨리는 일이다. 머리 속이 하얗게 변하고 발표 현장을 이끌어 나가지 못한다. 이번에는 좀 더 연습을 해서 잘 이끌어야 겠다.
4.
이번 주에는 책을 더 빨리 읽는 노력을 해야겠다. 출퇴근이나 이동할 때마다 아이패드에 넣은 책들을 읽고 있는데 정말 느리게 읽고있는 게 느껴진다. 읽어야 할 책들이 많다. 틈틈히 읽어야겠다.
HarrisCam에서 가장 중요한 기능인 Harris Shutter 효과를 구현했다. JNI를 사용하지 않고 Java 위에서 비트맵 로우(Raw) 데이터를 논리 연산을 통해 구현해보려고 했으나 실패했다. 안드로이드는 RGB_565 방식으로 비트맵을 저장하고 읽기 때문에 비트맵에 따라 byte 배열의 크기가 제각각이다. 그래서 RGB_565 방식을 RGB_888 방식으로 바꿀 필요가 있는데, HarrisCam 우선 순위에는 기능 구현을 먼저 두기 때문에 나중에 정말 할 일이 없으면 구현해보기로 했다.
2.
이제 남은 것은 사진을 정사각형으로 자르는 것, 부가 편의 기능(해상도나 보조선 등등), 적절한 필터 효과 찾아서 적용하기, 사진 편집(회전, 자르기 등등) 기능, 공유 기능 그리고 갤러리에서 사진을 불러와서 효과를 적용하는 기능이 남았다. 천천히 하나씩 구현하다보면 6월에는 완성할 것 같다.
3.
이번 주 수요일에 GDG에서 진행할 MapFragment 세미나 부분을 준비했다. 슬라이드 자료는 완성됐고, 예제 프로젝트도 만들어놨다. 떨지 않고 발표를 잘 하는 것과 시간 배분을 잘 하는 것만이 남았다. 몇 번을 연습해도 사람들 앞에서 발표나 말하는 것은 떨리는 일이다. 머리 속이 하얗게 변하고 발표 현장을 이끌어 나가지 못한다. 이번에는 좀 더 연습을 해서 잘 이끌어야 겠다.
4.
이번 주에는 책을 더 빨리 읽는 노력을 해야겠다. 출퇴근이나 이동할 때마다 아이패드에 넣은 책들을 읽고 있는데 정말 느리게 읽고있는 게 느껴진다. 읽어야 할 책들이 많다. 틈틈히 읽어야겠다.
2014년 3월 2일 일요일
인정
자기가 좋아하는, 따르는 사람에게 인정받는 것만큼 좋은 일이 어디있을까? 하지만 그 반대로 무시 당하거나 인정받기 위해 노력했음에도 불구하고 인정받지 못한다면 많이 슬플 것이다. 사람이 사람을 싫어하는 것보다 사람을 무시하는 것이 더욱 슬픈 일이듯이...
2014년 3월 1일 토요일
정리
정리를 했다. HarrisCam에서 상곤 행님은 나와 따로 길을 가기로 했고, 영상처리 세미나도 아마 상곤 행님이 나가거나 내가 나가거나 둘 중 하나가 될 것 같다. 새로 밴드를 시작한 게 그 이유다. 나는 상곤 행님에게 믿음을 주지 못했고, 결과로 보여주지 못했다.
HarrisCam은 완성 시킬 것이다. 그리고 공부도 계속 진행 한다.
피드 구독하기:
글 (Atom)