2010년 12월 12일 일요일

안드로이드에서 쉽게 AVD 경로롤 바꾸는 방법


한글 계정에 안드로이드 SDK를 깔면 AVD를 만들어도 경로가 이상하다면서 실행이 안됩니다.
이는 안드로이드 SDK가 한글 경로를 인식 못해서 생기는 문제인데요
초기 설치시 간단한 방법으로 쉽게 AVD를 추가하실수 있습니다.

일단 기존에 만든 AVD를 전부 삭제하고
컴퓨터의 환경변수에 ANDROID_SDK_HOME를 추가하고 원하는 위치로 다시 지정한 후
AVD를 다시 만들면 새로 설정된 위치로 AVD가 만들어지네요.

제어판 -> 시스템 -> 환경변수 설정 에 시스템 환경변수에 ANDROID_SDK_HOME 을 추가하고
여기에 AVD가 위치할 디렉토리를 지정해 주면 이후 생성되는 AVD는 해당 경로에 나오게 됩니다.

대신 기존의 AVD는 삭제해야 합니다. ;;

2010년 12월 10일 금요일

c# SendInput (Simulating Keyboard & Mouse)

http://homeofcox-cs.blogspot.com/2008/07/c-simulate-mouse-and-keyboard-events.html

.NET 4.0 XamlParseException

.NET 4.0에서 SetWindowsHookEx를 쓸 때 .NET 2.0 방식과 혼동되지 않도록 주의하셔야 합니다. 2.0 방식으로 하시면 제목과 같이 XamlParseException이 일어나게 됩니다.

 

 

.NET 2.0 방식

hMouseHook = SetWindowsHookEx(
                    WH_MOUSE_LL,
                    MouseHookProcedure,
                    Marshal.GetHINSTANCE(
                    Assembly.GetExecutingAssembly().GetModules()[0])
,
                    0);
 
.NET 4.0 방식
hMouseHook = SetWindowsHookEx(
                    WH_MOUSE_LL,
                    MouseHookProcedure,
                    IntPtr.Zero,
                    0);
 
 
참조 링크
http://www.go4answers.com/Example/setwindowshookex-works-net-2-not-net-4-115728.aspx

2010년 11월 22일 월요일

워드에서 이미지 퀄리티 줄이지 않고 저장하기

워드나 파워포인트에 이미지를 첨부했다가 나중에 열어서 이미지를 확대하면 이미지 퀄리티가 매우 떨어지는 안타까운 일을 발견합니다. 열심히 그린 그림 다시 그릴 수도 없고,... 저도 요즘 논문을 쓰고 있는데, 인쇄할 수준의 이미지를 사용해야 해서 이미지 퀄리티에 민감합니다. 그래서 이미지 크기를 줄여서 저장했다가 다시 키우는 실험을 했습니다. (test.pdf 첨부파일 참조)

 

결론부터 말하면 '이미지 압축' 메뉴의 대상출력에서 '문서 해상도'를 지정하면 안됩니다. (저는 지금까지 '문서 해상도'가 가장 좋은 것으로 생각했네요. -_-;) 반드시 '인쇄'를 선택해주십시오. 간혹 이미지 해상도가 낮아서 '인쇄'가 선택 불가한 경우가 있습니다. 그러면 그 다음 메뉴인 '화면'이나 '전자 메일'을 선택해주시면 됩니다.

 

이런 지정이 귀찮으신 분들은 gif이미지를 사용하시면 됩니다. 실험해본 결과 gif는 크기를 줄여서 저장했다가 늘려도 퀄리티 차이가 거의 없습니다.

 

만약 캡처를 이미지로 저장하여 사용하신 다면 jpg는 절대절대 비추합니다. 저장할 때 부터 퀄리티가 마구 떨어집니다.

2010년 11월 16일 화요일

닷넷 코드 엑세스 보안과 WPF 성능

 

http://msdn.microsoft.com/ko-kr/library/930b76w0(v=VS.90).aspx

악의적인 이식 가능한 코드로부터 시스템을 보호하고, 알 수 없는 출처에서 가져온 코드를 안전하게 실행하고, 신뢰된 코드가 실수 또는 의도적으로 보안을 손상시키지 않도록 .NET Framework에서는 코드 액세스 보안이라는 보안 메커니즘을 사용합니다. 코드 액세스 보안은 코드 발생 위치 및 코드 ID의 다른 측면에 따라 다양한 수준으로 코드를 신뢰할 수 있습니다. 또한, 코드 액세스 보안은 코드에 다양한 신뢰 수준을 적용하여, 실행하기 위해 완전히 신뢰되어야 하는 코드 분량을 최소화합니다. 코드 액세스 보안을 사용하면 악의적이거나 오류가 많은 코드에 의해 사용자 코드가 오용될 가능성이 적습니다. 사용자는 코드가 수행할 수 있는 작업 집합과 수행할 수 없는 작업 집합을 지정할 수 있으므로 위험 부담을 줄일 수 있습니다. 또한 코드 액세스 보안은 코드의 보안상 약점으로 인해 생길 수 있는 손상을 최소화합니다.

 

공용 언어 런타임 기능이 있는 모든 관리 코드는 코드 액세스 보안을 전혀 호출하지 않아도 코드 액세스 보안의 장점을 활용할 수 있습니다. 그러나, 모든 응용 프로그램은 코드 액세스 보안 기본 사항에서 설명하는 것처럼 코드 액세스 요청을 해야 합니다.


위와 같은 보안 매커니즘 때문에 닷넷 어플에서 로드한 어셈블리는 보안 인증을 먼저 거치게 됩니다. 그러나 인증 과정은 네트워크를 거치게 되므로 이때 부하가 생깁니다.

하지만 이 과정이 꼭 필요하지 않은 경우도 있습니다. 예를들어, ClickOnce로 배포할 경우, 인증과정 및 게시자 증명 과정을 필수적으로 거치게 됩니다. 하지만 이를 사용하지 않으면 굳이 증명을 할 필요가 없습니다.


http://msdn.microsoft.com/ko-kr/library/cc656914.aspx

Authenticode 확인도 시작 시간이 길어지는 원인이 될 수 있습니다.Authenticode 서명된 어셈블리는 CA(인증 기관)를 통해 확인되어야 합니다.이 확인 작업을 수행하려면 최신 인증서 해지 목록을 다운로드하기 위해 네트워크에 여러 번 연결해야 하므로 시간이 오래 걸릴 수 있습니다.또한 이 과정에서 신뢰할 수 있는 루트로 연결되는 경로에 대한 유효한 인증서가 모두 있는지도 확인합니다.이로 인해 어셈블리가 로드되는 동안 몇 초 정도 작업이 지연될 수 있습니다.
클라이언트 컴퓨터에 CA 인증서를 설치하거나, 가능하면 Authenticode를 사용하지 않는 것이 좋습니다.응용 프로그램에서 게시자 증명 정보를 필요로 하지 않는 경우 서명 확인에 리소스를 낭비할 필요가 없습니다.

 

http://msdn.microsoft.com/ko-kr/library/bb629393.aspx

CLR(공용 언어 런타임)은 어셈블리에 대한 Publisher 증명 정보를 만들기 위해 로드 시 Authenticode 서명을 확인합니다.그러나 기본적으로 대부분의 응용 프로그램에는 Publisher 증명 정보가 필요하지 않습니다.표준 CAS 정책은 PublisherMembershipCondition을 사용하지 않습니다.사용자 응용 프로그램이 사용자 지정 CAS 정책을 사용하는 컴퓨터에서 실행되지 않거나 부분 신뢰 환경에서 PublisherIdentityPermission에 대한 요청을 충족시키기 위한 것이 아닐 경우 게시자 서명 확인과 관련된 불필요한 시작 작업을 수행하지 않아야 합니다.전체 신뢰 환경에서는 ID 권한 요청이 항상 성공합니다.

 

따라서 예외적인 시나리오의 경우엔 보안 인증 과정을 생략하여 성능을 올릴수 있습니다. (있다고 합니다.)


http://msdn.microsoft.com/ko-kr/library/cc656914.aspx

 

.NET Framework 3.5부터는 Authenticode 확인을 건너뛸 수 있는 구성 옵션을 사용할 수 있습니다. 이렇게 하려면 app.exe.config 파일에 다음 설정을 추가하십시오.

 <configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2010년 10월 30일 토요일

.NET TPL 개론

 .NET Framework 4 의 Parallel Task Library는 .NET 에서 기존 코드를 크게 바꾸지 않아도 멀티코어/멀티쓰레드에 맞게 프로그램을 고칠수 있게 해줍니다.  멀티코어 시대가 이미 일반화된 현재로서 멀티 프로세싱/프로그래밍 하여 퍼포먼스를 향상시키는 스킬은 개발자에게 매우 중요한 스킬인데, 이걸 네이티브로 구현하려면 정말 많이 힘이 듭니다. 많은것을 알아야 하고 고민해야되죠... (CPU 명령, CPU 전용 컴파일러, 그리고 스펙...) 그리고 해본분은 알겠지만 디버깅은 정말 죽음입니다. 그래서 닷넷에서는 많은 부분을 추상화 해서 개발자 입장에서 몇가지 자료 구조와 API로 이 문제를 해결할수 있도록 돕고 있습니다.

 

현재 프로그래밍 언어로서는 완벽하게 멀티 프로세싱을 지원하지 않습니다. 일부 언어가 멀티코어 환경에 맞게 문법을 지원해준다고는 하나, 현업에서는 거의 쓰이지 않고 학술적인 목적으로 제한적으로 사용되고 있습니다. 따라서 개발자 니즈로서는 기존 언어가 쉽게 멀티코어로 포팅될수 있기를 바라죠. MS는 이 니즈를 파악하고 니즈에 맞는 라이브러리를 만들었는데 이게 TPL 입니다. 니즈에 대해서 말이 나왔으니, 기존 닷넷에 대해서 약간만 이야기를 하죠... 닷넷이 멀티프로세싱을 처음부터 지원 안한건 아닙니다. 기존 닷넷의 비동기 처리와 쓰레드 풀링 처리는 1.0 때부터 지원하던 것이었습니다. 하지만 간단한 비동기 작업 코드를 짜 보아도 같은 기능의 동기화 코드와는 많은 부분에서 차이가 납니다. 동기를 비동기로 옮기는 것도 어렵고 옮긴다 해도 뻑안나는 같은 동작을 보장하는 것은 정말 어려운 일이었습니다.

 

그래서 MS는 이를 프레임웍 레벨에서 지원해줄수 있는 방법은 없나 고민하게 됩니다. 그럼 MS가 고민하던 때로 돌아가 같이 고민해 볼까요?

 

1) 어차피 모든 부분을 멀티코어로 만들수는 없습니다. 왜냐면 보통 프로그래밍 언어들은 1프로세스 1쓰레드 기준으로 가장 잘 동작하게 만들어져 있죠 (완벽한 멀티코어용 언어로 동작하게 하려면 lock 이나 모니터, 세마포어를 별도로 선언할 필요가 없어야 하지 않을까요? 이러한 동기화 구조들은 현재의 프로그래밍 언어가 멀티코어를 지원하지 않아서 생기는 것입니다.)

2) 그렇다면 멀티코어로 만들면 좋은 부분만을 확실히 멀티코어 동작하게 해주면 됩니다.

3) 어떠한 부분이 멀티코어스러울수 있을까요?


 

멀티코어의 효과가 최대한 있을수 있는 부분들은 대개 상당한 부하가 걸리는 작업들을 수반한 영역들입니다. 그리고 프로그램에서 가장 부하가 많이 걸리는 부분들은 대개 반복작업 - 루프 등에 몰려 있습니다. (중요한 성능개선 포인트인 LRU가 많이 발생하는 곳이기도 합니다.)

(비동기 작업이 꼭 멀티코어스러워야 하는건 아닙니다.  부하가 많이 걸려서 비동기가 필요한 곳은 멀티코어로 바꿀 필요가 있지만, 그렇지 않고 타이밍 때문에 기다려야 하는 상황에서는 멀티코어를 적용하는건 바보같은 짓입니다.)

그리고 이러한 반복작업에서 많이 사용되는 자료구조는 배열-콜렉션과 배열에서 파생된 자료구조들입니다. 이들 자료구조는 멀티프로세싱하게 되면 여러 쓰레드가 동시에 접근하게 되므로, 동기화를 반드시 신경써야 하겠죠.

 

따라서 멀티코어에 대해서 MS는 2가지 전략을 세울수 있습니다.

 


1) 반복작업내 수행되는 작업이 오래 걸리면 이를 멀티쓰레드로 쉽게 옮길수 있도록 해주자

2) 멀티쓰레드에서 사용되는 콜렉션에 대해서는 동기화가 될수 있도록 해주자.

 
그래서 Task Parallel Library가 등장하게 됩니다. 첨부한 PDF에는 이러한 부분에 대해서 대략적인 설명과 함께 실제 적용사례가 나와 있습니다.

1) 의 해결책으로 Task라는 멀티프로세싱을 관리하는 객체에 여러 Task를 만들수 있는 Factory를  두었고, 여기에 람다식으로 태스크를 넣을수 있습니다.
2) 의 해결책으로  System.Collections.Concurrent 네임스페이스 아래의 자료구조들을 예로 들수 있습니다.
 
이 두가지를 조합하여 기존 코드를 멀티코어와 할수 있습니다.
하지만 이것도 어렵다는 개발자의 니즈를 만족시키기 위해서 MS에서는 함수 단위의 비동기화를 아예 언어 단위에서 지원하도록 만들었습니다. : 이것이 최근에 나온 VisualStudio Parallel 으로 보입니다.
 

자세한 이야기는 좀더 나중에...

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2010년 10월 28일 목요일

yield 키워드를 이용한 루프-데이터 반환 최적화

.NET 2.0 부터 있던 키워드이나, 사실상 잘 이용 안되고 있었던 키워드가 있었으니 바로 yield 이다.
yield는 원래 Ruby 에 있던 개념이었는데 제한적으로 C#에서 언어용으로 차용하게 되었다.
하지만 MSIL 수준에서의 지원은 아니고  컴파일시 C# 컴파일러가 자동으로 Code를 생성해준다.
 
 
yield는 return, break 과 같이 사용하며,  yield를 쓰면 루프에서 원하는 조건에 맞는 데이터들의 리스트를 IEnumerable 형태로 얻어올수 있다.
그러니까, 만일 루프를 돌면서 어떤 목록에서 특정 아이템들을 뽑아 따로 리스트를 만들고 싶다면 루프 이전에 컬렉션을 하나 만들고 이 컬렉션에 값을 넣는 코드를 삽입해야 한다.
하지만 yield는 이를 단 한줄로 해결해 준다.

[code csharp]
public class List
{
        //using System.Collections;
        public static IEnumerable Power(int number, int exponent)
        {
                int counter = 0;
                int result = 1;
                while (counter++ < exponent)
                {
                        result = result * number;
                        yield return result;
                 }
        }
        
        static void Main()
        {
                // Display powers of 2 up to the exponent 8:
                foreach (int i in Power(2, 8))
               {
                        Console.Write("{0} ", i);
               }
        }
}
[/code]


 Yield의 구현은 다음 아티클을 참조 : 내부적으로 루프 코드를 State 머신 형태로 변경하여 데이터를 뽑아낸다.
 
Yield는 동일한 기능을 구현하는 코드보다 성능이 더 좋은편이다.
 
 
 
이 글은 스프링노트에서 작성되었습니다.

윈7폰에서 SQLLite쓰기

모바일에서 자주 사용했었던 SQLLite가 윈7폰에는 빠져 있지요
안드로이드는 내부 DB가 있는데 윈7폰은 빠져서 여기에 불만인 사람들이 많습니다.
MS에서는 자사의 클라우드 서비스를 사용하라고 이야기 합니다만 개발자들이 꼭 시키는대로 따르지는 않죠.

그래서 SQLLite 소스를 C#으로 완전 포팅하여 IsolatedStorage를 사용할수 있게 한게 나왔습니다. (혹 뒷북인가요?;;)
프로젝트에 DLL을 추가하고 약간 잡다한 설정하나 해주면 끝납니다. 단 주의할것은

1) 에뮬레이터 재부팅 하면 DB가 날아갑니다. 에뮬에서는 IsolatedStorage를 리부팅 할때마다 날려버리는듯..
2) IsolatedStorage가 일반 파일 IO보다 매우 느리기 때문에 성능을 기대하긴 어렵습니다.

간단한 DB 트랜잭션이 꼭 필요하다면 사용할만 합니다. 다운로드는 아래에...

WP7 Sqlite

2010년 10월 22일 금요일

윈도우즈 라이브 라이터 테스트

윈도우즈 라이브 라이터로 글을 매우 쉽게 쓸수 있다!

2010년 10월 12일 화요일

어제출시된 따끈한 윈7폰 테스트 (삼성,LG)

출시된 폰들 비됴입니다.

보신분은 패스

 

안보신 분은 함 대충 느껴보세요

손이랑 크기를 비교해보시면 대략 감이 오실것 같습니다.

 

급하신 분들위한 종합버전 ->

 

 

 

 

 

 

 

 

 


 

 

1) 슬쩍 버벅? 대는 옴니아 7폰...

 

 

2) 옵티머스 7

 

3) 포커스 .. 요건 좀 성실히 테스트 해줬네요

 

2010년 10월 9일 토요일

펌글 : 대학 자퇴하고 안정된 직장도 그만둔다는 제자 이야기


 

http://innovative.kr/248

1.
T는 경영학과를 다니는 20대 초반의 직장인입니다. 야간반이지요.
2학년에 올라온 T는 1학기 제가 담당하는 교양과목을 신청하였고 그렇게 하여 저를 처음 만나게 됩니다.
'시대변화와 인재상'이라는 테마로 진행하는 과목이었지요.
조직에 충성하고 성실하게 일하는 것만으로는 인생 중간에 위험해질 수 있다는 것을,
진정 하고 싶은 일을 하는 사람들이 대접받는 세상이 왔다는 것을 한 부분으로 이야기합니다.

종강 전까지 수강생 얼굴과 이름을 외우는 것을 하나의 목표로 삼고 있는 저로서도
올해는 수강생이 100명으로 늘어나다보니 강의 초반 일일이 기억을 하기는 어렵더군요.
온라인 카페활동을 병행하는데 그 덕분에 강의 초반부터 학생들 얼굴과 이름을 익혀갈 수 있습니다.

T를 기억하는 건 강의 초반 개인 사정으로 결석을 하면서 꼬박꼬박 사전에 양해를 구하는 그녀의 태도였습니다.
내용도 읽어보면 핑계가 아니라는 것을 단박에 알 수 있을 정도로 진실함이 묻어났지요.
그래서 기억을 하게 되었습니다. 강의 시간에도 둘러보다보면 열심히 경청하는 모습이 눈에 들어왔습니다.

2.

제가 진행하는 강의에는 시험이란 없습니다. 대신 과제가 있지요.
T가 수강한 과목의 과제는 두 가지가 있었습니다.
미래퍼즐과 만능열쇠라는 제목의 것들이었지요.

미래퍼즐은 자신의 꿈을 발견하는 과제입니다. 시각적으로 표현해 보면서 구체화 해보는 과정이지요.
만능열쇠는 평소 어렵게 생각되어 미뤄두기만 하던 자신의 문제에 대해 해결책을 만들어 보는 과제입니다.

팀 활동을 통해 서로 자신의 이야기를 나누며 아이디어와 피드백을 주고 받는 참여 수업을 진행합니다. 이를 통해 과제에 대해 감을 잡게 됩니다. 시너지를 흡수하여 각자 개인 과제를 준비하게 되지요. 미래에 대한 꿈이 확실히 있거나 현실적인 난관에 대해 고민을 많이 해본 학생들이 유리한 과제들이라 하겠습니다.

3.
T는 팀 활동에도 열심이었고 온라인 카페 활동에도 적극 참여 하는 등 우등생이었습니다. 그런데 중간고사 기간이 막 지난 어느 날 T로부터 장문의 메일이 날라왔습니다.  내용인 즉, 학교를 자퇴 한다는 것이었습니다. 게다가 다니던 직장도 그만둔다고 했습니다.
덜컥 염려하는 마음이 앞서 메일을 찬찬히 읽어 보았습니다. 이유가 궁금했지요.
이유는 바로 그가 덮어 두었던 꿈 때문이었습니다. 가야 할 길에 대한 확신이 너무나 강해져서 '더 이상 시간 낭비'를 할 수가 없었다는 것입니다.

 

 

"교수님의 수업을 듣다가...정말 제 얘기를 듣는것 처럼 부끄럽고... 맘이 아팠는데 수업중에..
교수님 말씀해주신것 중에... '중요하지만 급하지 않은 것'이 가장 중요한 것이다. 라고 하셨을 때
잊고 있던 제 꿈이 생각나서 너무 가슴이 아팠고 눈물이 났습니다.

그 때부터 회사 일이 손에 잡히지 않고 제가 맘속에 담아 두었던 꿈을 꺼내보기 시작했습니다.
너무 돈이 많이 드는... 저에겐 주제 넘치는 꿈이라고 생각했기에 일부러 더 거리를 두었던 제 꿈은
커스텀 페인팅 디자이너 입니다."

 

 

커스텀 페인팅이란 자동차나 바이크를 소유자의 개성에 따라 튜닝하는 것을 말합니다.
여성으로서는 조금 독특한 적성이 아닐 수 없습니다.
최소 미술을 전공한 사람들만이 대접받는 분야에서 들여야 할 시간과 비용은 엄두가 안날 규모였겠지요.
하지만 T는 마음을 굳힌 후 강의 시간에 배운 만능열쇠를 준비했고 문을 열기위해 열심히 돌아 다녔습니다.

 

"저 여름부터 커스텀페인팅 전문업체에 들어가서 무보수로 일을 하면서 배우기로 했습니다..  
(중략) 사실 여자가 선뜻하기 힘든 일이라서 고민도 많았는데 지금은 마음을 굳게 먹어서 너무나도 기대되고 행복합니다!!
자랑할 것은 못되지만 저번 주 내내 시험 다 빠지구 업체에 직접 가기도하고
킨텍스 전시장에도 가고, 이사람 저사람을 만나러 다녔습니다~
그 중에 정말 맘에 드는 업체와 이야기가 잘 되었어요^^ 너무 행복한 한주였습니다."

 

과감하지요? 저는 강의 중에 학교 그만두라는 말, 직장 사표내라는 말 한 적이 없습니다.
그런데 T는 자신의 꿈을 더 이상 감춰두고 있을 수 없었고, 결국 일을 저지르고(?) 말았습니다.
경력자도 아니고, 미술을 전공한 처지도 아니다 보니 저 맨 바닥서부터 시작해야 하는 일이었지요.
불경기에 취업도 어려운 세상이라 용기가 필요했을 것입니다.



4.
T는 안정된 직장에 다니고 있었습니다. 공공기관에서 일을 했지요.
오래 다니면 남들 그렇게 부러워하는 바로 그 연금을 받을 수 있는 직장이었습니다.

T와 약속을 잡고 식사를 함께 했습니다. 궁금한 것이 많았지요.
이미 자퇴하고 새로운 직장에서 견습생으로 일할 준비를 하는 T는 의욕에 넘쳤습니다.

이야기는  지난 과거에서 시작해서 미래의 계획으로 흘러 갔었습니다.
어려서 미술을 너무나 좋아했고 주위에서 인정 받았지만 가정 형편으로 자신의 꿈을 미리 접어야 했던 일,
어찌 보면 편안하고 무사태평 지낼 수 있지만 의미를 찾기 어려웠던, 그래서 다니기 싫었던 직장,
늦게 대학을 들어오면서 가졌던 기대들이 1년 만에 시들해졌던 것,
커스텀 페인팅의 현황과 나름 생각하고 있는 시장전망...
앞으로 도전하고 싶은 업체에 대한 동경과 향후 커리어를 쌓으며 도전해 갈 계획들...

확실한 비전이 있더군요. 곁에서 듣는 것만으로도 설레임이 찾아왔습니다. 본인의 마음은 어땠을까요?

5.
그 뒤로 자주 연락을 받아야 했습니다. 왜냐구요?
새로운 우여곡절이 있었거든요.
T가 견습생을 알아보면서 여기저기 노크 했던 이야기를 했었지요?
그 결과로 그 업계에 있는 많은 분들이 T에 대해 관심을 갖게 된 것입니다.
사실 T는 정작 가고 싶었던 업체가 있었지만 스스로 그 곳에 가기엔 자격이 안된다고 생각했다고 합니다. 그래서 좀 더 작은 업체에서 경험을 쌓고 1년 후 그 업체에 도전을 하려 했다고 하지요.

그런데 T에 대한 이야기를 들은 '바로 그' 업체 대표가 T를 불렀다고 합니다. 면접을 본 것인데요. 면접을 보고는 견습생을 하려면 본인 밑에서 하라며 바로 현장에서 채용을 했답니다. 조건도 매우 좋은 조건으로요. 일을 처음부터 배우느라 몸은 힘들겠지만 마음은 날아갈 것 같겠지요? 함께 일 하기로 했던 곳에는 사실 미안한 일이 되었지요. 양해를 구해야 했을 것입니다.
 

"정말 최고인것은....업체 측에서 저 미술학원에 보내준다고 합니다. 그만큼 열심히 하라는 뜻이겠죠... 저 진짜 정말 열심히 할꺼에요.근데 이번에 이사하면 미술공부도 좀 해야하니깐 컴퓨터랑 프린터도 제공을 해준다고 하네요...진짜 교수님이 말씀해 주신대로 제가 가려고 했던 길은 제가 만들어낸 안개 때문에 쉽게 다가가지 못했던 것 같습니다!!"

 


6.
신기할 정도로 잘 풀린 경우일까요? 그냥 운이 좀 좋았을 뿐일까요?
저는 T를 만난 사람들마다 왜 T와 함께 일 하고 싶어했는지 어렴풋하게나마 그 이유를 알고 있습니다.
그것은 T를 만나 그의 이야기를 직접 들어본 사람들만이 알 수 있는 것입니다.
답은 그의 눈빛입니다. 작고 당찬 체구 내부를 온통 설레는 꿈이 가득 채우고 있었지요.
그 꿈이 넘치고 넘쳐 눈으로 뿜어져 나왔습니다.
차와 바이크 이야기 할 때의 그 모습이란! 열정은 전염되는 것입니다.
그리고 그것을 마주한 사람은 누구라도 알 수 있습니다. 그것으로 채운 사람은 절대 놓쳐선 안된다는 것을요.

학교를 그만둔다는 T의 메일을 받았을 때 가졌던 염려는 이미 접어서 휴지통에 버린지 오래입니다.
그리고는 저를 돌아보게 되었지요. 제 마음 속에도 T가 담고 있는 만큼의 열정이 있는 것일까...
많은 핑계와 변명을 짊어지고 가느라 꿈과 열정이 납작하게 눌리고 있는 것은 아닐까...

T는 자동차 튜닝의 본 고장 미국에도 도전을 하고 싶다고 했습니다.
그 곳을 누비며 코쟁이들에게도 열정을 전염시키는 모습을 상상을 해보는 것은 그것만으로도 기분 좋은 일이 아닐 수 없네요.

T가 어느새 제 스승이 되어 있습니다.  


2010년 10월 8일 금요일

헐헐

퇴근길 라디오에서 들은 이야기

 

라디오에서 들은 이야기 :

 

 

Q:

괴로워서 소주를 마시면 잊을수 있으리라 생각했습니다.

하지만 마시고 다음날에는 더 후회했습니다.

 

지금은 잘살고 있습니다.

 

 

 

 

A:

인생은 서핑과 같다.

파도를 무서워하면 물만 먹을 뿐이고

파도를 타고 넘어야 즐거움이 밀려온다.

 

외로움을 타고 넘어 잘 극복하기 바랍니다.

 

 

----------------------------------------

 

인생의 위기는 파도처럼 끊임없이 밀려옵니다.

두려워하고 피하면 물만 먹고 쓸려갈 뿐이고

겸허히 받아들이고 타고 넘으면 파도를 정복하는

기쁨과 즐거움이 밀려 오게 됩니다.

 

 

저는 오늘도 파도에 얻어맞고

파도에 쓸리다가 결국 타 넘기도 합니다.

 

언제쯤 좀 잠잠해질수 있을까요;;

 

잠시라도 유유히 떠있고 싶네요

 

 

 

2010년 10월 7일 목요일

[100903] 시작하기

 http://msdn.microsoft.com/en-us/library/ff402531(v=VS.92).aspx

 

윈폰 개론

  • 윈도우 7 폰은 MS의 3 Screen 전략의 일환이다. MS 플랫폼을 사용하는 것끼리는 모두 통할수 있다. (정말?)

Ff402531.916128b2-5c36-44c1-8f57-9a5600f2ffd4(en-us,VS.92).jpg

  • 윈도우 7 폰은 사용자보다 좀더 개발자를 위해 신경쓰여 개발되었다.
  • 윈도우 7 폰은 클라우드를 지원하도록 만들어졌다. (PUSH)
  • 결국 MS 정책은 윈도우 + 닷넷 플랫폼 기반의 제품으로 천하통일 하겠다는 거임.
  • 잘?만든 플랫폼 열 자식 안부럽다.


아키텍쳐

  • W7P 을 지원하기 위해서 4종류의 아키텍쳐가 사용된다.

 

Ff402531.0793c2c3-bb8a-45cc-88cc-a3e0475d1f2b(en-us,VS.92).jpg

 

Runtime on Screen
  •  Runtime on Screen은 폰에 들어가는 아키텍쳐다. 폰에 필요한건 여기 다있다.
    •     특이점 - Framework가 2개 : 실버라이트는 보통 UI를 위한 것이고 XNA는 게임에 특화된 프레임웍이다.
    •     공통점 : 두 프레임웍 다 공통 베이스 라이브러리를 사용한다. (요 아랜 바로 OS 커널과 드라이버들이다. - 나중에 다루겠음)

       

Ff402531.67ce14d9-11ed-40cc-a4ac-b0807bfb59e0(en-us,VS.92).jpg

 

 Tools
  • 툴은 개발툴이다 그냥 VS2010으로 개발하면 된다.
  • 하지만 에뮬레이터가 Vista SP3 이상에서만 돌아가기 때문에 XP에서는 개발 못한다.  그냥 Win7에서 개발하라.

    • WDF 드라이버 모델을 XP에서 지원 못하기 때문인 것으로 사료됨

 

클라우드

 

 포털 (윈폰 마켓플레이스)
  • 포털은 그냥 앱을 배포하고 판매하고 마케팅 정보를 얻거나 이용하기 위한 수단이다.
  • 안드로이드와 다르게, 앱 인증과 검증을 거쳐야 한다. (엑티브 엑스의 과오를 범하지 않기 위해서라나...)
  • CRM을 제공한다고 한다. (요점 사업아이템으로 주목할 만함)
  • 돈 받는게 제일 까다롭다... 법적인 문제가 해결되었는지 모르겠음 (2010-09-03)
  • 우리나라에는 왜 안들어올까요?

 

앱 개발 라이프사이클

  • (SE에서 항상 이야기 하지만) 대다수의 App은 계획->개발->테스트 및 디버깅->배포->유지보수의 과정을 거치게 된다.
  • 아래는 윈폰의 라이프 사이클임

    • 대다수의 타 플랫폼 앱 시장과 동일하다.

Ff402531.0292c3ea-b3c8-4546-9554-6118066c06b0(en-us,VS.92).jpg 

 

라이프사이클

1) Windows Live ID를 만든다. 이걸로 개발자 포털에 가입하고 개발자 인증을 받는다.

2) 인증 툴킷을 다운받고 개발에 이용할 폰을 등록한다.

3) 개발->디버깅

4) 배포는 마켓 플레이스에 XAP 파일을 업로드 하여 진행한다. (빌드하면 .XAP이 생성된다.)

   개발자 포탈에 가입하여 앱을 올린다. - 사이트의 인증 및 테스트 과정을 통과해야만 앱을 올릴수 있다.

5) 마켓 플레이스에서는 유지보수 및 마케팅에 필요한 자료를 제공한다.

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2010년 10월 6일 수요일

고도원의 아침편지 : 무르익을 때까지

무르익을 때까지


창조적 작업은
생산되는 동안 훼손될 수도 있는 매우 연약한 것이다.
그래서 비밀이 필요하다. 창조적 작업은
아직 무르익기도 전에 공개되면
추진력과 확신을 잃고
사그라질 수 있다.


- 폴 투르니에의《비밀》중에서 -


* 숲속 밤톨 하나도
무르익을 때까지 기다릴 줄 알아야 합니다.
익기 전에 따면 토실한 알밤을 얻을 수 없습니다.
모든 이치가 그러합니다. 큰 일도, 작은 일도
무르익을 때까지 기다려 주어야 합니다.
특히 이 세상에 처음 선보이는
'창조물'일수록 묵묵함이
필요합니다.

2010년 10월 5일 화요일

사내강의 요약 : 아인슈타인과 피카소가 만나다.


딴지일보...[고찰] 아인슈타인이 바꿔놓은 한국의 입시제도
이미지출처 : old.ddanzi.com
세상을 보는 새로운 만남 조선닷컴 블로그

이미지출처 : blog.chosun.com


지난주 수요일에 사내에서 진행된 강좌 요약입니다.



1) 메인주제 :

예술과 과학은 옛날에는 한몸이었으나
              
근대에 들어 철저하게 나뉘어 졌다가

최근에 들어와 하나로 다시 융합하고 있다.


2) 왜 융합하는가? :

근대의 과학과 예술이 독립되어 성장하기엔

이제 어느정도 한계에 다다랐다.

새로운 발전을 위해서는 계의 경계를 뛰어넘어

서로에게서 새로운 영감을 얻는것이 필요하다.


3) 새로운 사실들



마중물 - http://

이미지출처 : www.mjm.co.kr

-  괴테는 대문호이자 동시에 과학을 철저히 탐구한 과학자였다. (뉴턴과 논쟁하기도 하였다.)


잭블랙 주연의 걸리버 여행기 영상

이미지출처 : www.nemopan.com

- 조나단 스위프트는 뉴턴의 거만함이 싫어 걸리버 여행기를 썼다.


20세기 (4) : 다다 - 뒤샹, 피카비아 - sohoo214의 블로그 - 야후! 블로그

이미지출처 : kr.blog.yahoo.com













- 뒤샹은 그의 작품 "벌거벗겨진 신부"에서 최초로 과학적 재료로 예술을 표현하였다.



위지아 - 아이템 : 뒤샹 - 계단을 내려가는 나체 1912

이미지출처 : www.wisia.com


- 뒤샹은 "계단을 내려오는 나체" 에서 움직임을 통해 다차원을 화폭에 표현하려고 했다.



피카소

이미지출처 : rami86.com.ne.kr












- 피카소는 과학자 푸앙카레의 다차원 이론에 영향을 받고 큐비즘을 이룩하였다.



세상을 보는 새로운 만남 조선닷컴 블로그

이미지출처 : blog.chosun.com












- 대형 하드론 가속기 건설을 위해 관련 과학자들은 군대처럼 일한다.




국내 최초 미디어아트 채널 :: 앨리스온 :: 방송80년 KSB특별전-백남준 ...

이미지출처 : aliceon.tistory.com










- 백남준은 비디오 아트를 하기위해서 회로이론을 공부하였다.





4) 우리의 자세

하나. 프로젝트에 철저하고 이성적인 분석 뿐만 아니라

시각적이고 비 언어적인 사고또한 필요하다.

둘. 전문가 들로만 팀을 짜면 위험하다 왜냐면 문제의 한면만 파고들수 있기 때문이다.

그래서 중간에 비 전문가가 있으면 전문가 집단이 놓칠수 있는 중대한 발견을 제공해줄수 있다.




2010년 9월 29일 수요일

정의란 무엇인가 : 우리는 우리를 소유하는가?


"정의란 무엇인가"라는 책에 대해서 지난주 주말 푸랑 토론한 내용~


책에는 이렇게 나와 있다.

우리는 우리를 소유하는가?

우리가 세금을 낸다면...
노동의 일부를 내는 것이고
그것은 곧 우리 시간의 일부를 내는 것이고
따라서 어떻게 보면 우리는 우리의 시간은 소유하지 않으므로
우리의 일부를 소유하지 않는 것일수도 있다.


위 글의 논지는, 국가에 세금을 바치는 것은 곧 우리의 시간을 바치는 것과
마찬가지이므로 우리는 결국 국가의 소유임에 다름없다는 것이다.

많이 일해서 많이 벌수록 세금을 많이 내게 되는것은 사실이다.
그렇다면 노동의 양이 많은 만큼 우리는 우리의 시간을 소유할수 없게 되는 것이고
결론적으로 우리는 우리의 일부를 소유할수 없게 되는 것이다.

또한, 위 글의 또다른 전제는 노동의 가치가 시간에 비례한다는 것이다.
이는 산업사회에서는 맞는 이야기이다. 공장에서는 시간 많이 들이면 많이 생산하므로
시간이 많이 드는 일이 곧 가치가 높은 일이라는 공식이 성립한다.
결국 우직하게 열심히 일하면 그만큼 일의 가치가 높아진다는 것이다.

하지만,
일에 많은 시간을 투자하는 것은 결국 스스로를 소유하지 않게 되는 것이라는 전제가 있으므로
많은 시간을 투자해 우직하게 일하면 그만큼 나를 더 소유하지 않게 되는 것이다.

아이러니가 아닐수 없지 않은가?

따라서 결국 무리하게 야근을 하고 주말출근을 하며 자신을 일에 바치는 것은
결국 자기 자신을 그만큼 더 잃게되는 것일지도 모른다.

물론 산업사회의 노동자로서는, 일한 연차만큼 경험이 쌓이고 숙련도가 올라가므로
다른 의미에서는 일이 자신을 키우고 따라서 완전히 자신을 잃지는 않는다고 할수는 있다.

하지만 지식사회는 다르다. 지식사회에서는 내 일만 열심히 한다고 해서 그의 가치가 올라가진 않는다.
끊임없이 새로운 지식을 탐구하고 자신의 영역을 넓혀가야 변화에서 살아남을수 있다.

따라서 자기 자신을 소유하지 않을 만큼 몸바쳐 일하는 것은 결국 자신의 수명과 가치를 깎아먹을수도
있다는 것이다. 너무 열심히 일만 하다보면 결국 자신은 자신의 현재 일자리와 회사 밖에서는
별다른 가치가 없는 존재가 될수도 있는 것이다. (실제로 그럴지도 모른다.)

따라서 결국 우리 엔지니어 = 지식 노동자는 일에서 떠나 자신을 위한 공부를 할 시간이 필요하다.
하지만 여러 환경들은 여전히 산업사회라서, 앉아있는 시간만큼 그의 생산성과 가치를 인정받으므로,
자신을 지식사회가 아닌, 산업사회의 일부로 스스로 인정하고 적응하지 않는다면

결국 그러한 환경에서 떠나거나 도태되고 만다.
적어도 위와 같은 모순을 깨달은 사람이라면...

그래서 많은 사람들이 괴로움을 느끼는 지도 모른다.




2010년 9월 25일 토요일

Processing 외부 library 설치 장소: Sketchbook

대부분의 언어가 그렇듯이, Processing 도 독자 라이브러리를 지원합니다.

 

오늘 처음으로 TRAER.PHYSICS 라는 외부 라이브러리를 사용했습니다.

 

프로세싱은 외부 라이브러리를 Sketchbook 폴더 아래에 두라고 합니다.

 

그래서,

 

C:\Processing\libraries

(C:\Processing\ 은 프로세싱 실행파일이 있는 폴더)

 

밑에 두면 되는 줄 알았는데 그게 아니네요.

 

아래 주소가 정확합니다.

 

C:\My Documents\Processing\libraries\

(in Windows)

 

/Users/Username/Documents/Processing/libraries

(in Mac OS X)


 

 

참조 링크:

http://www.learningprocessing.com/tutorials/libraries/

 

2010년 9월 17일 금요일

Lenovo thinkpad synaptics utilities

Lenovo Thinkpad의 Touchpad 회사인 Synaptics에서 만든 터치패드를 이용한 유틸리티 입니다.

 

1. SynZMetr

 

lenovo 드라이버와 기타 유틸리티 설치 시 C:\Program Files\Synaptics\SynTP 경로에 설치 됩니다. 터치패드를 누르는 강도에 따라 빨간 그래프가 그려집니다.

 

간단한 실험을 해봤는데, 역시 실제 압력 값은 아니군요. 전도성 고무로도 해봤는데요, 아무리 세게 눌러도 오른쪽 그래프가 한계네요. (왼쪽 두개는 손으로 한 것.) 전기가 흐르는 양에 따라 표시되는 것 같습니다.

 

 

 

2. Synaptics Drum Pad

 

 터치 패드를 누르는 위치에 따라, 위 4개 사각형 중 하나에 표시가 되고 동시에 소리가 나오네요. 귀여운 어플리케이션입니다. 그런데 생각보다 인식이 잘 안되네요. 터치패드는 그 위에서 이동하는 손을 인식하기에는 적합하지만, tap을 인식하기에는 적당하지 않은가 봅니다.

 

 

3. Theremin

 터치패드에서 터치되는 위치에 따라 소리가 나는 유틸리티입니다. 너무 높은 소리도 나서 듣기 힘드네요. ㅎㅎ

 

 

4. Touch Pad Says

 2번과 같은 UI지만, 터치패드가 내는 소리를 따라서 치는 간단한 게임입니다.

 

 

 

위 2~4번 유틸리티는 Synaptics 홈페이지에서 다운로드 할 수 있습니다.

http://www.synaptics.com/support/utilities

 

lenovo 사용자라면 한번 시도해 보세요~ ^^

 

 

 

+ 친절하게 라이브러리도 제공하네요.

http://www.synaptics.com/developers/archive 에서 "MepLib Porting Guide" 란을 참고해보세요. 터치패드를 응용한 프로그램도 재미있을 것 같네요. ^^

2010년 9월 16일 목요일

Moon walk: gesture recognizing keyboard -- sensor test

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

졸업 연구 중인 Moon walk (잠정적 이름 ^^;) 센서 테스트 영상입니다.

2010년 9월 13일 월요일

WPF Study -- Data Binding and Style

Data Binding
 - 컨트롤과 엘리먼트를 데이터에 연결시키는 기술

Style
 - 엘리먼트에 적용되는 프로퍼티의 집합.


2010년 9월 10일 금요일

오토마우스 오토키보드 소스

푸 요청으로 올립니다.

옛날에 짠 소스인데... 아래 SendInput  이라는 API 로 마우스/키보드 흉내를 낼수 있습니다.

오토 마우스/ 키보드가 가능하다는 것이지요...

굳이 복잡한 후킹기술 안써도 아래 소스로 충분합니다.

 

 

[code csharp] using System; using System.Runtime.InteropServices; namespace AutoKeyMouseExample { internal class Win32APIs { [DllImport("user32.dll", SetLastError = true)] public static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize); [DllImport("user32.dll")] public static extern IntPtr GetMessageExtraInfo(); [StructLayout(LayoutKind.Sequential)] public struct MOUSEINPUT { public int dx; public int dy; public uint mouseData; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] public struct KEYBDINPUT { public ushort wVk; public ushort wScan; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] public struct HARDWAREINPUT { public uint uMsg; public ushort wParamL; public ushort wParamH; } [StructLayout(LayoutKind.Explicit)] public struct INPUT { [FieldOffset(0)] public int type; [FieldOffset(4)] //* public MOUSEINPUT mi; [FieldOffset(4)] //* public KEYBDINPUT ki; [FieldOffset(4)] //* public HARDWAREINPUT hi; } /***************************** * EVENT CONSTANTS * *****************************/ public const int INPUT_MOUSE = 0; public const int INPUT_KEYBOARD = 1; public const int INPUT_HARDWARE = 2; public const uint KEYEVENTF_EXTENDEDKEY = 0x0001; public const uint KEYEVENTF_KEYUP = 0x0002; public const uint KEYEVENTF_UNICODE = 0x0004; public const uint KEYEVENTF_SCANCODE = 0x0008; public const uint XBUTTON1 = 0x0001; public const uint XBUTTON2 = 0x0002; public const uint MOUSEEVENTF_MOVE = 0x0001; public const uint MOUSEEVENTF_LEFTDOWN = 0x0002; public const uint MOUSEEVENTF_LEFTUP = 0x0004; public const uint MOUSEEVENTF_RIGHTDOWN = 0x0008; public const uint MOUSEEVENTF_RIGHTUP = 0x0010; public const uint MOUSEEVENTF_MIDDLEDOWN = 0x0020; public const uint MOUSEEVENTF_MIDDLEUP = 0x0040; public const uint MOUSEEVENTF_XDOWN = 0x0080; public const uint MOUSEEVENTF_XUP = 0x0100; public const uint MOUSEEVENTF_WHEEL = 0x0800; public const uint MOUSEEVENTF_VIRTUALDESK = 0x4000; public const uint MOUSEEVENTF_ABSOLUTE = 0x8000; /***************************** * VIRTUAL KEYS * *****************************/ public enum VK : ushort { /* * Virtual Keys, Standard Set */ VK_LBUTTON = 0x01, VK_RBUTTON = 0x02, VK_CANCEL = 0x03, VK_MBUTTON = 0x04, /* NOT contiguous with L & RBUTTON */ VK_XBUTTON1 = 0x05, /* NOT contiguous with L & RBUTTON */ VK_XBUTTON2 = 0x06, /* NOT contiguous with L & RBUTTON */ /* * 0x07 : unassigned */ VK_BACK = 0x08, VK_TAB = 0x09, /* * 0x0A - 0x0B : reserved */ VK_CLEAR = 0x0C, VK_RETURN = 0x0D, VK_SHIFT = 0x10, VK_CONTROL = 0x11, VK_MENU = 0x12, VK_PAUSE = 0x13, VK_CAPITAL = 0x14, VK_KANA = 0x15, VK_HANGEUL = 0x15, /* old name - should be here for compatibility */ VK_HANGUL = 0x15, VK_JUNJA = 0x17, VK_FINAL = 0x18, VK_HANJA = 0x19, VK_KANJI = 0x19, VK_ESCAPE = 0x1B, VK_CONVERT = 0x1C, VK_NONCONVERT = 0x1D, VK_ACCEPT = 0x1E, VK_MODECHANGE = 0x1F, VK_SPACE = 0x20, VK_PRIOR = 0x21, VK_NEXT = 0x22, VK_END = 0x23, VK_HOME = 0x24, VK_LEFT = 0x25, VK_UP = 0x26, VK_RIGHT = 0x27, VK_DOWN = 0x28, VK_SELECT = 0x29, VK_PRINT = 0x2A, VK_EXECUTE = 0x2B, VK_SNAPSHOT = 0x2C, VK_INSERT = 0x2D, VK_DELETE = 0x2E, VK_HELP = 0x2F, /* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */ VK_LWIN = 0x5B, VK_RWIN = 0x5C, VK_APPS = 0x5D, /* * 0x5E : reserved */ VK_SLEEP = 0x5F, VK_NUMPAD0 = 0x60, VK_NUMPAD1 = 0x61, VK_NUMPAD2 = 0x62, VK_NUMPAD3 = 0x63, VK_NUMPAD4 = 0x64, VK_NUMPAD5 = 0x65, VK_NUMPAD6 = 0x66, VK_NUMPAD7 = 0x67, VK_NUMPAD8 = 0x68, VK_NUMPAD9 = 0x69, VK_MULTIPLY = 0x6A, VK_ADD = 0x6B, VK_SEPARATOR = 0x6C, VK_SUBTRACT = 0x6D, VK_DECIMAL = 0x6E, VK_DIVIDE = 0x6F, VK_F1 = 0x70, VK_F2 = 0x71, VK_F3 = 0x72, VK_F4 = 0x73, VK_F5 = 0x74, VK_F6 = 0x75, VK_F7 = 0x76, VK_F8 = 0x77, VK_F9 = 0x78, VK_F10 = 0x79, VK_F11 = 0x7A, VK_F12 = 0x7B, VK_F13 = 0x7C, VK_F14 = 0x7D, VK_F15 = 0x7E, VK_F16 = 0x7F, VK_F17 = 0x80, VK_F18 = 0x81, VK_F19 = 0x82, VK_F20 = 0x83, VK_F21 = 0x84, VK_F22 = 0x85, VK_F23 = 0x86, VK_F24 = 0x87, /* * 0x88 - 0x8F : unassigned */ VK_NUMLOCK = 0x90, VK_SCROLL = 0x91, /* * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. * Used only as parameters to GetAsyncKeyState() and GetKeyState(). * No other API or message will distinguish left and right keys in this way. */ VK_LSHIFT = 0xA0, VK_RSHIFT = 0xA1, VK_LCONTROL = 0xA2, VK_RCONTROL = 0xA3, VK_LMENU = 0xA4, VK_RMENU = 0xA5, VK_BROWSER_BACK = 0xA6, VK_BROWSER_FORWARD = 0xA7, VK_BROWSER_REFRESH = 0xA8, VK_BROWSER_STOP = 0xA9, VK_BROWSER_SEARCH = 0xAA, VK_BROWSER_FAVORITES = 0xAB, VK_BROWSER_HOME = 0xAC, VK_VOLUME_MUTE = 0xAD, VK_VOLUME_DOWN = 0xAE, VK_VOLUME_UP = 0xAF, VK_MEDIA_NEXT_TRACK = 0xB0, VK_MEDIA_PREV_TRACK = 0xB1, VK_MEDIA_STOP = 0xB2, VK_MEDIA_PLAY_PAUSE = 0xB3, VK_LAUNCH_MAIL = 0xB4, VK_LAUNCH_MEDIA_SELECT = 0xB5, VK_LAUNCH_APP1 = 0xB6, VK_LAUNCH_APP2 = 0xB7, /* * 0xB8 - 0xB9 : reserved */ VK_OEM_1 = 0xBA, // ';:' for US VK_OEM_PLUS = 0xBB, // '+' any country VK_OEM_COMMA = 0xBC, // ',' any country VK_OEM_MINUS = 0xBD, // '-' any country VK_OEM_PERIOD = 0xBE, // '.' any country VK_OEM_2 = 0xBF, // '/?' for US VK_OEM_3 = 0xC0, // '`~' for US /* * 0xC1 - 0xD7 : reserved */ /* * 0xD8 - 0xDA : unassigned */ VK_OEM_4 = 0xDB, // '[{' for US VK_OEM_5 = 0xDC, // '\|' for US VK_OEM_6 = 0xDD, // ']}' for US VK_OEM_7 = 0xDE, // ''"' for US VK_OEM_8 = 0xDF /* * 0xE0 : reserved */ } } } [/code]

2010년 8월 26일 목요일

IT업계 여성으로 행복하게 살아가기 위한 노하우 세미나 (#1 우미영 퀘스트소프트웨어코리아 대표님편)

오늘 데브멘토에서 주최하는 'IT업계 여성으로 행복하게 살아가기 위한 노하우 세미나'에 참석하였습니다. 정원이 100명이었는데 20명 정도 왔습니다. 세미나 시간이 오후 2시라 직장에 계신 분들이 신청해놓고 많이 못 오신 것 같아요.

 

강연자 분은 우미영 퀘스트소프트웨어 지사장님과 박남희 MS 상무님이셨습니다. 두 분 다 정말 좋은 강의를 해주셔서 여성으로서의 인생과 커리어를 고민하고 있는 저에게 많은 도움이 되었습니다. 아래는 두 분 프로필입니다.

 

 

이번 글에서는 우미영 퀘스트소프트웨어코리아 대표님의 강의를 나름 요약하겠습니다. 캐주얼하게 ^^

 

 

커리어

 

졸업당시 커리어에 대한 고민을 별로 하지 못했다. 당시 친구들은 준비를 잘해서 대기업에 취업하거나 공무원, 교사가 되었다. 나는 준비를 잘 못했기 때문에 졸업하고 나서 할 일이 없었다. 그래서 선배들이 만든 벤처기업에 들어가게 되었다. 당시에는 벤처기업이라는 말도 생소했다. 중소기업이었다. 실제로는 5-6명이 있어 소기업이라고 불릴 정도였다. 전공이 영문과였기 때문에 IT기업이었던 선배네 회사에서는 잡다한 일을 주로 하게 되었다. 번역, PR, 고객 교육, 메뉴얼 작성, 그리고 개발,... 8년 동안 열심히 일했다.

 

그런데 IMF가 오고나서 월급도 넉넉히 받지 못한 회사에서 1년 동안 무급으로 일한 후, 결국 회사를 그만두게 되었다. 중소기업에서 너무 고생하였기 때문에 이제 죽어도 중소기업으로 가지않겠노라, 결심하고 대기업인 삼성 SDS의 문을 두드리게 되었다. SDS의 아는 분께 이력서를 보여드렸지만, 돌아오는 말은 "미영씨를 쓰고 싶은데, 미영씨가 회사에 어떤 밸류를 줄 수 있는 지 모르겠어요."라는 말이었다. 경력관리를 소홀히 한 탓이었다.

 

실패한 인생이라고 생각되었다. 8년 전으로 돌아가 다시 시작하고 싶은 마음 뿐이었다. 그래서 지금이라도 공무원이나 교사 준비를 할까, 라고도 생각했다. 그러나 아이들도 있고, 사정이 여의치 않아 결국 막 창업한 start up 회사로 다시 입사하게 되었다. 하지만 이번에는 커리어에 대해 고민을 하고, 포지션에 대한 결정을 하였다.

 

결정은 pre-sales 이었다. (지금의 technical sales) 지금도 그렇지만 그때는 영업에 대한 편견이 더 강했다. 방문판매를 하거나, 물건을 팔기위해 사람을 속이고, 문전박대를 당하기도 하는 이미지였다. 부모님의 반대도 거셌다. 하지만 나에게 맞는 일이라 생각하였기 때문에 마음을 굳게 먹고 선택을 하였다.

 

pre-sales 일을 하다보니 영업 쪽에 욕심이 생겼다. 영업 일을 하고 싶어서 사장과 영업사원 몰래 1년 동안 두 회사에 영업 활동을 하였다. 그 회사가 대전에 있어 일주일에 두 번은 대전에 갔다. 개발도 해봤으니 기술적인 것을 물어보면 알려주고, 모르면 공부해서라도 그 다음주에 알려줬다. 그렇게 1년을 하니 어느날 수억의 수주가 떨어졌다. 계약서를 가지고 사장님께 가서 영업직으로 옮겨달라고 요청했다.

 

그렇게 영업직으로 옮겼지만, 술도 잘마시고 고객과 노는 것도 잘 했지만, 남자 영업사원과의 격차는 좁혀지지 않았다. 남자들만의 관계를 넘어설 수는 없었다. 차별화가 필요했다. 그래서 하게 된 것이 기술책 (당시 유행하던 자바언어) 번역이었다. 영문과 출신이니 할만 하다고 생각해서 시작했고, 그래서 받은 돈이 겨우 200만원이었다. 그 돈으로 내가 번역한 책을 사서 만나는 고객마다 드렸다. 그랬더니 고객들이 나를 다르게 받아들이기 시작했다.

 

나는 단순한 영업사원이 아니라, 전문가가 되어있었다. 기술 강의도 하게 되었고, 남성 영업사원과는 다른 강점을 갖게 되었다. 차별점을 갖게 된 것이다.

 

 

필살기

 

그렇게 열심히 공부하며 열정적으로 고객을 만나니 3년 동안 2800명의 고객을 만나게 되었다. 한번이라도 만난 사람은 그날그날 엑셀에 정리했다. 그렇게 만시간 정도 투자하니, 이제는 내가 연락하지 않아도 고객한테서 저절로 연락이 오게 되었다. 나를 찾는 사람이 생긴 것이다.

 

물론 시간 투입만이 능사는 아니다. 방법론이 중요하다. 10년, 15년 영업하던 사람만의 노하우를 배우기 위해 따로 책을 사서 공부했다. 당시에는 IT 관련 영업에 대한 책이 번역되지 않아 아마존에서 책을 구매해서 공부했다. 아직도 적용할 내용이 많아 현재 번역본을 가지고 스터디 그룹을 운영하고 있다. 따로 공부한 것이 많은 도움이 되었다.

 

이 모든 것은 내가 영업을 좋아하기 때문에 가능했던 것이다. 나는 고객을 만나는 것을 정말 좋아했다. 어떤 고객을 만나고 일주일이 지나면 그 고객을 다시 보고 싶어 안달이 난다. 내가 좋아하는 것을 알고 선택했기 때문에, 이렇게 까지 올 수 있다. 현재는 지사장이 되어 고객을 직접 만날 일이 많지 않지만 일부러라도 고객을 만나려 하고 있다.

 

10년 후는 보이지 않는다. 그러니 현재 좋아하는 일에 집중하는 것이 중요하다.

 

 

여성만의 강점

 

직급이 올라갈 수록 일희일비하지 않고, 다양한 분야에 대한 리더십을 갖는 것이 중요하다. 그것보다 더 중요한 것은 청렴함이다. 첫째도 청렴, 둘째도 청렴이다. 나는 여성이 이것에 대해 강하다고 생각한다. 오락실가자고 해서 따라가지 않지 않는가? ^^

 

 

직장생활은 가정생활에 도움이 된다.

 

배우자는 직장동료와 같아 서로 직장에서의 고충을 이해할 수 있다. 자녀는 팀원과 같아 내가 칭찬하고 동기부여해야할 대상이고, 나와 다른 독립체이다. 다른 가족, 도우미아줌마, 경비아저씨는 협력사와 같다. 내가 잘하면 그만큼의 신뢰를 받아, 안심하고 나의 팀원을 맡길 수 있다.

 

 

인맥관리

 

나는 인맥관리를 따로 하지 않는다. 따로 인맥을 만드는 모임에 나가봤는데, 먼 인맥 때문에 가까운 인맥을 소홀히 하게 되는 것 같았다. 그래서 오래 직장생활을 하다 자연스레 생긴 주변의 친구, 동료가 나의 진정한 인맥이라고 생각하고 소중하게 관계를 유지하고 있다.

 

 

써놓고 나니 요약이 아니네요. ^^; 다른 내용도 있었지만 다음에 따로 정리하겠습니다.

정말 재밌고 푸근한 강의여서 한 시간이 후딱 지나갔습니다. 다음은 Q&A에요. ^^

 

 

Q. 성공한 인생이란?

A. 자신이 좋아하는 것을 찾아가는 인생이 성공한 인생이라고 생각합니다. ^^

 

Q. 어떤 배우자를 만나는 것이 좋은가요? (제가 한 질문이에요 ^^;)

A. 첫째 화목한 가정에서 자란 사람, 둘째 건강, 셋째 성실함이라고 생각합니다. 인물도 좋으면 좋지요. ^^

 

 

질문하고 머니클립 선물 받았어요~ 매우 고급스러워서 기분이 좋았답니다. ^^ 강의 끝나고 명함도 받았어요~

 

 

내일 메일 보내려구요. 멘토가 필요하면 연락 달라고 하셔서 감동받았습니다. ㅎㅎㅎ

 

다음으로 박남희 상무님 편도 곧 올리겠습니다.

 

2010년 7월 19일 월요일

삼성전자 W7P 모습

엔가젯 http://www.engadget.com/2010/07/19/windows-phone-7-in-depth-preview/ 에 삼성전자의 Windows 7 Phone 모습이 올라왔군요, 이전에 데모로 보여준 바로 그 물건인듯 한데. 외관은 옴니아 HD와 유사합니다.


하지만 회사 특성상 바뀔수도 있구요... 그래도 윈도폰 = 업무폰 이라는 사고를 가지신 분들이 많아서 (특히 높으분들) 과연 MS의 이 새로운 시도가 잘 먹힐지는 올 가을에 두고봐야 겠습니다.

PS: 엔가젯에선 좀 후한 점수를 줬더군요. MS의 노력이 참 가상하다는 뉘앙스와 함께요....


2010년 7월 17일 토요일

윈모데브 Win7폰 스터디 2일차 정리

Windows 7 phone WinMoDev 세미나 2일차


스터디용 까페 트위터로 조별 회의 진행

과제: Hello world 한번씩 찍어볼 것

자기 조원들을 기준으로 해서 조 정보들을 에뮬레이터에 띄워보기 (List App으로 만들어 볼 것!)

조원: 모다, 불곰, 휘파람, 수야 (4)

-      8 14, 24일 스터디 예정 (이번달은 1주일에 1회 스터디)

-      오후 2시로 Study 고정

Windows Marketplace

-      99불 등록비

-      DreamSpark 에서 지원 예정

-      Hoff test를 통과해야만 업로드 가능

-      Market place requirements 문서 참고할 필요가 있음

Namespace Study

-      모바일 위치 정보 관련: System.Device.Location

-     패턴 카드놀이 식으로 네임스페이스를 학습하자.

-     제안: 초시계를 두고 스피드 게임을 하자

-     추가 창의적 제안 (커뮤니티 올릴것) : 가족 오락관 처럼 스무고개, 스피드게임, 귓속말 전달

-     게임으로 공부하는데 필요한 것들 : 벌칙, 규칙, 준비물 - 장점 : 좀더 재밌게 빨리 배울수 있다.
단점 : 오래못하고 피곤하다.

 

2010년 7월 9일 금요일

조절


마라톤은 단거리 달리기가 아닙니다.
인생은 마라톤이라고 합니다.
마라톤에선 전력질주는 마지막에서 해야 합니다.
인생에선 전력질주는 필요할 때마다 해야 합니다.
만일 열정이 넘쳐서, 남이 시켜서 아무때나 마구 한다면
얼마안가 주저앉을 겁니다.

자신의 마라톤은 잘 하는 사람들이
다른 사람의 마라톤은 잘 도와주지 못합니다.
옆에서 달리는 사람이 쳐질때 물한잔 건네주거나
"힘내" 라고 말하지 못할망정
"나약한 놈"이라고 하대하는 분들이
이 나라의 정점에 더 많이 올라서시는것 같습니다.
그분들은 자기 주변의 사람들의 상황엔 별 관심이 없습니다.
단지 주변보다 얼마나 더 앞으로 나아갈수 있을 것인가
주변을 어떻게 이용하고 괴롭혀야 더 자기가 결승점에 가까이 갈수 있을 것인가
그런 것들에만 관심있고 그것들을 잘 하시는것 같습니다.

그분들에겐 "사람"은 없습니다.
그분들에겐 "결과"만이 있을 뿐입니다.
그리고 그렇게 십수년을 사신분들이라
이제 바꾸는것은 불가능합니다.

저희는 어린 세대로써 그러한 분들을 저 먼발치에서 바라봅니다.
일부는 절망하며, 일부는 거부하고 일부는 동경합니다.
저는 3가지를 모두 경험하고 있습니다.
하지만 그분들을 닮으려 할수록 저에게서 "사람"이라는 부분이 사라지는것을 느낍니다.
외적으로 풍성할지 몰라도 몸은 피곤하고 마음은 허전하며 괴롭습니다.
적은 일에도 쉽게 화내고 스트레스를 받습니다.
그리고 주변사람들을 아프게 만들고 희생시킵니다.

그래서 저는 그분들처럼 되는것은 포기했습니다.
다만, 결과보다 과정을, 나보다 모두를, 강하기보다 유함을 선택하려 합니다.
그리고 "즐거운 인생"이 뭔지 탐구를 시작한지 1년이 다되어 가는 지금
이제 그 "즐거운 인생"이었던 지난 시간의 일부분을 찬찬히 곱씹어 보려 합니다.
그리고 그러한 순간을 좀더 자주 만들려고 합니다.
그러한 시간이 있어야만, 몰아칠때에도 잘 견뎌낼수 있는 힘을 키울수 있을것입니다.
그래서 살짝살짝 페달을 덜 밟을 것입니다. 리듬을 타는 법을 배울 것입니다.


조절하는 법을 배울 것입니다.



PS:
누가 또는 내 마음이 뭐라고 하든
나는 내 주체적으로 움직일 것입니다.
상처받는것도 상처주는것도 내가 결정합니다.
누구도 나를 맘대로 쥐고 흔들수 없습니다.
내 마음조차 나를 맘대로 쥐고 흔들수 없습니다.










2010년 7월 8일 목요일

Introduction to XAML

안녕하세요. 푸우입니다. 요즘 연구실에서 페졸드 아저씨의 책으로 WPF 세미나를 하고 있습니다.

제가 준비했던 19장, 20장 스터디 자료를 올립니다.

Introduction To Xaml
View more presentations from phoooo.

파일 첨부합니다.

2010년 7월 1일 목요일

Say Radio 추가

안녕하세요. 푸우입니다.

저는 음원서비스도 사용하지 않고, 다운받을 수 있는 루트도 없기 때문에 ^^ 블로그를 기웃거리며 음악을 듣는 편입니다.

그러던 중 저희 블로그에도 손쉽게 음악을 넣을 수 있는 방법을 알게되었습니다. 바로 Say Radio입니다.


저희 블로그 위젯에서 확인하실 수 있습니다. ^^ 기본으로 재생안하게 설정되어 있어요. 플레이 하시면 최신 인기곡이 랜덤하게 나옵니다. ^^

노래는 세이캐스트라는 방송국 형태의 커뮤니티에서 정한 노래가 나옵니다. 클럽박스에서 클럽과 비슷한 개념입니다.


세이클럽의 기존 서비스에 맞춰, 채팅에 충실한 UI를 갖고 있습니다. 방송국 리스트를 보니, 트로트 방송국이 많네요. 어르신들이 많이 사용하시는 듯. ^^

가끔 끊기는 감이 있지만, 들을만 합니다. 다만 싸이월드처럼 전체 곡목 리스트를 보고 선택할 수 없는 점이 아쉽네요. 하지만 방송국을 바꿔서 노래를 바꿀 수 있습니다. 푸우처럼 노래제목을 잘 모르고, 틀어주는대로 듣는 ^^ 사람에게는 좋은 서비스입니다. 알송의 음악방송과 가장 큰 차이점은 블로그에 음악을 넣을 수 있는 웹 위젯을 제공하는 점입니다.

2010년 6월 21일 월요일

3D Webbrowser

프로그램 안에 웹 브라우저 기능을 넣어야 하는 일이 있습니다. 근데 다음의 기존 웹 브라우져들의 기능이 영 시원치 않아서 다른걸 찾아보았습니다.

 

  •  System.Windows.Forms.Control.WebBrowser
    닷넷에서 웹브라우저를 사용하기 위해서 사용할수 있는 브라우져 입니다. IE를 호스트 하여 만들어져 있습니다.
  •  System.Windows.Control.WebBrowser
    위 윈폼 브라우저를 WPF에서 사용하기 쉽게 하기 위해서 3.5 부터 지원하는 브라우져라 합니다.
    하지만 위 브라우저를 WPF용으로 만든것 이상도 이하도 아닙니다.

위 2개는 비주얼 캡쳐도, 위치 변형도 안되는 그런 컨트롤이라

 

그래서 발견한것이 아래 링크의 컨트롤입니다.

http://chriscavanagh.wordpress.com/2009/08/25/a-real-wpf-webbrowser/

 

그냥 집어넣고 크기 변경하고 회전시키고 변형시키는거 모두 다 되네요 ㅋㅋ



게다가 3D 효과도 ㅋㅋ


 

배경 투명도 ㅋㅋㅋ


 

 

터치가 될런지 모르겠지만;;; 조금 손보면 괜찮을지도?

 

 

 

 

 

 


이 글은 스프링노트에서 작성되었습니다.

2010년 6월 19일 토요일

VisualBrush와 RenderTargetBitmap

 

WPF에서 쓰이는 화면에 보이는 UIElement들은 제 각각 Visual 이라는 객체를 상속받아 만들어지는데 이들은 스스로 자신을 화면에 그릴수 있는 기능이 있다. 따라서 Visual의 이 기능을 이용하여 다음과 같이 재밌는 일을 할수 있다. (미리보기등을 이러한 방법으로 만들수 있다.)

 

Clone 화면 만들기

VisualBrush를 이용하면 Visual의 화면 이미지를 실시간으로 복제하여 Brush를 필요로 하는 위치에 그려주게 된다. 내부적으로 브러시의 원본 객체의 surface 를 복제함으로서 이루어진다.

 

 

  1. VisualBrush brush = new VisualBrush(this.DrawingCanvas);
  2. Rectangle rect = new Rectangle();
  3.  
  4. rect.Width = this.DrawingCanvas.ActualWidth;
  5. rect.Height = this.DrawingCanvas.ActualHeight;
  6. rect.Fill = brush;

    Window wd = new Window();
  7. wd.Content = rect;

 

 

마치 클론 화면을 쓰는 것처럼 쉽게 복제된 화면을 여러개 만들수 있다. 원본 화면에서 뭔가 일어나면 다른 화면에서도 똑같이 발생한다.



화면의 특정부위 스샷찍기

화면을 복제하는 것보다, 그때 스샷을 찍고 싶을때가 있다. 특히 원하는 컨트롤 또는 부위에 대해서. 이런때엔 RenderTargetBitmap을 이용하면 간단히 해결된다. 이때엔 별도의 Bitmap이미지를 생성한후 객체의 Visual 화면을 BitBlt 하여 복제한다. 단, 이때엔 새로만들어지는 비트맵의 색상 또는 dpi를 지정해 줄수 있는데 이를 이용하여 성능을 조절할 수 있다.

 

 

  1. RenderTargetBitmap rtb = new RenderTargetBitmap((int)this.DrawingCanvas.ActualWidth, (int)this.DrawingCanvas.ActualHeight, 100, 100, PixelFormats.Default);
    rtb.Render(this.DrawingCanvas);

    Window testWin = new Window();
    testWin.Width = this.DrawingCanvas.ActualWidth;
    testWin.Height = this.DrawingCanvas.ActualHeight;
    (testWin.Content as Image).Source = rtb;

    testWin.Show();

 

 

현재 화면을 복제하고, 원본 화면이 바뀌더라도 현재 화면을 유지한다.

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2010년 6월 14일 월요일

요즘 푸우의 생각

요즘 제 몸이 안좋다는 걸 알게 되었어요.

그 전까지는 저의 일상이 뻔하다고 생각했습니다.

저의 일상은 이런 느낌 이었습니다. 출근하는 제 표정이 바로 저 여성분의 표정이었어요.



현재 공부를 하고 있지만 언젠가 취업을 할테고,

돈을 벌다가 결혼을 하고, 아이를 낳고 아이를 키우고, 직장에서 시달리다가 언젠가 직장을 그만두고,

쪼글쪼글 늙어가다가 죽는 것입니다. 물론 가끔 여행을 가거나 재밌는 일이 있긴 하겠지만요.

그래서, 인생이 재미없다고 생각했습니다. 지루하게 여겨졌어요.

그런데 아픈걸 알고나서, 제가 짧은 시간 내에 죽을 수도 있단 걸 알고나서, 아쉬움이 몰려왔습니다.

부모님과 동생들과 많은 시간을 보내지 못한 것, 남자친구인 불곰씨, 그리고 사랑하는 고등학교 친구들과

추억을 많이 만들지 못한 것이 가장 아쉬웠습니다.

늘 제 곁에 있을 것 같은 사람들이, 그렇지 않을 수도 있다는 걸 새삼 깨달은 거지요.


그리고 또 한가지, 논문을 많이 쓰고 싶어졌습니다.

세상에서 제가 사라지더라도, 저의 논문은 남아있으니까요. (사람은 죽어서 이름을 남긴다지요?)

제가 모르는 사람도 저의 논문을 보고 도움 받을 수도 있고,

저라는 사람에 대해 한번쯤 상상할 수도 있으니까요.


그리고 마지막으로, 가슴 깊숙이에서 행복을 느끼고 싶어요.


요즘엔 그런 일이 적었거든요. 이런걸보고 찌든거라고 하죠?


'행복하지 않다'고 생각하는 나 자신과 싸워 이기고, '행복한 나'를 많이 실현해야 합니다.

그러면 내 속에 있는 행복이, 자아가 자라나고, 그것은 내가 어른이든, 아이이든, 할머니이든,

마음만 먹으면 계속 자라나게 할 수 있습니다. 반대로 관심을 주지 않으면 시들고, 어느순간 흔적도

찾기 어렵지요. 요즘 제가 그런 상태였어요.

마음 속 행복을 잘 키우는 방법을 아는 것, 그런게 진정한 연륜이 아닐까요?

아픈 것도 좋을 때가 있다는 것을 느끼는 푸우였습니다.

2010년 5월 20일 목요일

HTC의 Windows 7 Phone ROM 유출?

HTC에서 유출된 Phone ROM에 windows 7 Phone OS로 보이는 데이터가 담겨 있었답니다. 이걸로 봐서 올 하반기엔 HTC에서 Mondrian 등의 차기 단말로 Windows 7 Phone이 등장할 확률이 높아졌군요. 다른 제조사의 행보가 주목됩니다. (LG에서 해외를 대상으로 Windows 7 Phone을 샘플로 선보였다고 하는데... 자세한건 두고봐야겠죠?)

 

http://www.engadget.com/2010/05/17/htc-mondrian-with-1-3ghz-snapdragon-detailed-in-leaked-windows-p/

 

 

Blend & Windows 7 Phone 동영상 한점.

 

Microsoft Blend로 App을 만드는 방법에 대한 90초 짜리 동영상입니다.

간단해보이는군요... 시간나는대로 바로 해서 포스팅 해보겠습니다.

개인적으로 이제부터 화면전환이용이 가능하다는게 좋군요.

 

Get Microsoft Silverlight

2010년 5월 18일 화요일

트위터 케이스스터디: 베스트바이

베스트바이 (Best Buy)는 트위터(Twitter)를 통해 고객 응대를 적극적으로 하는 기업 중 하나입니다. 재미있는 것은 베스트바이의 모든 지원이 고객 응대를 할 수 있다는 점이지요.


다음은 베스트 바이의 프로모션 광고입니다. 엉뚱한 질문도 답을 한다는 점이 재미있네요.

Innov8 경영시뮬레이션

IBM에서 만든 Innov8이라는 경영 시뮬레이터가 있습니다. 2007년에 발표되었는데요, 3D에 롤플레잉 게임 형식이라는 점이 흥미롭습니다. 사내 교육 뿐만 아니라 IBM이 밀고있는 BPM, SOA를 학생들이 간접적으로 체험할 수 있는 장점이 있습니다.


게임 속 시나리오는 크게 3가지 입니다. Smarter traffic, smarter customer service, smarter supply chain. IBM의 표제인 'Smarter Planet'과 일치하네요. Smarter traffic는 교통 구조 개선, smarter customer service는 고객 대응 서비스 개선, smarter supply chain은 물자 공급 라인을 효율적으로 하는 것입니다.


설치나 로긴이 (게임을 이어서 하지 않는다면) 필요없고 생각보다 재밌습니다. 기본 게임 방법은 문제를 발견하고, 프로세스를 개선하고, 그 결과를 보는 것입니다.


인력 배치 시뮬레이션



결과 피드백 (KPI와 보스의 말)



시뮬레이션 결과 (KPI, 보스의 말, 시각적 효과)




실제 경영과는 달리 결과가 바로 나오고 매우 시각적이기 때문에 재밌습니다. 숫자 보단 사람들의 말을 이해하고 그것을 경영 프로세스에 반영해야 하기 때문에 (롤플레잉이 그러하듯) 게임 속 등장인물의 말을 유심히 들어야 합니다. 영어의 미묘한 늬앙스 차이 때문에 좀 헷갈리기도 했습니다.


원래는 게임 속 공간을 돌아다니며 다른 가상 캐릭터와 만나고 대화할 수 있다고 하는 데 그것 까진 하지 않았습니다. 경영 프로세스에 관심이 있다면 한번씩 해보시는 걸 추천합니다.



다음은 Innov8 트레일러입니다. 영화 트레일러 같아 재밌네요. ^^



다음은 IBM의 Innov8 소개글입니다.

INNOV8은 인터랙티브, 3-D 비즈니스 시뮬레이터로서, 비즈니스 프로세스 관리의 기초를 가르치고, 한 조직 내의 비즈니스 리더와 IT 팀들간 이해의 차이를 좁히기 위해 기획되었습니다. 이러한 유형의 다소 진지한 게이밍 – 게임의 룩앤필을 갖고 있지만, 비즈니스 오퍼레이션 같은 게임이 아닌 이벤트 또는 프로세스를 다룸 - 은 학생들과 사원들을 교육하고 새로운 기술을 개발할 수 있는 성공적인 방식으로 대두되고 있습니다.


IBM은 학생을 위한 프로그램 (소프트웨어 뿐만 아니라 교육도) 을 많이 신경씁니다. IBM에서 주최하는 공모전을 보면 IBM이 당장 쓸 수 있는 기술 보다는 학생이 즐겁게 참여할 수 있도록 배려한다는 것이 느껴집니다. 학부 때 IBM에서 하는 교육을 받아서 인지 IBM이 하는 것은 뭐든 긍정적으로 생각됩니다. 하하.

2010년 5월 12일 수요일

논문 읽는 방법

연구소 선배가 쓰신 글을 편집해서 올립니다.


<관련 연구 찾기>
HCI 분야 컨퍼런스에서는 CHI, UIST, IUI 3개가 A급이라고 보시면 됩니다.

   1. 위의 학회 논문집을 보면서 관련 연구가 뭐가 있는지 살펴본다.      
   2. 찾은 관련연구 논문 저자가 있는 연구소 홈페이지를 방문해서 새롭게 업데이트된 것이 있는지 살펴본다.
   3. 찾은 관련연구 논문의 레퍼런스로 달린 것들 중 관련이 있다고 판단되는 논문들을 찾아서 읽는다.
   ps) HCI 쪽이 아니라면 유명 학회가 다를 뿐 2,3번은 같은 방식으로 접근하시면 됩니다.


   Tip) 논문을 찾고 저자의 웹사이트를 가보면 HCI 쪽의 경우는 30% 이상은 동영상이 같이 있습니다. 동영상을 보고 논문을 보는게 논문의 빠른 이해에 도움이 됩니다.




<자기 연구 분야 흐름 빨리(2개월 정도) 쫒아가는 방법>
예전에 황용구 교수님께서 석사 1학기에 다음과 같이 시키셨습니다.

   1. 매일 논문 검색을 통해서 20개의 논문 제목을 본다.
   2. 매일 20개 중 4개의 논문은 abstract, introduction, conclusion 까지 읽는다.
   3. 일주일에 2개 정도는 논문 전체를 읽는다.
   4. 전체를 읽은 논문은 요약을 한다.
        - 논문에서 주장하는 것은 무엇인가?
        - 주장하는 것을 어떤 논리로 풀어가고 있는가?
        - 나라면 어떻게 했을까?
        - 이걸 어떻게 나의 연구에 활용할 수 있을까?    




<효과>
이런식으로 일주일에 6일 이상을 꾸준히 하시면  2달 정도면 다음과 같은 것을 얻을 수 있습니다.
   - 연구 분야의 최신 연구 흐름을 알 수 있다.
   - 앞에서 연구를 이끄는 그룹과 저자에 대해서 알 수 있다.
   - 내가 무엇을 하면 될것 같다라는 감을 잡을 수 있다.  (감을 잡고 많이 깨지면서 토픽을 구체화하게 됩니다.)
   - 논문에서 필요한 정보만 빨리 캡쳐하는 능력이 생긴다.
   - 어떤 키워드로 검색을 하면 되는지에 대한 노하우가 생긴다.