THE BRAIN VS THE MIND
Source: http://bennesvig.com/the-brain-vs-the-mind/
Right now I’m fighting the temptation for a second small piece of cheesecake. It’s 15 feet from me in the refrigerator and I’m hungry. That doesn’t make good math.
But then my mind interrupts my brain and I’m back to focusing on work.
Life is a continual struggle between the brain and mind. The brain is focused on the short term and seeks pleasure while the mind has the end in mind. If you just obey your brain, you’ll quickly be fat, jobless, and out of luck.
Being successful in any activity requires empowering the mind over the brain. The brain gets distracted, tired, lazy, craves safety, and always has a reason to delay doing something.
The mind focuses on what you really want.
The brain wants cheesecake. The mind wants to lose 5lbs.
The brain wants to put off publishing a blog post because it might not be ready. The mind publishes because ideas need air.
If you want to accomplish any of your goals it requires giving your mind priority over your brain.
-----
다음 문장이 참 인상적이다..
"If you just obey your brain, you’ll quickly be fat, jobless, and out of luck."
Cheers,
June
목요일, 9월 29, 2011
금요일, 9월 23, 2011
모바일앱 시장현황 및 마케팅을 위한 25가지 방법
모바일앱 시장현황 및 마케팅을 위한 25가지 방법
Source: http://www.slideshare.net/makiind/25-9364639
-----
Cheers,
June
Source: http://www.slideshare.net/makiind/25-9364639
모바일앱 시장현황 및 마케팅을 위한 25가지 방법
View more presentations from 마킨드(makiind)
-----
Cheers,
June
목요일, 9월 22, 2011
Behance Conference
Behance Conference (http://the99percent.com/)
1% Inspiration
99% Perspiration
Ji LEE
Google Creative Labs
Creative Director
Source: http://www.youtube.com/watch?v=n8HllU3e6zI&feature=player_embedded#!
-----
오랜만에 정말 괜찮은 발표를 본 것 같아서 기분이 참 좋다... ^^
Cheers,
June
1% Inspiration
99% Perspiration
Ji LEE
Google Creative Labs
Creative Director
Source: http://www.youtube.com/watch?v=n8HllU3e6zI&feature=player_embedded#!
-----
오랜만에 정말 괜찮은 발표를 본 것 같아서 기분이 참 좋다... ^^
Cheers,
June
수요일, 9월 14, 2011
서비스디자인 시대가 온다
서비스디자인 시대가 온다 - 2/3 - Presentation Transcript
Source: http://www.slideshare.net/usableweb/23-4688147
서비스디자인 시대가 온다 - 2/3 - Presentation Transcript
-----
Cheers,
June
Source: http://www.slideshare.net/usableweb/23-4688147
서비스디자인 시대가 온다 - 2/3 - Presentation Transcript
- 서비스디자인 시대가 온다 2010. 7. 한국디자인진흥원 정책개발팀 윤성원
- UX디자인과 서비스디자인
- “user experience design” ‘사용자경험디자인’ 키워드 검색 양상 2004년부터, 미국 주도 사용
- “service design” ‘서비스디자인’ 키워드 검색 양상 오래 전부터, 전세계 고른 분포
- “service science”
- “service marketing”
- "service engineering"
- 개념 경쟁의 선두는? 80 60 40 20 service service service service engineering marketing science design
- 현재 일반적으로 받아들여지고 있는 UX와 관련 분야간 관계 출처 : 더 나은 사용자 경험(UX)을 위한 『인터랙션 디자인』, 댄 새퍼
- 현재 일반적으로 받아들여지고 있는 UX, 서비스디자인, 관련 분야간 관계 출처 : 오경순 SADI UX 교수, 2009
- 현재 일반적으로 받아들여지고 있는 UX의 정의와 관련 분야와의 포함 관계 CX(Customer Experience)는 광고, 포장, 제품, 서비스, 사용성, 신뢰도, 고객관리 등 기업이 제공하는 모든 요소를 포함(2007.02, 메이어&슈워거) 일반적으로 UI(User Interface)가 사용자와 대상간의 <대면부분>에서 발생되는 요소 라 한다면 CX는 이보다 훨씬 광의로 사용됨. CX와 UI의 중간 단계가 UX인데 ‘고객 경험’과 ‘사용자경험’은 일치할 수도, 안 할 수도 있음. User User Customer GUI Interface Experience Experience * 현재 국내에서는 일반적으로 CX와 UX는 거의 동일 개념으로 사용되고 있음 출처 : 민영삼 The DNA 대표, 2008
- UX디자인과 서비스디자인의 관계 GUI / UX / CX User Customer 협의의 ‘사용자’란? ‘복잡한 기기IT관련제품 조작자로서의 고객’ 을 한정하여 의미
- UX디자인과 서비스디자인의 관계 GUI UX CX Design =Service Design
- 물적가치 중심의 경제에서 경험가치 중심의 경제로 출처 : http://www.slideshare.net/servicedesign/designing-services
- “가치 기준이 변했다” 출처 : 오경순 SADI UX 교수, 2008
- 아이폰의 성공요인은? 가격? 성능? 디자인? 브랜드 로열티? 앱스토어?
- 아이폰처럼 성공하려면? 제품이 아니라 고객이 서 비스를 이용하는 경험을 향상시켜야 한다 제품 소유-폐기에 이르기 까지 상관된 전 프로세스 를 디자인해야 한다
- 서비스디자인이 다루는 범위
- Service Design terminologies 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Service System Scopes The Massage Experience Touchpoint
- Service System Scopes Touchpoint 인테리어디자인 전통적 디자인의 영역 제품디자인 CI디자인 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Service System Scopes Touchpoint Touchpoint 패키지디자인 웹디자인 전통적 디자인의 영역 전통적 디자인의 영역 그래픽디자인 제품디자인… 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Service System Scopes 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Service System Scopes Portfolio of Methods : 서비스디자인 방법론 CX디자인 방법론 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- 서비스디자이너가 하는 일
- 서비스디자이너들은 어떤 일을 하는가? Liveㅣwork 출처 : http://vimeo.com/5936503
- 서비스디자이너들은 어떤 일을 하는가? 1. 서비스디자이너는 고객이 서비스 이용 시 겪게 되는 모든 경험들을 주의 깊게 관찰한다. Touchpoint, Stakeholder 관계도 2. 서비스디자이너는 서비스들을 손으로 만질 수 있고, 눈으로 볼 수 있는 형태로 만든다. Customer Journey Map, Service Blueprint, Service Prototyping 3. 서비스디자이너는 새로운 가치를 창출하는 서비스 컨셉을 제시한다.
- 1. 고객이 서비스 이용시 겪게 되는 모든 경험들을 주의 깊게 관찰한다. 고객으로서 직접 경험해보기 렉서스 개발팀 이야기의 교훈… 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO
- 2. 서비스들을 손으로 만질 수 있고, 눈으로 볼 수 있 는 형태로 만든다. 서비스 스케이프 모형 개발 서비스 실연 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO
- 3. 새로운 가치를 창출하는 서비스 컨셉을 제시한다. “열차가 아니라 여행을 디자인하라” 1999. IDEO 팀 브라운 출처 : 피어인사이트 발표자료, 2005(IDEO의 아셀라 고속철도서비스 프로젝트, 1999) 열차의 좌석디자인에서 시작된 일이 ‘21C철도교통의 새 비전’을 제시하다
- 이제까지의 디자인프로세스
- The 'double diamond' design process model 출처 : The 'double diamond' design process model, 영국 디자인카운슬 http://www.designcouncil.org.uk
- The 'double diamond' design process model 출처 : RED Project Report, 영국 디자인카운슬 http://www.designcouncil.org.uk
- 사용자경험디자인과 서비스디자인의 방법론
- UX디자인을 위해서는 사용자 욕구를 이해하는 것이 중요! 리서치가 중요해짐
- 리서치의 성격 생성리서치 평가리서치 generative research evaluative research 아이디어 평가를 위함 목적 아이디어를 찾기 위함 문제를 발견하기 위함 특징 정성적, 맥락적 정량적 적절한 기준 만들기, 필요역량 창의적 해석 셈하기 사용자관찰, 사용성 테스트, 방법론 예 포커스그룹인터뷰 성능판정테스트 * 사용자경험에 미쳐라, 피터 머홀즈 외, 2009, 81~86page 내용 중 인용, 일부 수정
- 해외 주요 서비스디자인기업의 서비스디자인 프로세스 출처 : 서비스디자인 측면에서 공공서비스평가 방향연구, 이화여자대학교 석사학위 논문, 2009, 한수련
- UX디자인 프로세스와 방법론 기본 프로세스가 동일하며 실행 방법도 매우 유사하나, 다른 점이 있다. 출처 : http://project.cmd.hro.nl/cmi/hci/toolkit/index.php
- 디자인방법론과 다른 서비스디자인 방법론
- Methods & tools : 고객과 공급자간의 다양한 유형의 접촉점을 정의하고 시각화시키기 위해 사용하는 방법
- Service Inventory 터치포인트 정의하기
- Service Inventory 터치포인트 정의하기
- Methods & tools : touchpoint card
- Methods & tools : 서비스의 이해관계자를 정의하고, 고려해야 할 역학 관계를 총체적으로 파악하기 위해 사용하는 방법
- Stakeholder motivation matrix •원문 출처 : Arnold Tukker & Ursula Tischner(2006), ‘New Business for Old Europe’ •출처 : 공공서비스 융합 서비스모델 개발 표준가이드, 2009, 베타리서치앤컨설팅
- 서비스 시각화 사례 호텔 도서대여 서비스
- Methods & tools : Customer Journey Map 고객이 서비스를 경험하게 되는 과정을 정의하고, 그 과정에서 생기는 고객 체험을 시각화하기 위해 사용하는 방법 출처 : 피어인사이트 발표자료, 2005(IDEO의 아셀라 고속철도서비스 프로젝트, 1999)
- Customer Journey Map Case : Adaptive path (Learn English)
- Methods & tools : Customer Journey Map 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Customer Journey Map Case : Maya design (Persona profiles & CJ Map)
- Customer Journey Map Case : experience solutions(Gym Sign up)
- Customer Journey Map
- Customer Journey Map Case : nForm
- Customer Journey Map Case : nForm
- Customer Journey Map Case : nForm
- Customer Journey Map “Experience wheel”, Bruce Temkin
- Methods & tools : emotional journey map
- Methods & tools : emotional journey map 출처 : IDEO
- Methods & tools : 보이지 않는 서비스를 가시화하여 문제를 찾고 혁신하기 위해 사용하는 방법 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Methods & tools : Service Blueprint 전형적인 서비스블루프린트의 예 Customer Customer Customer Arrives pays bill Customer Journey Customer Customer waits receives order Customer departs Touchpoint LINE OF CUSTOMER INTERACTION Greet Take order Server bags Server Contact Person Customer order delivers order LINE OF VISIBILITY Order Order transferred Prepared to kitchen LINE OF INTERNAL Support Process Sales tracked INTERACTION 출처 : Thomson Corporation, 2008
- Methods & tools : Service Blueprint 전형적인 서비스블루프린트의 예 Customer Customer Customer Customer Customer Customer 전통적인 Design이bill Arrives pays 다루는 범위(Touchpoint에 해당되는 Design) waits receives order departs 커뮤니케이션디자인 커뮤니케이션디자인 커뮤니케이션디자인 인테리어디자인 인테리어디자인 인테리어디자인 LINE OF CUSTOMER 제품디자인 제품디자인 제품디자인 INTERACTION Customer Take order Greet eXperience order Design이 다루는 범위 Server bags Server Contact Person Customer delivers order LINE OF VISIBILITY Order Order transferred Prepared to kitchen Service Design이 다루는 범위 OF INTERNAL LINE Support Process Sales tracked INTERACTION 출처 : Thomson Corporation, 2008
- Methods & tools : Service Blueprint 물리적대상 고객행동 상호작용선 대면 서비스제공자 가시선 비대면 서비스제공자 내부상호작용선 지원 프로세스 출처 : http://www.slideshare.net/jaminhegeman/service-design-an-interaction-design-perspective
- Methods & tools : Service Blueprint 출처 : http://farm4.static.flickr.com/3624/3363169836_a71515444e_o.png
- Methods & tools : Service Blueprint 출처 : http://www.slideshare.net/jlbove/designing-the-intangible-an-introduction-to-service-design-presentation
- Methods & tools : Service Blueprint 출처 : http://www.servicedesigntools.org/sites/default/files/res_images/BLUEPRINT_03.jpg
- Methods & tools : 일단 실행하고, 반복 수정하면서 구체화하는 방법
- Methods & tools : Paper Prototyping
- Methods & tools : Paper Prototyping
- Methods & tools : LEGO Prototyping 출처 : Creative Lapland Seminar 2010 발표자료 중, Stefan Moritz
- Methods & tools : Service Experience Prototyping 출처 : CAN YOU DESIGN A SERVICE?, 1508 (덴마크의 서비스디자인기업)
- Methods & tools : Service Experience Prototyping 맥도널드 매장내 서비스 경험 출처 : 서비스R&D국제컨퍼런스, 빌모그리지 발표자료 중, 2009
- Methods & tools : Service Experience Prototyping 출처 : Ministerie van Economische Zaken www.ez.nl 2010
- Methods & tools : Service Experience Prototyping 출처 : Innovation Through Design Thinking, Mat Hunter, IDEO
- 서비스디자인의 특징 서비스디자인기업 직원은 물론, 고객사와 고객사의 최종사용자가 함께 문제를 정의하고 해결책을 만든다 디자인사고Design Thinking를 강조한다 서비스디자인 방법론을 사용한다 가능한 서비스에 대한 모든 것을 시각화 하고 구체화한다 출처 : 엔진, 리브워크 등
- join me! Mail, MSN, Nate-on : design@naver.com www.usableweb.co.kr 디자인계가 중심이 되어 서비스디자인에 대한 논의와 연구를 시작해야 할 때입니다. 동참하실 분께선 연락 바랍니다.
-----
Cheers,
June
금요일, 8월 19, 2011
LG전자를 떠나며 CEO에게 남긴 글
아래 글은 많이 복사해서 비단 국내 IT 뿐만 아니라,
국내 모든 경영자들에게 이메일로 보내야 한다고 생각한다.
우리나라 IT... 개발 및 근무환경... ? 물론 좋다고 생각한다. 좋은 곳도 많다.
하지만 아직 멀었다. 소프트웨어 개발자들???... 대접을 바라는 것이 아니다.
기계처럼 찍어 내거나, 기계에 들어가는 일련의 부속품이 아니라는 것이다.
"애플? 구글? 페이스북? ... 우리는 왜 그들과 같은 인재가 없나?"
이런 얘기 신문, 방송에서 나올때면 한숨만 나온다.
한 가지 재미있는 얘기를 하자면,
회사에서 어느날 아이디어 공모를 한다며 전사원에게 메일을 보냈다.
내용을 대충 요약하면 다음과 같다.
"이번달 xx까지 아이디어 및 구현 결과물을 제출하면, 1등은 000원, 2등은 000원,
등등... 이며, 제출된 아이디어 및 결과물은 회사에 귀속된다."
참 재미있지 않는가? 이런식의 회사는 당장 어떻게든 돈은 많이 벌어서
매출과 자본금은 늘릴 수 있을지 몰라도 절대 발전할 수 없다고 생각한다.
위의 이야기가 이해가 되질 않는다면, 다시한 번 읽어보면서
내가 전달하고자 하는 의미는 잘 생각해보면 알 것이다.
여튼, 음... 곧 개봉하는 인도 영화 "세 얼간이" 꼭 보길 바란다.
요즘 기사를 보면 모 회사들 간부들이 해외 대학들에 가서 석/박사급 인재들에게
기술세미나 및 회사관련 홍보를 한다고 하는데,
인재를 해외에서만 찾지 말고 국내에서 찾아 보길 바랍니다.
인재가 꼭 석/박사만 있는것은 아니라는 걸 알았으면 하는데,
느낀건 그러한 학력들이 곧 인재이며 그들을 원한다는 것이다.
제발로 들어온 인재를 발로 차버리는 실수를 계속 반복하면서
과연 해외에 나가선 잘 찾을 수 있을지...
그러한 인재들이 현재의 이러한 회사들을 보고 제발로 들어올지...
차~암 궁금하다...
아래 글, 공감이 참 많이 가는 글입니다.
같은 회사는 아니지만, 비슷한 얘기로 저도 CEO/CTO 님에게 이메일이라도
보내고 퇴사할 걸 그랬나 봅니다. 저도 5년 가까이, 정도 많이 들고 애착도 가지만,,,
마지막에는 그러한 마음이 들지 않았는지도...
-----
Cheers,
June
--------------------------------------------------------
이하 복사한 글...
Source: http://ppassa.wordpress.com/2011/08/16/leaving_lg/
국내 모든 경영자들에게 이메일로 보내야 한다고 생각한다.
우리나라 IT... 개발 및 근무환경... ? 물론 좋다고 생각한다. 좋은 곳도 많다.
하지만 아직 멀었다. 소프트웨어 개발자들???... 대접을 바라는 것이 아니다.
기계처럼 찍어 내거나, 기계에 들어가는 일련의 부속품이 아니라는 것이다.
"애플? 구글? 페이스북? ... 우리는 왜 그들과 같은 인재가 없나?"
이런 얘기 신문, 방송에서 나올때면 한숨만 나온다.
한 가지 재미있는 얘기를 하자면,
회사에서 어느날 아이디어 공모를 한다며 전사원에게 메일을 보냈다.
내용을 대충 요약하면 다음과 같다.
"이번달 xx까지 아이디어 및 구현 결과물을 제출하면, 1등은 000원, 2등은 000원,
등등... 이며, 제출된 아이디어 및 결과물은 회사에 귀속된다."
참 재미있지 않는가? 이런식의 회사는 당장 어떻게든 돈은 많이 벌어서
매출과 자본금은 늘릴 수 있을지 몰라도 절대 발전할 수 없다고 생각한다.
위의 이야기가 이해가 되질 않는다면, 다시한 번 읽어보면서
내가 전달하고자 하는 의미는 잘 생각해보면 알 것이다.
여튼, 음... 곧 개봉하는 인도 영화 "세 얼간이" 꼭 보길 바란다.
요즘 기사를 보면 모 회사들 간부들이 해외 대학들에 가서 석/박사급 인재들에게
기술세미나 및 회사관련 홍보를 한다고 하는데,
인재를 해외에서만 찾지 말고 국내에서 찾아 보길 바랍니다.
인재가 꼭 석/박사만 있는것은 아니라는 걸 알았으면 하는데,
느낀건 그러한 학력들이 곧 인재이며 그들을 원한다는 것이다.
제발로 들어온 인재를 발로 차버리는 실수를 계속 반복하면서
과연 해외에 나가선 잘 찾을 수 있을지...
그러한 인재들이 현재의 이러한 회사들을 보고 제발로 들어올지...
차~암 궁금하다...
아래 글, 공감이 참 많이 가는 글입니다.
같은 회사는 아니지만, 비슷한 얘기로 저도 CEO/CTO 님에게 이메일이라도
보내고 퇴사할 걸 그랬나 봅니다. 저도 5년 가까이, 정도 많이 들고 애착도 가지만,,,
마지막에는 그러한 마음이 들지 않았는지도...
-----
Cheers,
June
--------------------------------------------------------
이하 복사한 글...
Source: http://ppassa.wordpress.com/2011/08/16/leaving_lg/
LG전자를 떠나며 CEO에게 남긴 글
지난 4월 퇴사를 하면서, 그동안 생각했던 바를 정리해서 CEO에게 메일을 보냈다. 아쉽게도 CEO로부터 답장은 받지 못했다. 사실 CEO가 답장을 할 회사라면 그렇게 떠나지도 않았겠다라는 생각이 드니, 그렇게 아쉽지는 않았다.
물론, 메일이라는 것이 개인적인 것이라 이렇게 공개하는 것이 안맞는 것일지 모르나, 메일 내용에 사적인 내용은 없고, 이러한 울림이 커져서 LG전자가 방향을 바로 잡는데 도움이 되었으면 좋겠기에 이곳에 올린다.
——————————————————————————————-
(2011년 4월 12일)
안녕하세요, 구본준 CEO님.
저는 CTO소속의 최세윤 선임연구원입니다.
구본준 CEO님께서는 다른 분들의 의견을 경청한다는 이야기를 들은 적이 있습니다.
이제 곧 퇴사를 앞두고, 제가 사랑하는 우리 회사의 발전을 위해서, 지난 5년동안 LG전자에서 느낀 점들을 용기를 내어 적어봅니다.
아마 CEO님께서 여러 채널을 통해 들으신 내용이 있을 수도 있을 것 같지만, 혹시나 하는 마음에 면식도 없지만 결례를 무릎 쓰고 메일을 보냅니다.
제가 느낀 점 중에 우리 LG전자가 바뀌었으면 하는 부분을 2가지 관점에서 말씀 드리겠습니다. 물론, 우리회사에서 잘하고 있는 것들도 많지만 이 부분은 생략하도록 하겠습니다.
- Innovation
저는 우리회사가 진정으로 Innovation을 하는 회사가 되었으면 합니다. 그리고, 그렇지 않으면 살아 남을 수 없다고 생각합니다. 하지만 연구원으로서 제가 느낀 바로는, Innovation을 하는 회사가 아니라, Innovation을 하겠다고 ‘주장’만 하는 회사처럼 보입니다. Innovation은 risk-taking이 가능한 문화 속에서 가능하다고 생각합니다. 그런데, 지금 우리 회사의 연구환경은 우리 연구원들이 risk-taking 할 수 있는 연구환경이 아닌 것 같습니다. 아이디어가 구현될 지도 확실치 않은데, 프로젝트 초기부터 ROI를 계산하는 것은 뭔가 맞지 않은 것 같은 생각이 듭니다.
그리고, 또 큰 문제 중의 하나가 지나친 ‘보안(security)’ 강조 입니다. 보안이 중요하지 않다는 것은 아닙니다. 문제는 보안을 지나치게 강조하면서 생기는 엄청난 ‘기회비용’입니다. 이런 기회 비용은 계산하기 힘들어서 그렇지 분명이 엄청 크다고 생각합니다. 몇 가지 예를 들어 보겠습니다.
저는 아이디어를 얻는 데에 인터넷만큼 좋은 곳이 없다고 생각합니다. 그런데 보안이라는 이유로 접근이 막힌 사이트들이 의외로 많습니다. 오늘도 KT의 클라우드(cloud) 서비스를 알아보기 위해 http://ucloud.com을 접근 하려 하니 막혀 있었습니다. 어떤 사이트들을 막았고, 어떤 이유로 막았는지 연구원에게 전혀 공지는 없습니다. 연구원들은 그저 받아들일 뿐입니다. 아이디어 조사 차원으로, 그리고 기술에 대한 궁금중으로 인터넷에서 검색하다가 이렇게 접근조차 막히면, 대부분 포기할 수밖에 없습니다. LG전자가 앞으로 크게 수익을 낼 수 있는 제품을 만들 기회를, 그 동안 이런 이유로 놓치지 않았다고 장담하기는 어려울 것 같습니다.
또, HE본부의 경우 소프트웨어 개발자들이 보안 상의 이유로, 개인 컴퓨터가 아닌 중앙서버에 접속 후 작업을 합니다. 문제는 중앙 서버로 데이터를 넣고 빼는 것이 매우 불편하기 때문에 개발자들이 보고 자료라도 만들려고 하면, 중앙서버에 접속해서 내용을 화면으로 보면서 로컬컴퓨터에서 다시 타이핑해서 만들어야 합니다. 또, 개발자들이 필요한 프로그램이 중앙서버에 없으면, 담당자에게 신청해서 설치해야 합니다. 몇 일이 걸리는 일이고, 설치된다는 보장도 없습니다. 개발자들은 불편한 환경에서 제한된 사고의 자유를 가지고 개발해야 합니다. 정확히 그 비용을 계산하기는 힘들지만 개발자들의 생산성을 엄청나게 갉아먹고 있는 것은 분명합니다. 이 얼마나 우스운 광경입니까. 저는 DTV 기술의 경우 아주 일부를 제외하고는 이제 일반화되었다고 생각하는데, 굳이 모든 정보를 지금처럼 중앙 서버에서 해야 하는 지에 대해서 의문이 갑니다.
- 조직 문화
저는 이전에 벤처 회사를 다녔는데, 지금 우리 회사에서 제일 안타까운 것 중에 하나가 자유로운 토론 문화의 부재입니다. 자유롭게 의견을 개진하고 합리적인 의사 결정이 이루어져야 할 텐데 그렇지 않은 경우가 많이 있습니다. 특히 ‘Top management(CEO/CTO)나 연구소장의 코멘트가 있었다’라고 이야기 되면, 그 진위 여부나 이유에 대해서는 논의가 없고 바로 그 코멘트에 맞게 의사 결정이 납니다. 또, 경쟁사, 특히 삼성이 어떻게 한다더라 하면 이 역시 비판적인 토론 없이 의사 결정이 많이 나버립니다. 비록 top에서 코멘트가 있는 경우라도, 또 경쟁사가 그렇게 하더라도, 의사 결정 시에 관련자들이 반드시 이유를 이해하고 필요하면 이를 반박할 수 있는 조직 문화가 되어야, 진정으로 고객이 원하는 제품을 만들 수 있을 거라고 생각합니다.
또, 회사에서 많이 듣는 이야기 중에 하나가 ‘주인의식을 가져라’입니다. 저는 주인의식은 주인이 되어야 갖는 의식이라고 생각합니다. 회사에서 연구원들을 주인이라고 생각하고 대해주지 않는데 주인의식이 생길 리가 만무합니다. 최근에 서초 R&D 캠퍼스에서는 본부/연구소를 불문하고, 지각을 체크해서 각 조직 별로 통계를 매일 보고 하겠다는 이야기를 들었습니다. 또, 화장실에는 ‘기본을 지키자’며 ‘슬리퍼를 신지 말라’, ‘복장을 단정히 해라’, ‘식사 시간을 준수해라’ 등의 문구가 붙어 있습니다. 분명 이런 것들이 중요하기는 하겠지만, 이렇게 전면적으로 연구원들에게 이야기하는 건, 연구원들을 주인으로 대하는 것이 아니라 철부지 중고생으로 대하는 것이 아닌가 생각합니다. 최근에 ‘Rework’란 책을 보니, ‘직원을 13살짜리 아이처럼 대하지 말라’라는 내용이 있었는데 참으로 뜨끔한 내용이었습니다.
저는 LG전자를 사랑합니다. 저는 우리 회사에서 참 많은 걸 배웠습니다. 그리고 총각으로 입사해서, 이제는 돌이 지난 아이 아버지가 되었습니다. 젊은 시절 제가 열심히 일한 회사가 앞으로도 계속 성장해나가기를 진심으로 바라고 있습니다. 새로 부임하신, 그리고 저의 학과 선배이시기도 한 구본준 CEO님께서 분명히 그렇게 해주시리라 믿고, 저는 또 새로운 도전을 향해 떠나도록 하겠습니다.
LG전자와 모든 구성원의 건승을 항상 기원하고 응원하겠습니다.
감사합니다.
최세윤
토요일, 7월 02, 2011
TransTweet
* Codename: TransTweet
* Project home: http://code.google.com/p/transtweet/
* License: GNU GPL
* Distribution: APK, Source code (Not available for now)
Android 용 번역 App 입니다.
"Sharing" (보내기, 공유하기, 등등) 을 지원하는 App 에서 사용가능 합니다.
App 내에서 "Sharing" 을 이용해서 여러나라 언어를 바로 번역해서 보실 수 있습니다.
TransTweet 은 원래 Twitter 번역만 지원을 하려고 했으나 필요에 의해서
트위터 번역 뿐만 아니라 다른 App 에서도 사용가능 합니다.
* Screenshots
feedback은 언제나 환영입니다.
감사합니다.
-----
Cheers,
June
* Project home: http://code.google.com/p/transtweet/
* License: GNU GPL
* Distribution: APK, Source code (Not available for now)
Android 용 번역 App 입니다.
"Sharing" (보내기, 공유하기, 등등) 을 지원하는 App 에서 사용가능 합니다.
App 내에서 "Sharing" 을 이용해서 여러나라 언어를 바로 번역해서 보실 수 있습니다.
TransTweet 은 원래 Twitter 번역만 지원을 하려고 했으나 필요에 의해서
트위터 번역 뿐만 아니라 다른 App 에서도 사용가능 합니다.
* Screenshots
feedback은 언제나 환영입니다.
감사합니다.
-----
Cheers,
June
일요일, 5월 08, 2011
[CV] Cheap Motion Capture System (OpenCV Motion Capture)
Cheap Motion Capture System (OpenCV Motion Capture)
Source: http://www.motioncapturedata.com/2009/06/cheap-motion-capture-with-free-software.html
Project Home (Cheap Motion Capture System)
http://motion.capture.free.fr/
-----
Cheers,
June
Source: http://www.motioncapturedata.com/2009/06/cheap-motion-capture-with-free-software.html
Project Home (Cheap Motion Capture System)
http://motion.capture.free.fr/
-----
Cheers,
June
일요일, 4월 03, 2011
A Day Made Of Glass Corning's Vision For The Future With Specialty Glass At The Heart Of It VIDEO
A Day Made Of Glass Corning's Vision For The Future With Specialty Glass At The Heart Of It VIDEO
Source: http://www.youtube.com/watch?v=9qmwdbhsbVs
-----
Cheers,
June
Source: http://www.youtube.com/watch?v=9qmwdbhsbVs
-----
Cheers,
June
토요일, 4월 02, 2011
ListenMyStory
* Codename: ListenMyStory
* Project home: http://code.google.com/p/listenmystory/
* License: GNU GPL
* Distribution: Full of Source Code, APK 설치파일 및 아래 contents (Revolution In The Valley)
Android 용 ebook reader 입니다.
일반적으로 알고있는 PDF, CHM, TXT 등의 문서가 아닌 text 와 image 를 zip 파일과
xml (목록 및 정보) 형태로 제작된 컨텐츠를 읽을 수 있는 리더입니다.
Zip 파일 구성:
- 텍스트 파일
- 이미지 파일
- xml (컨텐츠 정보)
원래, 인터넷에서 접할 수 있거나 따로 모은 자료를 하나로 합쳐서 개인적으로 단말에서
보려고 제작한 것인데요, 이렇게 공개를 하게 되었습니다.
아래는 screenshot 입니다.
사용된 contents는 Apple 컴퓨터의 히스토리를 담은 "Revolution In The Valley" 입니다.
책으로 출간이 되었으며 http://www.folklore.org/index.py 사이트에 공개되어있습니다.
위의 사이트에서 이미지와 텍스트를 가져와서 출력에 알맞게 작업을 하였습니다.
자신이 만든 컨텐츠를 SD card에서 로드할 수 있는 기능이 있습니다.
(설정 -> Resource Path에서 path 지정 후 해당 directory에 zip 파일 복사)
인터넷 소설 및 시나리오를 작성하시는 분들이 배포용으로 이용하셔도 좋을 듯 합니다.
현재 Windows 기반에서 컨텐츠를 제작할 수 있는 tool을 제작 중입니다.
오래 걸리는 작업은 아니지만, 언제 완성이 될지는 모르겠습니다. ^^
컨텐츠로 사용한 "Revolution In The Valley" zip 파일을 열어 보시면
어떻게 만들었는지 아실 수 있습니다. 수작업으로 작성 하셔도 됩니다.
feedback은 언제나 환영입니다.
감사합니다.
-----
Cheers,
June
* Project home: http://code.google.com/p/listenmystory/
* License: GNU GPL
* Distribution: Full of Source Code, APK 설치파일 및 아래 contents (Revolution In The Valley)
Android 용 ebook reader 입니다.
일반적으로 알고있는 PDF, CHM, TXT 등의 문서가 아닌 text 와 image 를 zip 파일과
xml (목록 및 정보) 형태로 제작된 컨텐츠를 읽을 수 있는 리더입니다.
Zip 파일 구성:
- 텍스트 파일
- 이미지 파일
- xml (컨텐츠 정보)
원래, 인터넷에서 접할 수 있거나 따로 모은 자료를 하나로 합쳐서 개인적으로 단말에서
보려고 제작한 것인데요, 이렇게 공개를 하게 되었습니다.
아래는 screenshot 입니다.
사용된 contents는 Apple 컴퓨터의 히스토리를 담은 "Revolution In The Valley" 입니다.
책으로 출간이 되었으며 http://www.folklore.org/index.py 사이트에 공개되어있습니다.
위의 사이트에서 이미지와 텍스트를 가져와서 출력에 알맞게 작업을 하였습니다.
자신이 만든 컨텐츠를 SD card에서 로드할 수 있는 기능이 있습니다.
(설정 -> Resource Path에서 path 지정 후 해당 directory에 zip 파일 복사)
인터넷 소설 및 시나리오를 작성하시는 분들이 배포용으로 이용하셔도 좋을 듯 합니다.
현재 Windows 기반에서 컨텐츠를 제작할 수 있는 tool을 제작 중입니다.
오래 걸리는 작업은 아니지만, 언제 완성이 될지는 모르겠습니다. ^^
컨텐츠로 사용한 "Revolution In The Valley" zip 파일을 열어 보시면
어떻게 만들었는지 아실 수 있습니다. 수작업으로 작성 하셔도 됩니다.
feedback은 언제나 환영입니다.
감사합니다.
-----
Cheers,
June
일요일, 2월 20, 2011
[Editor][Eclipse] Eclipse Helios 3.6.1 Code Assist (Auto-Completion) Bug Patch
Eclipse Helios 3.6.1 Code Assist (Auto-Completion) Bug Patch
Code Assist still Slow
- Source: http://groups.google.com/group/android-developers/msg/0f9d2a852e661cba
Patch
- Source: http://adt-addons.googlecode.com/svn/patches/
You can replace your/plugins/org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar plugin
with one from http://adt-addons.googlecode.com/svn/patches/org.eclipse.jdt.core_3.6.1.v_A68_R36x.zip
and restart Eclipse. Content Assists will be much better. Just try it.
Don't forget backup your original plugins.
:: Eclipse GALILEO start problem
Add this into eclipse.ini:
...
-vm
C:\java\jdk1.6.0_13\bin\javaw.exe
...
-----
Works good for me...
Cheers,
June
Code Assist still Slow
- Source: http://groups.google.com/group/android-developers/msg/0f9d2a852e661cba
Patch
- Source: http://adt-addons.googlecode.com/svn/patches/
You can replace your
with one from http://adt-addons.googlecode.com/svn/patches/org.eclipse.jdt.core_3.6.1.v_A68_R36x.zip
and restart Eclipse. Content Assists will be much better. Just try it.
Don't forget backup your original plugins.
:: Eclipse GALILEO start problem
Add this into eclipse.ini:
...
-vm
C:\java\jdk1.6.0_13\bin\javaw.exe
...
-----
Works good for me...
Cheers,
June
일요일, 1월 23, 2011
Prominy LPC Library Demo - Surreal!
Prominy LPC Library Demo - Surreal!
Source: http://www.youtube.com/watch?v=BqGJ8y67SU8
This is probably library author AKHITO! playing the LPC Guitar library. Close your eyes and you can't tell it's not a real guitar player.
great!!!
-----
Cheers,
June
Source: http://www.youtube.com/watch?v=BqGJ8y67SU8
This is probably library author AKHITO! playing the LPC Guitar library. Close your eyes and you can't tell it's not a real guitar player.
great!!!
-----
Cheers,
June
수요일, 1월 19, 2011
Lexar, A Behind the Scenes Look - How We Make Our Products
A Behind the Scenes Look: How We Make Our Products
Source: http://www.youtube.com/watch?v=kvf29R7nXlM
Lexar, a division of Micron technology, is a leading global provider of memory products
for digital media. Check out this behind the scenes look at the extensive work and
care put into each Lexar product.
(This entire video was shot on the Canon 5D Mark II DSLR with
32GB Lexar Professional 600x CF cards.)
great!!!
-----
Cheers,
June
Source: http://www.youtube.com/watch?v=kvf29R7nXlM
Lexar, a division of Micron technology, is a leading global provider of memory products
for digital media. Check out this behind the scenes look at the extensive work and
care put into each Lexar product.
(This entire video was shot on the Canon 5D Mark II DSLR with
32GB Lexar Professional 600x CF cards.)
great!!!
-----
Cheers,
June
월요일, 11월 29, 2010
카라 강지영 일본 예능 활약
카라 강지영에 일본 예능 활약 동영상이다.
사실 카라는 알지만 멤버 강지영은 잘 모른다.
하지만 이제는 알게 되었다.
정말 귀엽다. ㅋㅋ
일단 한 번 보시라...
-----
Cheers,
June
일요일, 11월 14, 2010
일기 (2010.11.14)
<고도원의 아침편지>
어중간한 사원
"최악의 사원을 고용하는 것보다
어중간한 사원을 고용하는 것이 더
최악의 결과를 초래한다"라고 게이츠는 단언한다.
"일을 게을리 하는 사원이 있어도 상관없다.
해고하면 되기 때문이다. 그런데 적당히 일을 하는
어중간한 사원을 고용하면 골치 아픈 상황이 된다."
그래서 게이츠는 업무에 필요하다고 생각하는
인원수보다 적은 인원을 채용했다.
일은 인원수가 아니라 우수한 두뇌가
이루어내는 것이라는 생각 때문이었다.
- 다케우치 가즈마사의《스티브잡스 VS 빌게이츠》중에서 -
* 사람은 '일'을 하는 존재입니다.
그런데, 그 일을 하는 곳에서 알게 모르게
자신의 위치가 드러납니다. 행여라도 그 위치가
'어중간한' 자리라면 얼른 옮겨가야 합니다.
지쳐 쓰러지더라도 흠뻑 땀흘리는 자리,
실수를 하더라도 혼을 쏟아붓는 자리,
지금은 힘들지만 나중엔 기쁨과
보람을 얻을 수 있는 자리로!
-----
요즘 참 와닿는 글이다.
어떻게 보면 불평을 하는 것 아니냐고 할 수 있겠지만,
나는 열심히 공부하면서 일하고 싶다.
세상사가 다 그렇다고 하기보단,
그러한 환경을 만들어가고 싶다.
공부도 열심히 하고 나를 가슴뛰게 하는 일들도 열심히 하자...
Cheers,
June
어중간한 사원
"최악의 사원을 고용하는 것보다
어중간한 사원을 고용하는 것이 더
최악의 결과를 초래한다"라고 게이츠는 단언한다.
"일을 게을리 하는 사원이 있어도 상관없다.
해고하면 되기 때문이다. 그런데 적당히 일을 하는
어중간한 사원을 고용하면 골치 아픈 상황이 된다."
그래서 게이츠는 업무에 필요하다고 생각하는
인원수보다 적은 인원을 채용했다.
일은 인원수가 아니라 우수한 두뇌가
이루어내는 것이라는 생각 때문이었다.
- 다케우치 가즈마사의《스티브잡스 VS 빌게이츠》중에서 -
* 사람은 '일'을 하는 존재입니다.
그런데, 그 일을 하는 곳에서 알게 모르게
자신의 위치가 드러납니다. 행여라도 그 위치가
'어중간한' 자리라면 얼른 옮겨가야 합니다.
지쳐 쓰러지더라도 흠뻑 땀흘리는 자리,
실수를 하더라도 혼을 쏟아붓는 자리,
지금은 힘들지만 나중엔 기쁨과
보람을 얻을 수 있는 자리로!
-----
요즘 참 와닿는 글이다.
어떻게 보면 불평을 하는 것 아니냐고 할 수 있겠지만,
나는 열심히 공부하면서 일하고 싶다.
세상사가 다 그렇다고 하기보단,
그러한 환경을 만들어가고 싶다.
공부도 열심히 하고 나를 가슴뛰게 하는 일들도 열심히 하자...
Cheers,
June
토요일, 11월 13, 2010
[Music][Homebrew] 자작 곡
내가 컴퓨터로 음악(Sequencer) 작업을 처음 시작한 것이 1998, 1999 사이니깐..
음... 2010년 기준으로 약 10~11년 정도 되는 것 같다.
물론 꾸준히 이어서 작업을 한 것은 아니지만... 연수로는 그렇다는 거다.
그러니깐, 처음 시작할 당시엔 MS-DOS 기반에서 ST32 (Stream Tracker) 로 작업을 했다.
이때 컴퓨터로 Sequencer 를 다루어 본 사람이라면 모르지는 않을 것이다.
보통 피아노로 연주했던 걸 tape 으로 녹음한 다음 sequencer 로 대충 (ㅠ.ㅠ) 작성하는 정도다.
이때가 가장 자유스럽고 여유있고 감각이 좋았다고 생각한다.
물론 지금도 자유 (-_-;) 스럽고, 여유있고 (ㅠ.ㅠ) 감각이 (^0^) 좋다고 생각한다.
그동안 세월이 변함에 따라 Sequencer 에도 많은 변화가 있었던 만큼,
Tracker (MOD Plug; aka Impulse Tracker) 에서 다른 Tool 로 전향도 했었고
나름 괜찮다고 생각되는 작품들이 나오고 있다.
현재는 ElectroAcoustic 이지만 (물론 이 장르를 선호한다.) Acoustic 만으로 작업을 해보고 싶은 바람이 있다.
아직 해당되는 장비들은 없지만, 구비가 되면 꼭 해보려고 한다.
요즘 완성이 되었다고 생각되는 괜찮은 곡들이 있어 MySpace 에 등록을 하고 있는데
부담없이 들을 수 있는 곡이니 한 번 들어봐 주시는 것도 괜찮지 않나 싶다.
충고는 따끔하게 받겠으니 feedback 은 꼭 해주시길 바랍니다.
주소는 다음과 같습니다.
http://www.myspace.com/hojungkim
ADD: January 1st, 2011
Jamendo에 음악을 등록하였습니다. 앞으로 계속 추가할 예정입니다. ^^
http://www.jamendo.com/en/artist/Ho-Jung_Kim
2011년 새해 복 많이 받으세요~ ^^
-----
Cheers,
June
음... 2010년 기준으로 약 10~11년 정도 되는 것 같다.
물론 꾸준히 이어서 작업을 한 것은 아니지만... 연수로는 그렇다는 거다.
그러니깐, 처음 시작할 당시엔 MS-DOS 기반에서 ST32 (Stream Tracker) 로 작업을 했다.
이때 컴퓨터로 Sequencer 를 다루어 본 사람이라면 모르지는 않을 것이다.
보통 피아노로 연주했던 걸 tape 으로 녹음한 다음 sequencer 로 대충 (ㅠ.ㅠ) 작성하는 정도다.
이때가 가장 자유스럽고 여유있고 감각이 좋았다고 생각한다.
물론 지금도 자유 (-_-;) 스럽고, 여유있고 (ㅠ.ㅠ) 감각이 (^0^) 좋다고 생각한다.
그동안 세월이 변함에 따라 Sequencer 에도 많은 변화가 있었던 만큼,
Tracker (MOD Plug; aka Impulse Tracker) 에서 다른 Tool 로 전향도 했었고
나름 괜찮다고 생각되는 작품들이 나오고 있다.
현재는 ElectroAcoustic 이지만 (물론 이 장르를 선호한다.) Acoustic 만으로 작업을 해보고 싶은 바람이 있다.
아직 해당되는 장비들은 없지만, 구비가 되면 꼭 해보려고 한다.
요즘 완성이 되었다고 생각되는 괜찮은 곡들이 있어 MySpace 에 등록을 하고 있는데
부담없이 들을 수 있는 곡이니 한 번 들어봐 주시는 것도 괜찮지 않나 싶다.
충고는 따끔하게 받겠으니 feedback 은 꼭 해주시길 바랍니다.
주소는 다음과 같습니다.
http://www.myspace.com/hojungkim
ADD: January 1st, 2011
Jamendo에 음악을 등록하였습니다. 앞으로 계속 추가할 예정입니다. ^^
http://www.jamendo.com/en/artist/Ho-Jung_Kim
2011년 새해 복 많이 받으세요~ ^^
-----
Cheers,
June
수요일, 11월 10, 2010
[Editor][Eclipse] how to exclude Subversion directory (.svn) in the Eclipse?
how to exclude Subversion directory (.svn) in the Eclipse?
1. Open a properties from the project
2. Select "Source Tab" in Java Build Path menu
3. Expands tree and double-click "Excluded:" each other for add two exclusion patterns
.../gen
.../src
4. adds below two exclusion patterns each other into .../gen and .../src
.svn/**
**/.svn/**
5. clean & rebuild the project
-----
Cheers,
June
1. Open a properties from the project
2. Select "Source Tab" in Java Build Path menu
3. Expands tree and double-click "Excluded:" each other for add two exclusion patterns
.../gen
.../src
4. adds below two exclusion patterns each other into .../gen and .../src
.svn/**
**/.svn/**
5. clean & rebuild the project
-----
Cheers,
June
일요일, 11월 07, 2010
일기 (2010.11.06)
아...
오늘 영화를 네 편을 몰아서 보았다... 흠...
피곤하기는 커녕 기분이 아~주 좋다... ㅎㅎ
먼저 일본영화 "그때는 그에게 안부 전해줘(そのときは彼によろしく)" 를 보았다.
어려서 뜻 깊은 추억을 간직한 세 명의 소꿉친구들이 성인이 되어서 만남을 다룬 영화다.
음... 뭐랄까,,, 잔잔하면서도 어릴 때 추억도 생각나게 해주고,
나는 친구들에게 얼마나 잘 하고 있는지를 물어보게 해주는 그런 영화다.
영화처럼은 아니지만 나도 초등학교 다닐 때 같이 알던 여자, 남자 친구가 있었다.
남자친구는 지금도 연락을 하고 한번씩 만나기도 한다.
나에게 음악에 대해 좀 더 깊게 다가갈 수 있게 해준 정말 좋은 친구다.
여자 애는 고등학교 때 연락 한번 한 이후론 연락을 해본적이 없다.
마지막 연락 때 진로에 대해서 잠깐 얘기한 적이 있는데 공부에 전념하는 모습에...
그만... ^^ 음... 지금은 어떻게 변해있을지 참 궁금하다.
친구가 우연히 길에서 봤다고 했다. 순간 마음이 두근 거렸지만...
뭐라고 얘기를 해야할지 몰라서 그냥 넘겨버렸다. 음...
언젠가는 꼭 한번 만나고 싶다.
두 번째 영화는 "The American" 이라는 영화이다.
도통봐도 무슨 내용인지 모르겠다.
George Clooney 와 Violante Placido 가 나오는 영화인데,
영화 색채와 분위기는 좋았던 것 같다. 물론 이상한 장면 (*^^*)은 빼고... ^^;
세 번째 영화는 우리나라 영화 "악마를 보았다"다.
음... 개인적으로 Gore (Splatter Film) 은 좋아하지 않아서인지 보고나서 괜히 보았다고 후회한 영화다.
최민식씨는 정말 연기를 잘 하는 것 같다. 잔인하고 폭력적인 것 보단 좀 더 상냥하고 다정한
그런 역할을 한 번 해주었으면 좋겠다는 개인적인 바람이다.
마지막 영화는 중국영화인 "聽說(Hear Me)" 라는 영화다.
청객장애를 갖고있는 언니를 위해 모른일에 헌신적으로 다하는 여동생과 수영 선수로써 동생에게
꼭 금메달을 안겨주려고 노력하는 언니, 그리고 그 여동생 Yang-yang을 첫눈에 반해 좋아하게되는 Tian 의 이야기다.
영화내용의 대부분이 수화로 이루어져있다. 내가 이렇게 듣고 말하고 볼 수 있다는게 얼마나 행복한 것인지
다시한 번 알게 해준 영화다.
보는 내내 Yang-yang 역시 말을 하지않고 수화로 하다보니 정말 Yang-yang도 청각장애인일까? 라고 생각 하면서도
분명 마지막에 말 할줄 알꺼야라고 생각하며 본 영화다. 물론 마지막에 듣고 말도 할 줄 안다. ^^
참 오랜만에 좋은 영화들을 접해서 너무 좋았다.
음... 갑자기 "Buena Vista Social Club" 다큐멘터리 영화가 생각이 난다.
Cuba 의 Jazz 를 다룬 영화인데 소개되는 음악들이 사람마다 다르겠지만 정말 최고다.
이 영화는 추천을 드리니 꼭 한 번 보시길 바란다.
-----
Cheers,
June
오늘 영화를 네 편을 몰아서 보았다... 흠...
피곤하기는 커녕 기분이 아~주 좋다... ㅎㅎ
먼저 일본영화 "그때는 그에게 안부 전해줘(そのときは彼によろしく)" 를 보았다.
어려서 뜻 깊은 추억을 간직한 세 명의 소꿉친구들이 성인이 되어서 만남을 다룬 영화다.
음... 뭐랄까,,, 잔잔하면서도 어릴 때 추억도 생각나게 해주고,
나는 친구들에게 얼마나 잘 하고 있는지를 물어보게 해주는 그런 영화다.
영화처럼은 아니지만 나도 초등학교 다닐 때 같이 알던 여자, 남자 친구가 있었다.
남자친구는 지금도 연락을 하고 한번씩 만나기도 한다.
나에게 음악에 대해 좀 더 깊게 다가갈 수 있게 해준 정말 좋은 친구다.
여자 애는 고등학교 때 연락 한번 한 이후론 연락을 해본적이 없다.
마지막 연락 때 진로에 대해서 잠깐 얘기한 적이 있는데 공부에 전념하는 모습에...
그만... ^^ 음... 지금은 어떻게 변해있을지 참 궁금하다.
친구가 우연히 길에서 봤다고 했다. 순간 마음이 두근 거렸지만...
뭐라고 얘기를 해야할지 몰라서 그냥 넘겨버렸다. 음...
언젠가는 꼭 한번 만나고 싶다.
두 번째 영화는 "The American" 이라는 영화이다.
도통봐도 무슨 내용인지 모르겠다.
George Clooney 와 Violante Placido 가 나오는 영화인데,
영화 색채와 분위기는 좋았던 것 같다. 물론 이상한 장면 (*^^*)은 빼고... ^^;
세 번째 영화는 우리나라 영화 "악마를 보았다"다.
음... 개인적으로 Gore (Splatter Film) 은 좋아하지 않아서인지 보고나서 괜히 보았다고 후회한 영화다.
최민식씨는 정말 연기를 잘 하는 것 같다. 잔인하고 폭력적인 것 보단 좀 더 상냥하고 다정한
그런 역할을 한 번 해주었으면 좋겠다는 개인적인 바람이다.
마지막 영화는 중국영화인 "聽說(Hear Me)" 라는 영화다.
청객장애를 갖고있는 언니를 위해 모른일에 헌신적으로 다하는 여동생과 수영 선수로써 동생에게
꼭 금메달을 안겨주려고 노력하는 언니, 그리고 그 여동생 Yang-yang을 첫눈에 반해 좋아하게되는 Tian 의 이야기다.
영화내용의 대부분이 수화로 이루어져있다. 내가 이렇게 듣고 말하고 볼 수 있다는게 얼마나 행복한 것인지
다시한 번 알게 해준 영화다.
보는 내내 Yang-yang 역시 말을 하지않고 수화로 하다보니 정말 Yang-yang도 청각장애인일까? 라고 생각 하면서도
분명 마지막에 말 할줄 알꺼야라고 생각하며 본 영화다. 물론 마지막에 듣고 말도 할 줄 안다. ^^
참 오랜만에 좋은 영화들을 접해서 너무 좋았다.
음... 갑자기 "Buena Vista Social Club" 다큐멘터리 영화가 생각이 난다.
Cuba 의 Jazz 를 다룬 영화인데 소개되는 음악들이 사람마다 다르겠지만 정말 최고다.
이 영화는 추천을 드리니 꼭 한 번 보시길 바란다.
-----
Cheers,
June
수요일, 10월 27, 2010
[Android] My Tip; RemoteService Example
RemoteService Example
Reference Source:
http://developer.android.com/guide/developing/tools/aidl.html
http://developer.android.com/reference/android/app/Service.html
http://www.androidpub.com/102370
// -----------------------------------------------
// more Activity
// AndroidManifest.xml
// -----------------------------------------------
<activity android:name=".MainActivity"
android:label="MainActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".anotherActivity"
android:label="anotherActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
// -----------------------------------------------
// RemoteService
// AndroidManifest.xml
// -----------------------------------------------
<service android:enabled="true" android:name=".testActivity">
</service>
// -----------------------------------------------
// RemoteService
// AndroidManifest.xml
// -----------------------------------------------
// -----------------------------------------------
// RemoteService
// Service.java
// -----------------------------------------------
package com.test.testActivity;
// Service
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteCallbackList;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.MediaController;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
/*
@Activity A (test)
startService( new Intent(test.testActivity, testService.class).putExtra("tag", "data") );
String[] strList = {
{"strList1"},
{"strList2"}
};
startService( new Intent(test.testActivity, testService.class).putExtra("tag2", strlist) );
@Service B (testService)
Bundle extras = getIntent().getExtras();
String[] strList = extras.getStringArray( "strlist" );
*/
public class testService extends Service {
private String TAG = "testService";
// Service
private NotificationManager mNM;
private Intent m_InvokeIntent;
private volatile Looper m_ServiceLooper;
private volatile ServiceHandler m_ServiceHandler;
public String m_Str = null;
final RemoteCallbackList m_Callbacks
= new RemoteCallbackList();
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
Bundle extras = (Bundle)msg.obj;
String strTagValue = null;
/*
{
// Broadcast
strTagValue = extras.getString( "command" );
if( strTagValue != null ) {
if( strTagValue.equals("pause") ) {
stopSelf( msg.arg1 );
return;
}
else if( strTagValue.equals("stop") ) {
stopSelf( msg.arg1 );
return;
}
}
}
*/
strTagValue = null;
strTagValue = extras.getString( "tag" );
Log.d( TAG, "Message: " + msg + ", tagValue = " + strTagValue );
if( strTagValue != null ) {
if( strTagValue.equals("data") ) {
}
else if( strTagValue.equals("strlist") ) {
m_strPlayList = extras.getStringArray( "strlist" );
}
else {
Log.d( TAG, "QUIT" );
stopSelf( msg.arg1 );
return;
}
}
else {
stopSelf( msg.arg1 );
return;
}
}
};
@Override
public void onCreate() {
mNM = (NotificationManager)getSystemService( NOTIFICATION_SERVICE );
HandlerThread thread = new HandlerThread( "MediaServiceStart" );
thread.start();
m_ServiceLooper = thread.getLooper();
m_ServiceHandler = new ServiceHandler( m_ServiceLooper );
}
@Override
public void onStart(Intent intent, int startId) {
Log.d( TAG, "ServiceStartArguments: Starting #" + startId + ": " + intent.getExtras() );
{
Message msg = m_ServiceHandler.obtainMessage();
msg.arg1 = startId;
msg.obj = intent.getExtras();
m_ServiceHandler.sendMessage( msg );
Log.d( TAG, "ServiceStartArguments: Sending: " + msg );
// Test: Broadcast
/*
final int n = m_Callbacks.beginBroadcast();
Log.d( TAG, "n = " + n );
for( int i = 0; i < n; i++ )
Log.d( TAG, "item = " + m_Callbacks.getBroadcastItem(i) );
m_Callbacks.finishBroadcast();
*/
}
}
@Override
public void onDestroy() {
m_ServiceLooper.quit();
}
@Override
public IBinder onBind(Intent intent) {
return m_Binder;
}
// The IRemoteInterface is defined through IDL
private final IRemoteService.Stub m_Binder = new IRemoteService.Stub() {
public void registerCallback(IRemoteServiceCallback cb) {
if (cb != null) m_Callbacks.register(cb);
}
public void unregisterCallback(IRemoteServiceCallback cb) {
if (cb != null) m_Callbacks.unregister(cb);
}
public String getInfo() {
String str = "i'm service";
return str;
}
public String setInfo(String str) {
Log.d( TAG, "RECEIVED From Activity: " + str );
return str;
}
};
}
// -----------------------------------------------
// testActivity.java
// -----------------------------------------------
// Service
import android.content.ServiceConnection;
import android.content.ComponentName;
import android.os.IBinder;
import android.os.RemoteException;
public class testActivity extends Activity implements {
// Service
private IRemoteService m_Service = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//Intent(testActivity.this, testService.class)
//Intent intt = new Intent( testActivity.this, Activity2.class );
//startActivity( intt );
//bindService( new Intent(testService.class.getName()), m_Connection, Context.BIND_AUTO_CREATE );
bindService( new Intent(testActivity.this, testService.class), m_Connection, Context.BIND_AUTO_CREATE );
startService( new Intent(testActivity.this, testService.class).putExtra("tag", "quit") );
/*
if( m_Service != null ) {
try {
m_Service.unregisterCallback( m_Callback );
} catch (RemoteException e) {
}
}
// Detach our existing connection.
unbindService( m_Connection );
stopService( new Intent(testActivity.this, testService.class) );
*/
}
@Override
protected void onDestroy() {
if( m_Service != null ) {
try {
m_Service.unregisterCallback( m_Callback );
} catch (RemoteException e) {
}
}
if( m_Connection != null ) {
// Detach our existing connection.
unbindService( m_Connection );
}
stopService( new Intent(testActivity.this, testService.class) );
super.onDestroy();
}
// Service
private ServiceConnection m_Connection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
m_Service = IRemoteService.Stub.asInterface(service);
try {
m_Service.registerCallback(m_Callback);
Log.d( TAG, "RECEIVED From Service: " + m_Service.getInfo() );
m_Service.setInfo( "i'm activity" );
} catch (RemoteException e) {
}
Toast.makeText( testActivity.this, "Service Connected", Toast.LENGTH_SHORT ).show();
}
public void onServiceDisconnected(ComponentName className) {
m_Service = null;
Toast.makeText( testActivity.this, "Service Disconnected", Toast.LENGTH_SHORT ).show();
}
};
// This implementation is used to receive callbacks from the remote service.
private IRemoteServiceCallback m_Callback = new IRemoteServiceCallback.Stub() {
public void valueChanged(int value) {
//mHandler.sendMessage(mHandler.obtainMessage(BUMP_MSG, value, 0));
}
};
}
// -----------------------------------------------
// IRemoteService.aidl (default + method)
// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app
// -----------------------------------------------
package com.test.testActivity;
import com.test.testActivity.IRemoteServiceCallback;
interface IRemoteService {
void registerCallback(IRemoteServiceCallback cb);
void unregisterCallback(IRemoteServiceCallback cb);
// ADD
String getInfo();
String setInfo(String str);
}
// -----------------------------------------------
// IRemoteServiceCallback.aidl (default)
// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app
// -----------------------------------------------
default
-----
Cheers,
June
Reference Source:
http://developer.android.com/guide/developing/tools/aidl.html
http://developer.android.com/reference/android/app/Service.html
http://www.androidpub.com/102370
// -----------------------------------------------
// more Activity
// AndroidManifest.xml
// -----------------------------------------------
<activity android:name=".MainActivity"
android:label="MainActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".anotherActivity"
android:label="anotherActivity"
android:configChanges="keyboardHidden|orientation"
android:theme="@android:style/Theme.NoTitleBar"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
// -----------------------------------------------
// RemoteService
// AndroidManifest.xml
// -----------------------------------------------
<service android:enabled="true" android:name=".testActivity">
</service>
// -----------------------------------------------
// RemoteService
// AndroidManifest.xml
// -----------------------------------------------
// -----------------------------------------------
// RemoteService
// Service.java
// -----------------------------------------------
package com.test.testActivity;
// Service
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.RemoteCallbackList;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.MediaController;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
/*
@Activity A (test)
startService( new Intent(test.testActivity, testService.class).putExtra("tag", "data") );
String[] strList = {
{"strList1"},
{"strList2"}
};
startService( new Intent(test.testActivity, testService.class).putExtra("tag2", strlist) );
@Service B (testService)
Bundle extras = getIntent().getExtras();
String[] strList = extras.getStringArray( "strlist" );
*/
public class testService extends Service {
private String TAG = "testService";
// Service
private NotificationManager mNM;
private Intent m_InvokeIntent;
private volatile Looper m_ServiceLooper;
private volatile ServiceHandler m_ServiceHandler;
public String m_Str = null;
final RemoteCallbackList
= new RemoteCallbackList
private final class ServiceHandler extends Handler {
public ServiceHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
Bundle extras = (Bundle)msg.obj;
String strTagValue = null;
/*
{
// Broadcast
strTagValue = extras.getString( "command" );
if( strTagValue != null ) {
if( strTagValue.equals("pause") ) {
stopSelf( msg.arg1 );
return;
}
else if( strTagValue.equals("stop") ) {
stopSelf( msg.arg1 );
return;
}
}
}
*/
strTagValue = null;
strTagValue = extras.getString( "tag" );
Log.d( TAG, "Message: " + msg + ", tagValue = " + strTagValue );
if( strTagValue != null ) {
if( strTagValue.equals("data") ) {
}
else if( strTagValue.equals("strlist") ) {
m_strPlayList = extras.getStringArray( "strlist" );
}
else {
Log.d( TAG, "QUIT" );
stopSelf( msg.arg1 );
return;
}
}
else {
stopSelf( msg.arg1 );
return;
}
}
};
@Override
public void onCreate() {
mNM = (NotificationManager)getSystemService( NOTIFICATION_SERVICE );
HandlerThread thread = new HandlerThread( "MediaServiceStart" );
thread.start();
m_ServiceLooper = thread.getLooper();
m_ServiceHandler = new ServiceHandler( m_ServiceLooper );
}
@Override
public void onStart(Intent intent, int startId) {
Log.d( TAG, "ServiceStartArguments: Starting #" + startId + ": " + intent.getExtras() );
{
Message msg = m_ServiceHandler.obtainMessage();
msg.arg1 = startId;
msg.obj = intent.getExtras();
m_ServiceHandler.sendMessage( msg );
Log.d( TAG, "ServiceStartArguments: Sending: " + msg );
// Test: Broadcast
/*
final int n = m_Callbacks.beginBroadcast();
Log.d( TAG, "n = " + n );
for( int i = 0; i < n; i++ )
Log.d( TAG, "item = " + m_Callbacks.getBroadcastItem(i) );
m_Callbacks.finishBroadcast();
*/
}
}
@Override
public void onDestroy() {
m_ServiceLooper.quit();
}
@Override
public IBinder onBind(Intent intent) {
return m_Binder;
}
// The IRemoteInterface is defined through IDL
private final IRemoteService.Stub m_Binder = new IRemoteService.Stub() {
public void registerCallback(IRemoteServiceCallback cb) {
if (cb != null) m_Callbacks.register(cb);
}
public void unregisterCallback(IRemoteServiceCallback cb) {
if (cb != null) m_Callbacks.unregister(cb);
}
public String getInfo() {
String str = "i'm service";
return str;
}
public String setInfo(String str) {
Log.d( TAG, "RECEIVED From Activity: " + str );
return str;
}
};
}
// -----------------------------------------------
// testActivity.java
// -----------------------------------------------
// Service
import android.content.ServiceConnection;
import android.content.ComponentName;
import android.os.IBinder;
import android.os.RemoteException;
public class testActivity extends Activity implements {
// Service
private IRemoteService m_Service = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//Intent(testActivity.this, testService.class)
//Intent intt = new Intent( testActivity.this, Activity2.class );
//startActivity( intt );
//bindService( new Intent(testService.class.getName()), m_Connection, Context.BIND_AUTO_CREATE );
bindService( new Intent(testActivity.this, testService.class), m_Connection, Context.BIND_AUTO_CREATE );
startService( new Intent(testActivity.this, testService.class).putExtra("tag", "quit") );
/*
if( m_Service != null ) {
try {
m_Service.unregisterCallback( m_Callback );
} catch (RemoteException e) {
}
}
// Detach our existing connection.
unbindService( m_Connection );
stopService( new Intent(testActivity.this, testService.class) );
*/
}
@Override
protected void onDestroy() {
if( m_Service != null ) {
try {
m_Service.unregisterCallback( m_Callback );
} catch (RemoteException e) {
}
}
if( m_Connection != null ) {
// Detach our existing connection.
unbindService( m_Connection );
}
stopService( new Intent(testActivity.this, testService.class) );
super.onDestroy();
}
// Service
private ServiceConnection m_Connection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
m_Service = IRemoteService.Stub.asInterface(service);
try {
m_Service.registerCallback(m_Callback);
Log.d( TAG, "RECEIVED From Service: " + m_Service.getInfo() );
m_Service.setInfo( "i'm activity" );
} catch (RemoteException e) {
}
Toast.makeText( testActivity.this, "Service Connected", Toast.LENGTH_SHORT ).show();
}
public void onServiceDisconnected(ComponentName className) {
m_Service = null;
Toast.makeText( testActivity.this, "Service Disconnected", Toast.LENGTH_SHORT ).show();
}
};
// This implementation is used to receive callbacks from the remote service.
private IRemoteServiceCallback m_Callback = new IRemoteServiceCallback.Stub() {
public void valueChanged(int value) {
//mHandler.sendMessage(mHandler.obtainMessage(BUMP_MSG, value, 0));
}
};
}
// -----------------------------------------------
// IRemoteService.aidl (default + method)
// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app
// -----------------------------------------------
package com.test.testActivity;
import com.test.testActivity.IRemoteServiceCallback;
interface IRemoteService {
void registerCallback(IRemoteServiceCallback cb);
void unregisterCallback(IRemoteServiceCallback cb);
// ADD
String getInfo();
String setInfo(String str);
}
// -----------------------------------------------
// IRemoteServiceCallback.aidl (default)
// Source (v1.6): C:/android-sdk-windows/platforms/android-4/samples/ApiDemos/src/com/example/android/apis/app
// -----------------------------------------------
default
-----
Cheers,
June
피드 구독하기:
글 (Atom)