489 Results for '전체'

  1. 2012.01.04 이제와서 바꾸지 않을 수 없었다... oTL
  2. 2011.12.10 마이크로소프트의 눈물나는 실버라이트 5 지원 정책 단상 (3)
  3. 2011.12.10 실버라이트 5 출시 & 변경사항 (2)
  4. 2011.11.30 Intel 82579 Gigabit Ethernet 드라이버를 Hyper-V Server 2008 R2에 설치하기
  5. 2011.11.26 WEENU, 제5회 세상 사회적기업 컨테스트 최종심사 결과 (4)
  6. 2011.11.26 오랜만에 절망했다! (7)
  7. 2011.04.23 조용한 업데이트, Silverlight 4 GDR 4 (4.0.60310.0) (1)
  8. 2011.03.08 [Prism] MefModuleManager와 DeploymentCatalog의 문제점 (1)
  9. 2011.03.08 [Don't Panic] Exception 정보를 허투루 흘려보내지 맙시다.
  10. 2011.02.15 Silverlight 4 GDR3 업데이트 공개 (1)
  11. 2011.01.07 윈도 8에 대한 소문과 실버라이트의 미래 (10)
  12. 2010.12.31 공도의 실버라이트 하기 좋은 날 [목차/2010.04.08] (8)
  13. 2010.12.03 실버라이트 퐈이야(Fire Starter) 자료 링크 모음 (1)
  14. 2010.12.03 실버라이트의 미래, 미리보는 Silverlight 5 (10)
  15. 2010.11.30 MVVM, 성배를 찾아서; 동영상 업데이트 (3)
  16. 2010.11.22 제 1회 블판 작품 소개 동영상 YAY! (2)
  17. 2010.11.17 [Don't Panic!] 블렌드에서 어셈블리를 못찾는다 할 때 (2)
  18. 2010.11.12 실버라이트 퐈이야! - 온라인 라이브 컨퍼런스(추가) (2)
  19. 2010.10.21 블판 - 블렌드를 다루는 사람들의 발표 전시회! (2)
  20. 2010.10.21 Arduino+Ethernet = Physical computing with Silverlight! (7)
  21. 2010.10.19 3축 가속 센서... 계속 실패중... ㅠ.ㅜ (35)
  22. 2010.10.01 MVVM; 성배를 찾아서 - 표현과 로직의 분리 (2)
  23. 2010.08.20 Opto-interrupter 회로 삽질기 (10)
  24. 2010.08.20 버려진 블로그에도 봄은 오는가. (2)
  25. 2010.05.06 피자 강림, '그 분'은...
  26. 2010.05.06 이 피자가 니 피자냐? (2)
  27. 2010.05.06 [발표 자료] 고급 실버라이트 애니메이션 및 그래픽 + 성능 튜닝 (1)
  28. 2010.05.01 훈스닷넷 24회 정기 세미나 - 거성공도쇼! (4)
  29. 2010.05.01 Silverlight 4 RTW 릴리즈 & 설치가이드[업데이트] (5)
  30. 2010.04.13 [참고] vs2010과 실버라이트 폰 IDE CTP는 호환되지 않는다 (1)
...햇수로 6년째 VK 모바일의 명작 VK-X100을 고수해왔는데 더 이상 시대의 흐름을 거스를 순 없었습니다.
이제 케이스가 거의 다 박살나서... 아흑흑...

핸드폰 얘긴데요.
워낙에 PC앞에 앉아 있는 시간이 많다보니 굳이 이동하면서까지 폰으로 뭔가 하지 않으면 안될 상황은 별로 없었거든요.
게다가 전에 쓰던 폰은 정말이지 작고 가볍고 통화잘되는 효자;;라서 딱히 바꿀 이유도 없었고요.
그렇지만 실시간 이메일 확인 만큼은 필요하겠더군요.
그래서 결국은 넘어갔습니다. 네, 스마트폰이요.

모델은 소니에릭슨의 엑스페리아 레이!  http://www.xperia.co.kr/ray/ 
현존하는 스마트폰 중에서 그나마 가장 작고 슬림하고 가벼운 스펙을 가졌더군요.
저에게 스마트폰이래봐야 전화, 문자, 이메일이 사용량의 95% 이상일테니 그 외의 하드웨어 사양은 전혀 의미 없음!


(제가 반한건 작은 크기와 가벼운 무게도 있지만 역시 군더더기 없이 뽀얗게 잘빠진 뒷태! 저놈의 소니에릭슨 로고조차 없었으면 좋았겠지만요ㅎㅎ)

심지어 전에 쓰던 X100과 비교해도 그다지 크지 않을 정도로 잘 빠진 몸매에요.

(비교샷... 길이가 약 11cm정도)

(어부바샷으로 봐도 그 작은 X100과 별로 차이 안나는 정도)

(작은 제 손에도 촥 감기는 그립감!)

(그리고 제가 반한 뽀얀 뒷태+_+)

외형은 정말이지 대만족.
요즘은 소니의 하드웨어 디자인에 끌려요;;

유일한 문제이자 가장 큰 문제는 안드로이드 -_-;;
아... UI가 이렇게까지 조잡하고 구리게 만들 수 있구나... 하는 느낌;
뭐 레이의 기본 UI 문제인지 안드로이드 문제인지도 모르고(아무래도 상관 없지만) 여튼 그나마 조금 만져봤던 아이폰이나 윈폰과 비교했을 때 참 조잡하더군요.

그래도 스마트폰답게(?) 연락처 연동이나 이메일 계정 연동 등은 매우 스마트하네요.
이제야 좀 일정을 제대로 연결해서 다닐 듯;;
또... 세간에선 음악 재생에 강하다느니 카메라 성능이 좋다느니 하네요. 확실히 그냥 대충 찍어도 사진은 잘 나오는군요.
그러나 사진도 별로 찍을 일이 없어서 찍혀주기만 하면 오케이;

약정'할부'와 강제요금제가 싫어서 25만원짜리 중고를 질렀어요.
통신요금도 어떻게든 줄여보려고 표준요금(11000원) + 안심데이터100(10000원) 해서 기본요금으론 2만천원.
월평균 통화요금이래봐야 5~6천원 수준이니 이만하면 괜찮죠?

전체적으로 딱 필요한 폰을 적당한 가격에 구매했다고 평가해봅니다.
사랑해요 쏘니 날 가져요! >_<
Posted by gongdo
http://support.microsoft.com/gp/lifean45?ln=en-us#sl5

"실버라이트 5는 이 페이지에 표시된 브라우저를 2021년 10월 21일까지 지원할 것입니다."

2021년? 네, 오타아닙니다;;
기존 버전들과 달리 SL5는 화끈하게(...) 10년동안 지원을 질러버리는군요. -_-;

2021년... 그 때까지 저 브라우저들은 존재하기나 할지, 아니 브라우저란 기술 자체가 지금의 형태를 유지하기나 할지...
재밌으면서도 슬픈 정책이 아닐 수 없다 아니 생각할 수 없지요? ㅋㅋㅋ 
Posted by gongdo
실버라이트 5가 출시되었네요.


실버라이트 5 개발 도구 및 런타임은 아래 사이트에서 다운로드 할 수 있어요.
전에 비해 훨씬 더 깔끔해졌네요.
http://www.silverlight.net/downloads

실버라이트 5를 개발하려면 Visual Studio 2010 SP1이 반드시 설치되어 있어야 하고요,
1. Silverlight 5 Tools for Visual Studio 2010 SP1
2. Silverlight 5 Toolkit
을 다운로드 받아 설치하면 개발 환경 구성은 끝나요.

 
일반적으로 런타임의 버전이 바뀔 때 가장 문제가 되는 건 기존 버전과의 호환성인데요, 실버라이트 5는 기존 어떤 버전에 비해서도 호환성이 높네요. 보통 Breaking changes라고 부르는 기존 버전과 코드/바이너리 레벨에서 호환되지 않는 점이 전혀 없어요.

그래도 실버라이트 4와 5는 다음과 같은 동작 특성 차이점을 가지고 있는데요, 때문에 아주 세밀한 조작을 하는 애플리케이션에서는 문제가 될 가능성이 있겠죠. 하지만 이 점도 호환성 모드(Quirks Mode)를 통해서 5 런타임이지만 4의 동작 특성을 갖도록 할 수 있으니 걱정하지 않아도 돼요.

아래에 실버라이트 5의 호환성 모드(Quirks Mode) 동작 특성을 번역(네, 여느때와 마찬가지로 걍 날림으로...) 했으니 기존 프로젝트를 마이그레이션 하실 분들은 참고하세요. (원문: http://msdn.microsoft.com/en-us/library/hh397894(v=VS.95).aspx)
  • 실버라이트 4에서는 RelativeSource.Mode의 기본값이 TemplatedParent였지만 5에서는 FindAncestor로 변경되었습니다. (역주: FindAncestor는 자기 자신의 조상에서 이름을 찾는 동작입니다.)
  • 실버라이트 5에서 ItemsControl은 TextInput  이벤트를 텍스트 검색 용도로 사용합니다. 이전에는 애플리케이션이 직접 구현할 경우를 위해 존재했을 뿐입니다. (역주: 기존에 ItemsControl에서 이 이벤트로 구현한 것이 있다면 동작이 충돌할 가능성이 있습니다.)
  • 실버라이트 5에서 ClientHttp 코드의 틱-동기화 타이밍이 UI thread에서 분리되었습니다. ClientHttp 코드는 틱-동기화 타이밍을 에뮬레이트해야 합니다. (역주: 뭔소린지 모르겠습니다 -_-)
  • 실버라이트 5전까지는 Selector의 ItemsSource를 설정하기 전에 SelectedIndex, SelectedItem, SelectedValue를 설정하면 그 값이 강제로 null로 설정되었습니다. 실버라이트 5에서는 그 값이 설정된 상태로 남아 있어 ItemsSource가 설정되었을 때 그 값이 선택됩니다. 이것은 다양한 바인딩 시나리오를 가능케하고 WPF의 동작과 동일합니다.
  • 실버라이트 5에서는 벡터 프린팅이 기본 인쇄 포맷입니다.
  • 실버라이트 5전까지는 콜렉션이 Reset으로 변경될 때 기존에 선택된 아이템이 Items에 남아 있더라도 클리어 되었습니다. 실버라이트 5에서는 해당 선택이 남아있으며 WPF와 동일한 동작입니다.
  • 애플리케이션 시작시 멀티코어 JIT는 오직 실버라이트 5 애플리케이션이거나 64bit일 때만 동작합니다.
  • 실버라잍트 5전까지 ButtonBase의 Visibility가 Collapsed로 설정되면 비주얼 상태를 변경하지 않았습니다. 그래서 컨트롤이 다시 보이게 되어도 그 비주얼 상태가 안보이기 전 상태로 남아 있었습니다. 실버라이트 5에서는 Visibility가 Collapsed로 설정되었더라도 비주얼 상태가 변경됩니다.
  • 실버라이트 5에서는 Selector의 속성 경로 수신자가 값을 찾을 수 없을 경우 SelectedValue를 null로 설정합니다. 이것은 WPF와 동일한 동작입니다.
  • 실버라이트 5전까지 WriteableBitmap의 기본 배경색상이 투명한 검정(#00000000)이었고 이것은 인쇄에 적합하지 않습니다. 실버라이트 5에서는 기본 배경색상이 투명한 하양(#00FFFFFF)입니다.
  • 실버라이트 5에서는 Selector의 한 아이템에 포커스가 세팅되었을 때 그 아이템으로 스크롤 할 수 없다면 ScrollIntoView 호출을 연기할 것입니다.
  • 실버라이트 5전까지 ListBox에서는 선택이 바뀌었을 때 기존 인덱스가 새 인덱스와 다를 경우 새 인덱스가 -1이 아닐 경우에만 해당 아이템으로 포커스를 설정하였습니다. 실버라이트 5에서는 새 인덱스가 -1 일지라도 포커스를 설정합니다. 만약 새 인덱스가 -1이라면 포커스는 ListBox 자신이 갖게 됩니다.

전반적으로 Selector와 ItemsControl에 있었던 불합리한 동작이 올바르게 고쳐진게 많네요.
이런 부분은 미묘하게 사용성을 해치던 것이라 아주 바람직하지만 반대로 기존 버전에서 이런 문제를 피하려고 작성했던 수많은 '꼼수'들과 충돌할 수도 있겠죠. 하여간 마이크로소프트는 후방 호환성 지원 만큼은 최고에요. 버전 업할 때마다 이런 문서도 즉각나와주고 말이죠.

Posted by gongdo
깔끔하게 Hyper-V Server를 물리머신에 설치하고 모든 서버를 가상머신으로 돌릴려고 하는데, 시작부터 이런 난관이 오네요.
제가 구입한 메인보드에는 Intel 82579 Gigabit Ethernet Controller가 달려있는데 요놈은 인텔에서 꽁수를 부려 서버 OS에 설치되지 않도록 해놨다고 하는군요.

http://communities.intel.com/thread/21118?tstart=0#121837 
 
커뮤니티 스레드에서도 '더러운 수작'이란 표현을... ㅎㅎ

여하튼 해결 방법은 드라이버 정보 파일(INF)에 아주 약간의 수정을 가하는 것.

1. 인텔 82579 이더넷카드의 드라이버를 다운로드하고 압축을 해제합니다.
2. PRO1000\Winx64\NDIS62 폴더를 엽니다.
3. e1c62x64.inf 가 문제의 파일. 이것을 열어보면 다음과 같은 내용이 보입니다.
(참고로 서버 버전별로 폴더와 파일이 다릅니다. 이 파일은 Windows 7 x64 및 Windows Server 2008 R2 계열에만 해당합니다.)

[Intel.NTamd64.6.1.1]
; DisplayName                   Section              DeviceID
; -----------                   -------              --------
%E1502NC.DeviceDesc%            = E1502.6.1.1,       PCI\VEN_8086&DEV_1502
%E1502NC.DeviceDesc%            = E1502.6.1.1,       PCI\VEN_8086&DEV_1502&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_80001025

[Intel.NTamd64.6.1]
; DisplayName                   Section        DeviceID
; -----------                   -------        --------
%E1502NC.DeviceDesc%            = E1502,       PCI\VEN_8086&DEV_1502
%E1502NC.DeviceDesc%            = E1502,       PCI\VEN_8086&DEV_1502&SUBSYS_00011179


4. 위의 코드를 아래와 같이 E1503.x 섹션을 추가하고 저장합니다.

[Intel.NTamd64.6.1.1]
; DisplayName                   Section              DeviceID
; -----------                   -------              --------
%E1502NC.DeviceDesc%            = E1502.6.1.1,       PCI\VEN_8086&DEV_1502
%E1502NC.DeviceDesc%            = E1502.6.1.1,       PCI\VEN_8086&DEV_1502&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_80001025

[Intel.NTamd64.6.1]
; DisplayName                   Section        DeviceID
; -----------                   -------        --------
%E1502NC.DeviceDesc%            = E1502,       PCI\VEN_8086&DEV_1502
%E1502NC.DeviceDesc%            = E1502,       PCI\VEN_8086&DEV_1502&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_00011179
%E1503NC.DeviceDesc%            = E1503.6.1.1,       PCI\VEN_8086&DEV_1503&SUBSYS_80001025 

5. 설치는 여느 드라이버와 마찬가지로 pnputil을 사용합니다.

pnputil -i -a e1c62x64.inf

설치시 WHQL 인증 경고가 나오는데, 무시하고 설치해도 무방합니다.

아후. 인텔이 서버용 OS에 이 드라이버를 막아놓은 이유가 뭔가 있긴 있겠지만...
이딴 문제로 또 3시간동안 밥도 안먹고 삽질했네요.
혹시라도 꼬알라님의 Hyper-V 설치 따라하시다가 같은 문제가 있는 분이 있을지도 몰라 남겨둡니다.^^
Posted by gongdo
오랜만에 돌아와서 대뜸 자랑질부터^^
그리고 우리가 무엇으로 수상하였는지를 소개할게요.

http://www.se-sang.com/web/gate.jsp?param=notice&no=15064&nc_pageNo=1

(아... 저놈의 썩은 얼굴 어쩔거야 -_-;)


여튼;
회사 옮기자마자 폭풍같은 몇주를 보냈지요.
미호님이 거의 다 해놓은 밥에 숟가락 하나 얹어 수상 사진에 오르는 고도의 기술까지 구사하면서 말이죠.^^

SK와 행복나눔재단에서는 사회적기업의 발굴과 후원을 위하여 '세상(http://se-sang.com)' 이란 사이트를 열었고 컨테스트를 통해 세상에 꼭 필요한, 그리고 실현가능한 사회적 기업을 선정하여 위와 같이 상금을 수여하고 있지요.
네, 여기에서 보무도 당당하게 2위를 수상! 데헷 ;p

사회적기업, 어떤 생각을 가지고 있나요?
사회적 약자를 위해 일하는 사람들 정도의 이미지 아닌가요?
더 말하자면, '불쌍한' 사람들 돕는 구질구질하고 돈 안되는 비영리 사업의 이미지 아닌가요?

아마도 많은 분이 사회적기업을 NPO(Non-Profit Organization; 비영리민간단체)와 혼동할거에요.
실제로 어떤 사회적기업은 NPO와 잘 구분이 안갈 정도이기도 하고요.
그러나 사회적기업은 이해관계 당사자의 이익을 추구한다는 점에서 NPO와는 명확하게 다르죠.
우리도 현재 가장 큰 관심사는 어떻게 하면 지속 가능한 사업을 위해 돈을 벌 수 있을까에요.

그럼 우리 회사는 뭘 하려는 걸까요.
'아티스트를 위한 온라인 스튜디오'라는 제목을 걸고 있는데요, 뭔지 잘 감이 안오죠?


이게 현재 한국의 미술시장을 단적으로 보여주는 슬라이드에요.
30명 정도의 탑 아티스트가 90%의 시장 점유율을 보이는 상황. 게다가 30%에 가까운 하위 계층은 자신의 활동으로 얻는 수입이 전혀 없어요. 이것은 자존감 자체를 흔드는 문제죠.
물론 통계에 잡히지 않는 지하미술시장은 훨씬 더 거대한 규모이기도 하고 고가의 미술시장의 특성상 더 심각한 모습이기도 하지만, 중요한 것은 이런 뒤틀린 시장속에서는 99%, 대다수의 아티스트들이 제대로 살아갈 수 없다는 거죠.

99%...
요즘 어디서 많이 들어본 얘기 아닌가요?

크리에이티브 커먼즈 라이선스by studiofour
Occupy the Wall-street!

미술시장 뿐만 아니라 우리 생활의 다양한 곳에서 이런 현상이 나타나고 있죠.
99%는 상징적인 숫자일 뿐이지만 여튼 이제 사람들은 극소수의 사람이나 기업에 부와 관심이 집중되는 반면 대다수인 자신들은 단지 그들을 위한 들러리처럼 취급되는 현실을 깨닫고 분노하고 있죠.

그리고 우리는 이들 99%를 바라보는 서비스를 만들고 싶습니다.

그런데, 하필이면 '아트'라니?
문화, 예술.
어떤 생각이 드나요.
회화, 판화, 조각, 도예...
비싸고, 고고하고, 어렵고, 대중적이지 않은 것.

히에에에에에에에엑~ 밥도 안나오는거 집어쳐!!!

그럼 대중문화, 대중예술 하면요?
영화, 연극, 음악, 만화...
돈 안되고 배고파보이는건 마찬가지지만 어쨌든 상당히 친근하지 않나요?

그렇다면 손뜨개, 티셔츠 페인팅, 인형, 비즈, 페이퍼크래프트 같은건 어떤가요?
예술이라고 해서 꼭 거창하게 미술관에서만 만나야 하거나 아니면 모든 사람이 소비할 수 있는 미디어야만 할까요?
우리는 그렇지 않다고 생각합니다.

만약, 예술을 스스로의 삶을 만족시킬 수 있는 모든 물질적 정신적 활동과 그 결과물로 설명할 수 있다면 예술은 요컨대, 우리 생활속에 있다고 말 할 수 있겠죠.
다시 말해, 예술은 생활 속에서 우리가 생각했던 것보다 훨씬 더 밀접하게 관계를 맺고 있다고 생각해요.

다행히도 개성을 존중하고 삶과 일의 균현을 잡으려는 분위기는 해마다 강해지고 있죠.
또 한편으론 불행하게도 경제적 어려움이 이러한 분위기의 발목을 잡고 있기도 하지만요.

우리는 이러한 상황 속에서 아티스트들이 보다 쉬우면서도 자신의 아이덴티티를 지킬 수 있는 서비스를 내놓으려고 합니다.
바로 온라인 스튜디오죠.


스튜디오 하면 무슨 사진 촬영하는 곳이란 생각이 드는데요, 그냥 간단히 얘기해서 아티스트 개인의 모든 활동을 수행할 수 있는 공간이에요. 모든 활동에는 당연히 '생계'도 들어가 있고 제작 전시 뿐만 아니라 판매와 소통도 이루어져야겠죠.
그런데 이런 공간을 오프라인에 마련하기엔 너무나도 비용과 노력이 많이 들 뿐더러 잠재적인 고객과의 접점도 공간적, 지리적으로 한계가 있죠.

이런 아티스트 개인의 스튜디오를 온라인에서 서비스하는 것, 그것이 온라인 스튜디오에요.
온라인 스튜디오는 현재 베타 상태로 이런저런 기능들을 시험중이에요.
어떤 모습인지 궁금하다면 여기로 > http://weenu.com

하지만 이런 종류의 '기능'은 이미 G마켓과 같은 저렴한 수수료의 오픈 마켓과 1300k와 같은 디자인 중심의 마켓이 존재하죠.
그런데 '오픈 마켓'류는 한 가지 빠진 기능이 있어요.
바로 아티스트 한명 한명의 아이덴티티죠.
오픈 마켓에서 작가란 단지 물건을 파는 상점 중 하나일 뿐이고 이것은 실제로 대중적으로 먹힐만한 작품을 가지고 있음에도 불구하고 작가들을 꺼려하게 만드는 요소에요.

작가주의.
혹시 이것이 단지 귀를 막고 대중과의 소통을 막는 게 아닐까요?
우리는 그렇지 않다고 봅니다.
작가, 아티스트 또한 하나의 개성(그것도 매우 강한 개성)을 가진 사람으로서 다른 개인(대중)과 직접 마주하고 싶어하는거죠.
이것이 오히려 작가와 대중이 '상품'을 주고 받는 생산자와 소비자라는 무미건조한 관계에서 사람과 사람이 '작품'을 매개로 소통하는 적극적인 관계로 이끌어준다고 생각해요.

다시 99%로 돌아와서.
어쩌면 이것은 단지 구호에 지나지 않을지도 몰라요.
네, 실제로는 그 99% 중에서도 또한 소수만이 '그럴듯한' 성공을 할 수 있겠죠.

그렇다면 우리는 또 다시 그 99% 중에 1%를 만들어내는게 아닐까요?
우리가 가장 경계하는 상황이 바로 이것입니다.

우리는 온라인 스튜디오에서 다양한 정책을 통해 최대한 많은 아티스트가 최소라도 좋으니 스스로 작품 활동을 해나갈 수 있는 기반을 마련하고 싶습니다.
자세한 정책은 좀 더 다듬고 구체화 시켜서 공개하겠지만, 어쨌든 이미 잘나가는 유명 작가, 대규모 그룹보다는 실제로 도움과 지원이 절실한 신인과 소규모 그룹에게 보다 많은 시스템적 혜택을 주려고합니다.

또한 온라인 스튜디오는 단순히 온라인 '쇼핑몰'이 아닌 오프라인과의 적극적인 정보 허브로서 기능할 수 있도록 회사 차원에서 많은 노력을 기울이고 있어요.

아래는 점토처럼 손으로 뭉쳐서 만들 수 있는 '만지락 양초'와 제휴하고 또한 아티스트 및 미술 교사와 협력하여 기획중인 '상품'인데요,

(단순했던 점토 양초가 아티스트를 만났을 때...)

(점토 양초가 아이들을 만났을 때...)


이처럼 아티스트와 적절한 기업, 단체와의 만남은 전에 없었던 새로운 '시장'을 만들 수 있고 온라인 스튜디오는 서로를 모르고 있었던 사람들을 연결하는 허브가 될 수 있죠.

이 외에도 하고 싶은 말은 정말 많지만, 조금씩 더 구체적인 것들을 만들어가려고 해요.
그럼 계속해서! 
Posted by gongdo
지난 일년간 제대로된 포스팅도 못하는데 아무도 안부를 묻지 않다니!

 
심지어 짤방조차 재활용이네요.
내 잉여력은 다 어딜 갔나 돌려줘!

지난 일년간 나름 많은 일이 있었습니다. 최근엔 회사도 옮겼고요.
또 새로 시작합니다. 누가 말리겠어요. 허허헛. 

다른 건 별로 걱정 없는데 잉여력 소진은 타격이 크네요.
요즘은 썰렁한 짤방 만들기도 힘에 겨워요.

아무도 안부를 묻지 않는 블로그에 누군가 보라고 글을 남기는 것도 우스운 일이지만,
여튼 잘 살아있습니다. 들리거든 인사나 해주세요.

네.
Posted by gongdo

실버라이트 개발자라면, 그리고 윈도 업데이트를 꼬박꼬박 하는 분이라면 현재 실버라이트 런타임 버전을 살펴보세요.
아마도 다음과 같이 4.0.60310.0으로 업데이트 되어 있을 거에요.

네, 쥐도 새도 모르게 조용~히 GDR4가 릴리즈되어 심지어 자동으로 설치까지 되었네요.
이번 업데이트는 조금은 특별한 사정이 있는데요, 우선 통상적인 버그 픽스 내용 부터 훑고 넘어가죠.

http://support.microsoft.com/kb/2526954

 

이번 업데이트로 수정된 이슈

이슈1

시나리오

  • HtmlPage.RegisterScriptableObject 메서드를 호출하여 스크립터블 타입을 등록합니다.
  • 실버라이트 4 애플리케이션을 실행하고 자바 스크립트 기반의 스크립트가 스크립터블 타입의 멤버에 접근할 수 있도록 합니다.
  • 애플리케이션이 모덜 윈도에 표시됩니다.

이 시나리오에서 다음의 경고 메시지를 받게 될 것입니다.

This page has an unspecified potential security risk. Would you like to continue?

(※한국어로는 뭐라고 나올지 모르겠네요.)

참고: 이 이슈는 보통 Microsoft Office 365 사용자가 Microsoft SharePoint Online을 이용할 때 나타납니다.

 

이슈2

시나리오

  • 실버라이트 4 애플리케이션에서 Control 클래스를 상속받는 사용자 컨트롤을 만듭니다. 이 사용자 컨트롤은 DefaultStyleKey를 오버라이드 하고 DependencyProperty를 하나 추가합니다.
  • 이 컨트롤의 ContentTemplate 속성은 팝업 컨트롤을 포함하고, 팝업 컨트롤은 ContentPresenter 오브젝트 한개만 포함합니다.
  • 이 오브젝트는 TemplateBinding 기능을 이용하여 앞서 만든 DependencyProperty 속성을 바인딩합니다.
  • 해당 팝업 컨트롤은 열리지 않을 것입니다.

이 시나리오에서 팝업 컨트롤의 메모리는 가비지 수집되지 않습니다. 때문에 메모리 누수가 나타납니다.

 

이슈3

시나리오

  • 인터넷 익스플로러 9를 이용하여 실버라이트 4 애플리케이션을 엽니다.
  • 윈도를 풀스크린 모드로 전환했다가 다시 원래 크기로 돌아옵니다.

이 시나리오에서 윈도의 내용이 제대로 표시되지 않을 수 있습니다. 예를 들어, 윈도에 빈 영역이 나타날 수 있습니다. 이 이슈는 BrowserInteropHelper 클래스가 호스트 HTML 페이지에 있는 자식 엘리먼트의 개수를 잘못 알려주기 때문입니다.

 

이슈4

실버라이트 4 애플리케이션이 DataGrid 컨트롤을 포함한다고 가정합시다. 컨트롤에 있는 각 컬럼의 크기는 다릅니다. 이 시나리오에서 컨트롤의 스크롤을 가로로 움직이면 컨트롤의 행이 잘못 표시됩니다.

 

이슈5

시나리오

  • DataGrid 컨트롤을 포함하는 실버라이트 4 애플리케이션을 실행합니다.
  • 이 컨트롤은 INotifyDataErrorInfo 인터페이스를 이용하여 유효성을 검사하는 타입을 바인딩합니다.
  • INotifyDataErrorInfo.ErrorsChanged 이벤트를 여러번 수신하게 됩니다.

이 시나리오에서 DataGrid 컨트롤의 메모리가 해제되지 않습니다. 때문에 메모리 누수가 나타납니다.

 

이슈6

실버라이트 4 애플리케이션에서 BindingExpression 인스턴스의 대상 엘리먼트가 DataGridCell 오브젝트에 들어있는 TextBlock 엘리먼트 또는 TextBox 엘리먼트라고 가정합시다. 이 상황에서 애플리케이션을 실행하여 해당 엘리먼트를 수정하면 DataGrid 컨트롤의 메모리가 해제되지 않습니다. 때문에 메모리 누수가 나타납니다.

 

이번 업데이트에 추가된 기능

이번 업데이트는 다음 경로의 레지스트리 키가 설정되어 있으면 IsolatedStorageExceptionInnerException 속성을 설정하는 기능을 추가합니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Silverlight\IsolatedStorageInnerExceptionsAllowedDomains

이 레지스트리 키의 값은 콤마(,)로 구분된 도메인 목록입니다.

 

몇몇 메모리 누수 문제를 해결하는 점에서는 꽤 중요한 문제지만, 사실 이것보다는 좀 더 재밌는 점들이 레이더(?)에 잡히네요^^

FirstFloor Software 운영자이자 마이크로소프트 실버라이트 MVP인 Koen Zwikstra씨가 이번 GDR4에서 새로 추가된(!) API를 정리했는데요, 다음 링크에 들어가보면 깔끔하게 정리되어 있어요.

http://firstfloorsoftware.com/files/DiffLists/Silverlight%204%20GDR%203-vs-Silverlight%204%20GDR%204.html

업데이트된 타입이 들어있는 네임스페이스는 총 6개.

  • System.Net.Sockets
  • System.Windows
  • System.Windows.Controls
  • System.Windows.Input
  • System.Windows.Media.Imaging
  • System.Windows.Navigation

그러나 재밌게도 이번 업데이트로 추가된 모든 기능은 MSDN 문서에서 “DO NOT USE”라고 심플하게만 설명되어 있을 뿐이죠. 실제로 비주얼 스튜디오에서도 해당 기능이 인텔리센스에 표시되지 않는지만, Reflector로 해당 어셈블리를 열어보면 존재하는 걸 확인할 수 있어요.

비밀은 바로 EditBrowsable 어트리뷰트! 이 어트리뷰트로 에디터(VS나 Blend)에서 해당 기능이 표시되지 않게 해놓은 것 뿐이죠.

아마도 이 기능들은 실버라이트 5를 위한 일종의 플레이스홀더(placeholder) 역할을 하는 걸로 보이는데요, 소켓에 UDP 필드가 추가된다거나 UIElement의 이벤트에 빌트인으로 Tap, DoubleTap, Hold가 추가된다거나, GestureEventArgs가 추가되는 등 상당히 흥미롭네요.

여튼 지금와서 이것들이 크게 영향을 주는건 아니고 다만 실버라이트 5가 빨리 나왔으면…하는 생각이에요. :)

Posted by gongdo
요즘 너무 블로깅을 안했더니 거미줄이...
본격적인 글은 정신적인 여유가 안되어서 못쓰겠고 대충 메모라도 휘갈겨놓으려고해요.
'가상의' 독자를 상대로 얘기하고는 있지만 기본적으로는 잊지 않으려고 쓰는 '메모'의 용도에요.
친절하지 않은 글이니 관심 없는 분은 그냥 패~스.

Prism + MefExtension을 사용하면 내부적으로 IModuleManager로 MefModuleManager를 사용하는데, 요놈은 XAP 파일에 대한 IModuleLoader로써 다시 MefModuleTypeLoader를 사용하죠. 또한 이 모듈타입로더는 내부적으로 MEF에서 기본으로 제공하는 DeploymentCatalog를 이용해요. ...아 이 무슨 구약적 이름 소개인가; 누가 누구를 낳고 누구는 누구랑 친척이고...;;

여튼;

프리즘의 모듈매니저는 기본적으로 각 모듈과의 의존성 관계를 설정하여 의존성 있는 모듈이 먼저 초기화(Initialize)되도록 처리를 해주는 훌륭한 매커니즘을 가지고 있죠.
문제는 MEF가 기본으로 제공하는 DeploymentCatalog.
요놈은 XAP파일의 URI를 던져주면 알아서 다운로드를 받아 XAP 파일 내에 들어있는 어셈블리들을 죄다 런타임에 불러들인 후 지정된 카탈로그에 ExportPart를 뽑아서 관리해주는 역할까지 수행하죠.
그런데 여기서 문제가 이놈은 다운로드가 완료되면 무조건 위의 동작을 수행한다는거에요.

만약 다음과 같은 의존성을 갖는 솔루션 구성일 경우...
  • 기반 모듈
    • 데이터처리 모듈
      • 이메일 모듈
      • SMS 모듈
    • 그래픽 모듈
'이메일 모듈'은 '데이터처리 모듈'보다 나중에 초기화가 되어야 하죠.
네 실제로 모듈매니저는 의존성 관계를 통해 '데이터처리 모듈'을 먼저 초기화해요.
그런데, DeploymentCatalog에 의해서 각 모듈들이 다운로드 될 때 '이메일 모듈'이 먼저 다운로드가 완료된다면?
내부적으로 '이메일 모듈'을 까뒤집어서 그 안에 있는 ExportPart를 뽑아내려고 시도할거에요.
이 과정에서 '이메일 모듈'이 가지고 있는 '데이터처리 모듈'에 대한 의존성이 문제가 되어 그 시도는 처절한 예외 메시지를 내뱉고는 뻗어버리죠.

혹시 DeploymentCatalog의 소스 코드를 열어보신 분이라면(MEF preview때이건 리플렉터로 까봤건) 아래의 부분이 문제의 그곳. DiscoverParts 메서드의 구현중 일부에요. 밑줄친 부분이 아직 의존성이 해결되었을지 어떨지 알 수 없는 파트를 접근하려는 곳.

foreach (Assembly assembly in assemblies)
{
    if (!dictionary.ContainsKey(assembly.FullName))
    {
        AssemblyCatalog catalog = new AssemblyCatalog(assembly);
        addedDefinitions.AddRange(catalog.Parts);
        dictionary.Add(assembly.FullName, catalog);
    }
}

휘유... 여기까지가 아래에 올린 Don't Panic의 내용을 재현한 거에요.
이게 적당히 다운로드 순서를 바꿔주는 것 만으로는 근본적인 해결이 안되네요.
아무래도 MEF의 DeploymentCatalog를 조금 바꿔서 써야겠어요.
그러려면;; 다시 이걸 사용하는 MefModuleManager를 바꿔야 하고 여기에 연관되어 있는 MefModuleInitializer, MefXapModuleTypeLoader도 모두 조금씩은 바꿔야겠죠; 하아...

그나마 소스 공개되어 있는게 얼마나 다행인지. 오픈소스 만세! 리플렉터 만만세!
Posted by gongdo
참 뭐랄까 근본 없는 것이란 이런 기초적인데에서 문제를 드러내지요.
그러니까... 보통 예외 메시지들이란게 대체로 별로 도움이 안되는 경우가 많잖아요?
누가 null reference 들어와서 죽은거 모른대요? 왜 null이 들어왔는지를 모르는거죠.

여튼.

이런 경험이 누적되다보면 예외 메시지는 Exception.Message만 대충 보고 다른데서 원인을 찾기 마련인데요.
가끔은 Exception.InnerException을 보고도 더 많은 정보를 얻을 수 있는 기회를 놓칠 때가 있어서 다시는 잊지 말자는 심정으로 포스팅해요.

이번 케이스는 이것.

동적으로 XAP 파일을 받아서 동적으로 어셈블리들을 로드하는데 분명히 해당 어셈블리 중 하나의 의존성이 해결되지 않아서 발생하는 문제인것까진 알겠는데 어떤 어셈블리의 문젠지를 모르겠단 말이에요. 아주 한참을 헤맸죠.

던져주는 메시지라곤 고작 "Unable to load one or more of the requested types. ..."
네, 참 도움 되네요. 로드하다 실패해놓고 로드에 실패했다니;;; 어쩌라고!

뭘 놓쳤는지 아시겠죠? 뒤에 ...으로 더 이상 읽지 않은 부분이 바로: "Retrieve the LoaderExceptions property for more information." 근데 여기에서  InnerException이 null 이라서 '더 많은 정보'가 어디에 있는지를 모르고 지나치기 일쑤란거죠.
사실은 여기에서 받은 예외의 원래 타입은 System.Reflection.ReflectionTypeLoadException이죠. 근데 그 예외를 그냥 Exception 타입으로 받아와서 ReflectionTypeLoadException이 가지고 있던 고유의 데이터는 다음과 같이 숨겨져 버린거죠.


아;; 친절하게도 무려 한글 오류씩이나;;
네, 타입 로드에 실패한 원인은 System.Windows.Controls.Data 어셈블리가 미리 로드 되지 않아서였군요.
컴파일 시점에는 드러나지 않았던 의존 관계라서 디버깅에 참 애를 먹었어요.

요즘 Prism 4 + MEF로 프로젝트 진행중인데 동적 로딩을 많이 사용해서 생각지도 못한 에러가 많아요.
그나마 비주얼 스튜디오가 아니었으면 이런 에러는 어떻게 잡나 싶을 정도로요.
어쨌든!

Don't Panic!
Posted by gongdo
정식 명칭은 Silverlight 4 Feburary 2011 Update이고요 흔히 GDR(General Distribution Release)은 메이저 버전이 가지고 있는 치명적이거나 긴급한 버그를 수정한 중간 릴리즈이죠. 아래에 언급한 현상이 아니라면 일반사용자 및 개발자 누구에게도 영향을 주지 않지만 혹시 모르니 둘러보시고 개발 환경을 업데이트 해주시는게 좋겠죠?

뭐, 언제나처럼 원문은 Tim Heuer가 작성하였고 저는 또 발 번역이네요. 뉴스 번역 전문 블로그가 되어가는 듯한 느낌 =_=;
http://timheuer.com/blog/archive/2011/02/14/silverlight-february-2011-update-gdr3.aspx

------------------------------------------------------------------------------------------
오늘 실버라이트 팀은 Silverlight 4 런타임 업데이트를 공개하였습니다. 내부적으로 "GDR3"라고 부르는 이 업데이트는 다음의 주요 사항을 업데이트 합니다(KB2495644 참고).

  • [1] VC-1 코덱의 미디어 재생시 타임스탬프 문제.
  • [2] 픽셀 셰이더를 포함하는 실버라이트 애플리케이션을 프로파일링 할 때 비주얼 스튜디오 IDE가 뻗는 현상.
  • [3] OSX의 64비트 파이어폭스가 32비트 프로세스 모드일 때도 실버라이트가 동작가능.
  • [4] 실버라이트 버전 업그레이드 이후 DRM으로 보호된 콘텐트를 재생할 때 발생하는 "6207" 오류 수정.
  • [5] 인라인 DataTemplate을 사용할 때 발생하는 메모리 누수현상 수정.
  • [6] 아웃오브브라우저 애플리케이션이 애플리케이션 이름이 변경되었을 때 업데이트에 실패하는 현상 수정.
  • [7] 미디어 스트림에 재지정(redirect) 정보를 포함할 때 발생하는 재생 오류 수정.
  • [8] 네트워크 지연시간 향상(감소^^) (KB2505882)
대부분의 독자(당연히 Tim의 블로그의 독자)는 이 메모리 릭 문제에 해당사항이 없을 것입니다. 이 이슈는 포럼에서 아주 지겹도록 논의하고/싸우고/놀림당한 것입니다. 혹시 고객의 애플리케이션이 이 문제를 겪고 있고 꽁수(workaround)를 적용하지 않았다면 고객에게 이 릴리즈를 적용할 것을 권유하고 싶을 것입니다. 이 릴리즈를 적용하는 것은 간단하게 실버라이트를 호스팅하는 <object>태그에 최소 버전(minimum version) 어트리뷰트를 사용하면 됩니다. 최소 버전을 수정하면 사용자는 업그레이드가 필요하다는 메시지를 받게 될 것입니다. 물론 이 전에도 여러번 말했듯이, 이런 업그레이드는 반드시 각 사이트 경험에 맞춰 수정하는 것이 좋고 심지어 우리는 설치 경험 백서를 통해 샘플 코드도 제공하고 있습니다.

'얼레? 내 문제는 여기에서 수정되지 않았는데요?'
각 서비스 릴리즈는 모든 문제를 완벽하게 해결하지 않습니다. 만약 이 업데이트를 적용한 후로 어떤 문제가 발생한다면 제발, 제발, 제발, 제~발 제품 버그로 알려주세요. 다른 누군가가 이미 했을거라고 넘겨짚지 마세요. 실버라이트에 관한 버그를 신고하려면 이 포스트의 가이드에 따르면 됩니다: 실버라이트에 관한 피드백을 전달하는 방법. 이상적인 버그는 상세하고, 재현가능하며, 재현가능한 프로젝트 샘플을 제공하는 것입니다. 이것이 버그를 이해하고 평가하는데 가장 빠른 길입니다.

업데이트 하기
다른 모든 서비스 업데이트와 같이, 이 업데이트는 마이크로소프트 (윈도우)업데이트를 통해 고객에게 제공될 것입니다. 만약 개발자라면 업데이트를 기다릴 필요 없이, 아래에서 다운로드할 수 있습니다(세계적으로 다운로드가 가능한 시점은 몇 시간 정도 걸릴 수도 있습니다.).
이번 릴리즈와 관련된 SDK 업데이트는 없습니다. 개발자라면 개발자 런타임만 업데이트하면 되고 일반 사용자라면 사용자 런타임만 업데이트하면 됩니다. 특히 개발자에게 강조하고 싶은 것은, 이 업데이트를 "강제로" (배포된) 애플리케이션에 적용하지 마세요. 대신 <object> 태그의 minRuntimeVersion을 통해 제어하면 해당 애플리케이션에 필요한 버전을 자동으로 적용할 수 있습니다.
------------------------------------------------------------------------------------------

변경된 사항을 좀 더 자세히 뒤져보죠.

- 업데이트 하기 전 최종 실버라이트의 버전은 4.0.51204.0 인데요, 업데이트 후에는 4.0.60129.0이 돼요.

- 이슈 1
VC-1 코덱으로 인코딩 된 미디어를 재생할 때 타임스탬프가 잘못된 값으로 변경되는 문제.
이 문제는 타임스탬프가 2의 48승 100나노초보다 큰 값을 포함할 때 발생합니다. 이 문제가 발생하면 다음과 같은 증상이 나타납니다.
  • 콘텐트를 재생할 때 동영상이 제대로 재생되지 않습니다. 그러나 오디오는 제대로 나옵니다.
  • Internet Explorer에서 콘텐트를 재생할 때 "Errors on Page" 메시지가 표시됩니다. 상세한 내용은 다음과 같습니다.
    a System.OverflowException exception is thrown together with the following call stack:
    mscorlib.dll!System.TimeSpan.Interval(double value, int scale) 
    System.Windows.dll!MS.Internal.XcpImports.ConvertCValueForManagedWithType(System.
    Type propertyType, ref MS.Internal.CValue outVal, int outDOType, bool 
    releaseObjectReference, bool deleteBuffer, MS.Internal.IManagedPeerBase fromObject 
    System.Windows.dll!MS.Internal.XcpImports.GetValue(MS.Internal.IManagedPeerBase 
    managedPeer, System.Windows.DependencyProperty property) 
- 이슈 5
인라인 DataTemplate을 사용할 때 메모리 누수 현상.
다음 포럼에서 논의된 바 있습니다. http://forums.silverlight.net/forums/t/171739.aspx

- 이슈 8
이것은 정확히는 버그 수정이 아니고 기능 추가인데요, 이 전 버전에 비해 90% 정도의 네트워크 지연이 개선되었답니다. 그렇지만 정확히 어떤 종류의 지연 시간이 개선되었는지는 테스트가 필요하겠네요.

아마도 인라인 데이터 템플릿의 메모리 릭 문제는 상당히 신경 쓰이는 부분이고 네트워크 지연 속도 개선도 꽤나 흥미롭네요. 언제나 그렇듯이, 당장 잘 돌아가는 애플리케이션에 어거지로 적용하는 것 보다는 문제가 있었던 것을 해결하는데 이용하는게 좋겠죠?


업데이트 인증샷 :D
Posted by gongdo

요즘 개발자들 사이에선 어딜가나 CES11이 화제더군요. 모종의 이유로 의욕저하 상태라 영상들을 보진 않았는데요, 기술적으로야 서피스2나 윈도폰7의 업데이트 소식에 관심이 가긴하지만 역시나 더 무게가 실리는 건 ‘다음 버전’의 윈도가 아닐까 싶어요.

바로 윈도8이죠.

물론, 공식적으로는 ‘다음 버전의 윈도’가 맞지만 편의상 저도 윈도8이라고 부를께요.

기다리면 당연하다는 듯이 나올 다음 버전의 윈도. 하지만 이번 윈도는 UI와 애플리케이션 모델에 있어서 지금까지 있었던 어떤 변화보다도 더 큰 변화가 있을 거란 소문이 파다해요. 그것도 꽤나 그.럴.싸.하.게.

지금부터 제가 말하는 내용은 거의 대부분 마이크로소프트 통인 Mary-Jo Foley의 블로그에 포스팅된 CES: Wil ‘Jupiter’ be key to Microsoft’s Windows 8 app store’s future?More on Microsoft ‘Jupiter’ and what it means for Windows 8에 더 자세히 소개하고 있어요.

아직 어떤 스크린샷이나 공식적인 언급은 없지만, 이미 웹 상에는 윈도8에 대해 많은 소문이 퍼져있죠. 그 중에서 가장 핵심적인 키워드는 ‘Mosh’와 ‘Jupiter’.

Mosh는 윈도8의 새로운 UI에 관한 코드명이고 Jupiter는 새로운 애플리케이션 모델에 관한 코드명이라고 해요.

코드명 Mosh는 타일 기반의 쉘 컨셉 즉, 윈도폰7에 탑재된바 있는 타일 기반의 UI 구성을 말하는데 웹에서 Windows 8 Mosh라고 검색해보면 꽤나 그럴싸한 소스의 소문이 돌아다니는 것을 볼 수 있고 사실이든 아니든 윈도8에 지금까지와는 다른 새로운 UI가 탑재될 것으로 예상할 수 있죠. 마이크로소프트는 이미 OEM 제조사로부터 슬레이트(iPad스타일)나 태블릿 PC를 위해 윈도폰 OS를 포팅시켜달라는 압력을 받고 있지만 아직 그것을 허용하지 않고 있죠. Mary Jo는 ‘주저한다’는 표현을 썼네요.

어쨌든, 코드명 Mosh가 사실이라고 가정한다면 윈도8은 실제로 의미있는 여러 이디션(edition)으로 출시될 가능성이 높겠죠. 지금까지 윈도의 이디션은 일반사용자에게 있어서 사실상 의미가 없었어요. 왜냐면 각 이디션별로 지원하는 기능이 결국은 동일한 플랫폼(x86, x64 PC)에서 구동하는 기능의 차이일 뿐이었으니까요. 그러나 윈도8은 ‘공식적’으로 x86이 아닌 ARM과 같은 SoC에서도 구동이 된다고 확인이 되었죠. 이 말은 단순한 기능상의 차이를 떠나서 각 OEM 제조사가 입맛에 맞는 기능을 추가하거나 삭제하는 등의 풀 커스터마이징이 가능하다는 얘기고 이럴 때의 이디션 차이는 상당히 의미가 있다고 할 수 있을거에요. 물론 이디션이 차이가 나더라도 한번 작성한 애플리케이션은 하드웨어적인 요구사항만 만족한다면 여러 머신에서 실행이 가능하겠죠.

코드명 Mosh가 어느 수준의 UI 변화를 가져올지 심지어 그것이 적용될지 안될지도 모르지만 윈도8은 여러 종류의 디바이스의 요구사항을 만족하는 형태로 등장할 것이라는 점은 거의 확실하다고 생각해요.

Mary Jo도 그랬지만 저에게도 Mosh보다는 Jupiter에 더 흥미가 있어요. 코드명 Jupiter는 윈도8의 새로운 앱 모델이라고 해요. 다음은 Mary Jo가 인용한 Windows 8에 대한 루머의 원문인 New Tile-Based Shell, App Model, And App Store Coming In Windows 8?를 쓴 Paul Thurrott의 말을 보면,

(윈도8의) 앱 스토어는 AppX 패키지(.appx)로 배포되는 새로운 실버라이트 기반의 이머시브(immersive) 애플리케이션을 제공할 것이다. 내 소스에 의하면 윈도와 오피스 팀은 새로운 앱 형식에 빡세게 투자하고 있고 이미 베타 버전의 비주얼 스튜디오 2012을 개발에 사용하고 있다. 이 새로운 앱은 C#, VB.NET 심지어 C++로 작성할 수 있다.

라고 하는군요. 물론! 공식적으로 확인되지 않은 얘기임은 명심하시고요.

특히 윈도에 내장된 앱 스토어에 관해서는 이미 지난해 누출된 윈도8 계획 슬라이드에서 그 존재가 살짝 드러났고 이미 윈도폰 마켓 플레이스를 통하여 실버라이트와 XNA를 기반으로 한 앱을 배포하고 있기 때문에 코드명 Jupiter는 그 세부적인 사실이 어찌되었건 상당히 높은 가능성을 가지고 있죠.

또한 Mary Jo가 이미 다 정리를 해놔서 거의 그대로 옮기자면; 코드명 Jupiter은 윈도8에 기본으로 탑재되는 앱 모델로 XAML을 기반으로 한 UI 레이어를 구성하며 이를 통해 보다 부드럽고 유동적인 애니메이션, 타이포그라피, 미디어 기능을 제공할 것이라고 해요. 놀랍지도 않지만, 이러한 기능들은 바로 실버라이트 5의 새로운 기능이기도 하죠.

이건 제 의견이지만 마이크로소프트는 어쩌면 XAML을 기반으로 한 UI 패러다임의 전환을 확신하지 못했거나, 너무 큰 반발에 부딪쳤거나, 시대의 격변이나, 혹은 기술(SW/HW 양면)의 제약으로 충분한 성능을 내지 못했거나 하는 등의 이유로 XAML 기반의 UI 도입을 너무나도 미뤄왔을거에요. 이유야 어쨌든 지금 이 시점에서는 게임과 같은 복잡하고 고성능을 요구하는 UI가 아닌 일반적인 앱의 경우 XAML을 기반으로 한 애플리케이션 개발 모델은 전통적인 개발 모델에 비해 확실한 비교 우위를 가지고 있고 다른 뚜렷한 대안이 없는 이상 이 전략은 앞으로도 유효하다고 생각해요. (심지어 성능이 매우 중요한 그래픽적 처리또한 시간이 지나면서 XAML 기반의 개발로도 충분히 흡수할 수 있을거라고 생각하고요.) 아니, 다른 대안이 없는 이상 현재로서 가장 가능성있는 모델은 코드명 Jupiter가 설명하는 바로 그것 밖에 없다는 것일지도 모르죠.

여튼, 마이크로소프트는 이 새로운 모델의 앱을 “immersive” (뭐라고 해석하죠? 몰입형?) 앱이라고 부르며 이 immersive 앱은 단지 데스크탑 앱만을 말하는 것도 아니며 또한 순수한(HTML+CSS+JS) 웹 앱만을 말하는 것도 아니며 윈도8의 앱 모델 내에서 구동될 수 있는 모든 형태의 앱을 말한다고 해요.

코드명 Jupiter가 시사하는 바는 명확하게 실버라이트의 미래를 의미해요.

IT쪽에 발좀 걸치고 있다고 하는 많은 분들이 실버라이트를 시시껄렁한, 그것도 이미 사그라든 UI 기술 정도로 치부하고 있는 것이 사실이죠. 백보 양보하여 핵심적으로는 -UI는 결국 응용수준이지 core 수준은 아니기 때문에-맞는 말이라고 해도, 이것이 데스크탑 시장의 90%이상을 점유하고 있는 윈도라는 OS의 기본 애플리케이션 모델을 개발하는 기술이다라고 하면 그 무게감은 확실히 달라질거에요.

코드명 Jupiter가 사실이라고 가정한다면, 단순히 웹 브라우저 플러그인으로 시작한 실버라이트가 이제는 OS 레벨의 기본 UI 프레임워크로서 자리를 잡게 된다는 것을 의미하며 이미 윈도폰7은 그것이 가능하다는 것을 증명하는 사례라고 할 수 있을거에요. 또한 실버라이트 5의 가장 충격적인(?) 기능, P/Invoke의 존재는 OS 레벨의 통합을 뒷받침하는 강력한 증거라고 할 수 있어요.

한편, 보다 거대한 흐름에서 데스크탑 OS는 점유율이 날로 축소되고 있는 것도 사실이며 바로 이 때문에 마이크로소프트는 (항상 그렇듯이) 늦었지만 전력을 다해 모바일과 클라우드에 투자를 하고 있죠. HTML5는 특히 컨슈머용 앱에 있어서 킬러 플랫폼이 될 가능성이 크지만, who knows? 누가 섣불리 예측할 수 있겠어요? 3D 게임 소스가 널려있다고 해서 모두가 다 3D 게임 개발자가 될 수는 없잖아요? 다만 한가지 확실한 사실은 실버라이트가 미래에도 경쟁력을 가지려면 보다 넓은 플랫폼에서 동작을 보증해야 하고 그런 점에서 윈도 자체의 발전 방향은 올바르다고 할 수 있어요.

또 한편으로 애플의 OS는 포기하손치더라도 자유로운 리눅스쪽에 실버라이트가 (제대로, 간편하게)포팅될 수 없다는 사실은 상당히 아쉬운 점으로 남네요. 비즈니스적인 관점에서 데스크탑으로서의 리눅스는 전혀 고려대상이 아니지만 아무래도 임베디드나 모바일은 리눅스가 기본이라고 봐야하니까요.

막판에 조금 심각해지긴 했지만, 역시나 이런 뉴스들은 가볍게 보는 게 재밌어요. 요 몇년새 답이 안보이던 마이크로소프트가 과연 이러한 전략들로 다시 예전의 영광을 찾을 수 있을 것인가! 저 높은 곳에서 치열하게 싸우고 있는 클라우드시장의 향방은? 마이크로소프트와 반대로 요 몇년새 최전성기를 누리고 있는 애플의 독주는 과연 계속 될 것인가? 구글의 본격 세계 정복은 언제쯤? 기대하시라 개봉박두!

 

Posted by gongdo
당분간 최상단에 배치합니다.

read more...

Posted by gongdo

 

 

키노트 및 전체 세션 다시보기: http://www.silverlight.net/news/events/firestarter/

어제 라이브 방송은 Live Smooth Streaming을 이용하여 3Mbps의 고화질 영상으로 중계되었죠.
별도의 재인코딩 과정 없이 곧바로 On Demand로 전환되어 볼 수 있어요. 한번 탐색을 해보면 Smooth Streaming의 장점을 느낄 수 있을거에요.
(그런데 아쉽게도 서버가 미국에만 있어서 그런지 속도가 잘 안나오네요. ㅠ.ㅜ)

  • 키노트; 실버라이트의 미래
    Scott Guthrie 마이크로소프트 개발부분 부사장  
  • 세션1; 데이터 바인딩
    Jesse Liberty 개발자 가이던스, 윈도우 폰
  • 세션2; WCF로 REST 및 LINQ를 사용하여 강력한 앱 만들기
    Yavor Georgiev WCF 프로그램 매니저
  • 세션3; WCF RIA Services로 기능성 있고 풍부한 비지니스 앱 만들기
    Dan Wahlin
  • 세션4; MVVM 통합하기
    John Papa 시니어 기술 이반젤리스트
  • 세션5; 설치 경험
    Tim Heuer 시니어 프로그램 매니저
  • 세션6; 애플리케이션 프로파일링과 성능 팁
    Jossef Goldberg 시니어 프로그램 매니저
    Mike Cook 개발자
  • 세션7; 윈도우 폰 애플리케이션 성능
    Jaime Rodriguez Principal 기술 이반젤리스트

 

온라인 랩; http://www.silverlight.net/news/events/firestarter-labs/

주로 LOB(Line of Business) 애플리케이션에 촛점을 맞추고 11단계로 진행되는 랩이에요.
각 단계별로 비디오와 랩이 제공되므로 차근차근 따라 할 수 있고 다운로드 할 수 있는 키트도 제공되는군요.

농담이 아니라 진짜 몇 백만원 이상의 가치가 있네요.
이런거 보고 있으면 제가 간간히 하는 강의가 무슨 의미가 있나 싶어요. 여기 다 있고 더 잘되어 있는데;;

암튼 Stay in the FIRE~

Posted by gongdo

마이크로소프트 본사가 위치한 미국 레드먼드는 이제 곧 점심 시간이겠지만, 훌륭한 우주적 법칙에 따라 저는 한국 시간 새벽 4시에 잠도 안자고 트윗질과 블로그질을 하고 있어요.

왜?! 바로 실버라이트 5에 대한 미리보기와 함께 실버라이트의 미래에 대해 소개하는 실버라이트 퐈이야(Silverlight FireStart) 행사가 라이브로 진행중이기 때문이죠.

실버라이트 5에 대한 요약을 정리한 사이트가 벌써 공개되었는데요, 역시나 귀차니즘과 먹고사니즘이 중요한 분들을 위해 날림 번역 들어갑니다. 같잖은 번역따위 보고싶지 않다…고 생각하시는 분은 http://www.microsoft.com/silverlight/future/ 여기로 :)

 

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

실버라이트의 미래

마이크로소프트 실버라이트는 웹에서 풍부한 인터넷 애플리케이션과 미디어 경험을 만들고 전달하는 강력한 플랫폼입니다. 실버라이트 4를 토대로 올린 실버라이트 5는 비즈니스 애플리케이션, 고품격 미디어 애플리케이션뿐만 아니라 브라우저를 넘어서는 애플리케이션까지 지원합니다. 실버라이트 5는 40개가 넘는 새 기능을 소개합니다. 요컨대 실버라이트 애플리케이션이 브라우저 안에서 데스크탑 기능을 지원하거나, 극적인 동영상 품질과 성능 향상, 그리고 개발자의 생산성을 향상시키는 기능 등이 있습니다.

실버라이트 5 베타는 2011년 1사분기에 사용할 수 있을 것이고 보다 자세한 정보는 http://www.microsoft.com/silverlight/에서 볼 수 있을 것입니다.

 

실버라이트 5 베타에서 공개된 새 기능

 

[고품격 미디어 경험]

실버라이트 5는 향상된 미디어 지원과 풍부한 UI 기능을 제공합니다.

  • 하드웨어 디코딩과 H.264 표현은 낮은 성능의 장치에서 GPU를 이용하여 HD급 동영상을 재생할 수 있도록 성능을 향상시킵니다.
  • TrickPlay(재생 속도 조절) 기능은 동영상이 다른 속도로 재생될 수 있게 하고 빨리 감기와 되감기를 지원합니다. 두 배속까지는 음성 피치(높낮이)가 자동으로 보정되어 사용자가 동영상을 보통 음성 피치를 유지하면서 감상할 수 있습니다.
  • 향상된 전원 감지 기능은 동영상을 보고 있을 때 화면보호기가 뜨지 않도록 하고, 동영상을 보고 있지 않을 때는 컴퓨터가 대기(sleep) 모드가 될 수 있도록 허용합니다.
  • 원격제어(리모콘) 기능은 사용자가 미디어 재생을 제어할 수 있게 합니다.
  • DRM(Digital Rights Management)의 진보는 DRM 영상 원본이 전환될 때에도 끊김이 없습니다.

 

[비즈니스 애플리케이션 개발]

실버라이트 5는 차세대 비즈니스 애플리케이션을 만드는 마이크로소프트의 솔루션입니다.

유동적인(fluid) 사용자 인터페이스 기능으로 UI 사이의 애니메이션을 더 부드럽게 합니다. 레이아웃간 트랜지션(Inter-Layout Transitions) 기능은 해당 레이아웃에 엘리먼트가 추가되거나 삭제되거나 다시 정렬되었을 때 개발자가 지정한 애니메이션이 동작하도록 합니다. 이를 통해 예를 들어 리스트에 아이템이 추가될 때 보다 부드러운 사용자 경험을 제공합니다.

텍스트 기능 향상으로 풍부한 잡지 스타일의 텍스트 레이아웃을 만들 수 있게 되었습니다.

  • 여러 컬럼의 텍스트와 연결된 텍스트 컨테이너 기능으로 텍스트가 다른 엘리먼트 주변에 표시될 수 있습니다.
  • Tracking/leading 은 각 문자가 얼마나 멀리 떨어져야 하는지를 설정하여 완전히 제어를 합니다.
  • 픽셀 맞춤(Pixel Snapping)으로 텍스트의 명료성이 향상되었습니다.
  • 텍스트 레이아웃 성능이 대폭 향상되었습니다.
  • OpenType 지원이 향상되었습니다.

Postscript 벡터 인쇄가 지원되어 사용자가 리포트나 문서를 만들수 있고 스크린에 보이는 것과 다른 형태의 가상 인쇄 보기를 만들 수도 있습니다.

애플리케이션이 이제 사용자가 기대하는 방식으로 더블 클릭과 콤보박스의 연속 입력(type ahead)을 지원합니다.

모델 뷰 뷰모델(MVVM; Model View ViewModel)과 데이터 바인딩이 향상되어 보다 많은 일이 더욱 쉽게 XAML로 사용할 수 있습니다.

  • 디버깅 지원으로 이제 바인딩 위에 브레이크 포인트를 설정할 수 있어서 바인딩이 실패했을 때 단계별로 진행할 수 있습니다.
  • 명시적 DataTemplate은  템플릿이 애플리케이션을 넘어서 생성될 수 있도록 분리된 타입을 지원합니다.
  • Ancestor RelativeSource(자신의 조상에 있는 원본)는 예를 들어, DataTemplate이 자신을 담고 있는 컨트롤에 있는 속성을 바인딩 할 수 있게 합니다.
  • 스타일 세터(Style setter)에서 바인딩을 사용할 수 있어 스타일이 다른 프로퍼티를 참조할 수 있습니다.
  • DataContextChanged 이벤트가 소개되었습니다. 마크업 확장으로 코드가 XAML이 파싱될 때 실행될 수 있게 하며 이를 통해 속성이나 이벤트 핸들러를 처리할 수 있어 첨단 MVVM 지원을 가능케 합니다.

네트워킹과 WCF(Windows Communication Foundation) 향상점.

  • 네트워크 지연시간이 백그라운드 스레드를 이용하여 감소되었습니다.
  • WS-Trust 지원: Security Assertion Markup Language 인증 토큰.

실버라이트 5 성능 향상점.

  • 네트워크 지연시간이 백그라운드 스레드를 이용하여 감소되었습니다.
  • XAML 파서가 향상되어 시작이 빨라지고 런타임 성능이 높아졌습니다.
  • 64비트 운영체제를 지원합니다.

그래픽 향상점.

  • GPU(Graphics Processing Unit)로 가속되는 3D API(Application Programming Interface)가 웹에서 보다 풍부한 그래픽을 제공하며 진보한 데이터 시각화와 사용자 경험을 만들 수 있습니다.
  • Immediate 모드 그래픽 API로 GPU로 직접 렌더링 할 수 있습니다.
  • IE9에서 Windowless 모드에서도 하드웨어 가속을 지원합니다.

 

 

실버라이트 최초로 데스크탑 기능을 브라우저로 가져온 신뢰된 애플리케이션의 새 클래스를 제공합니다. 이 기능은 그룹 정책 레지스트리 키와 애플리케이션 인증을 통해 가능하며 이것은 사용자가 다음과 같이 복잡한 작업을 위해 브라우저를 떠날 필요가 없다는 것을 의미합니다.

  • HTML 콘텐트를 웹 브라우저 컨트롤로 호스팅합니다. 도움말 콘텐트나 이메일과 같은 HTML 페이지가 실버라이트 애플리케이션에 통합될 수 있습니다.
  • 사용자의 내 문서 폴더를 읽거나 쓸 수 있고 미디어 파일을 찾거나 리포트의 로컬 사본을 만들기 쉬워집니다.
  • 마이크로소프트 오피스나 다른 데스크탑 프로그램을 실행할 수 있습니다. 사용자가 마이크로소프트 아웃룩을 열어 새 메일을 만들거나 리포트를 워드로 보내는 등 오피스의 능력을 활용할 수 있습니다.
  • COM 컴포넌트를 통하여 장치에 접근하거나 다른 시스템 기능에 접근할 수 있습니다. 사용자는 USB 보안 카드 리더나 바코드 스캐너에 접근할 수 있습니다.
  • 풀 스크린에서도 모든 키보드를 사용할 수 있어 보다 풍부한 키오스크나 동영상 뷰어 애플리케이션을 만들 수 있습니다.
  • 실버라이트에서 P/Invoke를 사용하여 관리되지 않는 코드를 직접 호출할 수 있습니다.

 

Out-of-Browser 신뢰된 애플리케이션이 더욱 향상되었습니다.

  • 실버라이트에서 P/Invoke를 사용하여 관리되지 않는 코드를 직접 호출할 수 있습니다.
  • 자식 윈도우 지원으로 여러 개의 윈도우를 애플리케이션으로부터 새로 띄울 수 있습니다.

 

 

툴 향상점.

  • 마이크로소프트 비주얼 스튜디오 프로파일링 지원은 CPU, 메모리, 스레드 충돌을 포함합니다.
  • 비주얼 스튜디오 팀 테스트를 지원합니다.

   

 

여기에 소개한 것이 바로 실버라이트 5 베타에 포함되리라 기대하는 기능들입니다. 항상 그렇듯이, 최종 제품과 기능은 베타 과정에서의 피드백과 테스팅에 근거하여 포함될 것입니다. 우리는 베타 테스팅에 참여할 파트너와 고객과 가깝게 소통하길 기대합니다.

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

어떤가요? 또 한번 기대되지 않나요? ^^

뭐, 좋아지는 기능들이야 너무나도 당연하니 자세한 소개는 나중에 다시 하도록 하고, 가장 논쟁이 될 법한 기능만 간단하게 언급할게요.

일단 가장 충격적인건 P/Invoke를 브라우저 안에서도 지원’할 수’ 있다…는 점이에요. 물론 그룹 정책 편집도 필요하고 애플리케이션의 인증서도 필요하다지만 이것은 다시 말하자면 ActiveX의 악몽이 재현되는게 아닌가…하는 걱정을 지울수가 없네요. 사실 실버라이트 4의 OOB에서도 Trusted가 되면 COM Interop.을 통해 얼마든지 시스템에 접근할 수 있었지만 ‘브라우저 안에서’ P/Invoke를 하는 것과는 차원이 다른 문제지요. 물론 마이크로소프트가 정신줄을 놓지 않는 이상 아무런 방어 대책 없이 P/Invoke를 호출할 수 있게 하진 않겠죠. 아직은 구체적인 내용이 나와 있지 않아서 장담할 수는 없지만 몇몇 영역을 보호하는 형태로, 즉 ActiveX처럼 마구잡이로 시스템을 건드리지는 못하게 가지 않을까 조심스럽게 예상해 봅니다.

휴, 밤새 달리느라 졸려 죽겠네요. 그래도 아직 실버라이트 퐈이야는 끝나지 않았어요. 좀 더 보다 자렵니다.

Posted by gongdo
한참 된 얘기긴 한데;; 전에 Code Party 행사에서 발표한 내용이 동영상으로 올라왔더군요.
아무도 안가르쳐줘... 쳇!

코드파티 다시 보기 페이지로 가시거나 아래에서:)



전에도 올렸지만, 발표 자료는 아래에서 다운로드 받으세요.

Posted by gongdo
초쿰 늦은 감이 있지만...


아래는 제가 제작에 참여했던 것들만 모았어요.

작품명: 텔레비전에 내가 나왔으면. (I'm On The TV!)
디자인, 영상 제작: 권미경
개발: 공도


작품명: 욕망이라는 이름의 나무. (A Tree Named Desire)
디자인, 미술: 이은아
개발: 공도
제작 도움: 한명순(Thanks!)


욕망이라는 이름의 나무(설명)


작품명: The Iris
디자인: 최형준
개발: 공도
미니어처 제작: JP공방(Special thanks!)



우와와앙! 다음번엔 더 재밌는 걸로!!!
Posted by gongdo

이것도 경험이 없으면 꽤나 찾기 어려운 것중 하나.

다음과 같이 프로젝트를 만들었다고 하죠. 프로젝트에 두 개의 사용자 컨트롤이 있고 하나의 IValueConverter가 있어요. 그리고 테스트를 충분히 해서 Release 모드로 빌드를 했다고 합시다.

그런데 디자인을 익스프레션 블렌드에서 보고 싶어졌어요. 이 프로젝트를 블렌드에서 띄우면?

이와 같이 자기 자신의 네임스페이스도 못 찾게 되죠. 이상한 점은 <UserControl.Resources> 안에 선언된 것만 못찾는다는 점이에요. 위의 코드에서 <UserControl.Resources>블럭을 삭제하면 정상적으로 뜨는 것을 확인할 수 있거든요.

문제를 해결하려면, 비주얼 스튜디오에서 빌드 모드를 Debug로 설정하고 다시 빌드한 후 블렌드에서 열면 돼요.

문제의 원인은 바로 블렌드는 항상 Debug모드로 간주되는데 비주얼 스튜디오에서 빌드할 때 Release 모드로 빌드를 했기 때문이에요.
뭔가 우습지만 막상 닥쳤을 때 찾기 어려운 문제라 기록해둡니다.

Posted by gongdo
※추가
뭐가 바뀌었냐고요?
배너!!
네, 스콧 횽님을 전면에 내세우고 제목에도 실버라이트의 "미래", 롸잇 나우!라고 강조했습니다.
무엇을 의미하는지는 명백하죠!
이거 생각보다 재밌는 내용이 나올지도 모르겠네요.
기대하시라, 개봉박두!

Silverlight Firestarter(이하 실버라이트 퐈이야!)라는 이벤트가 태평양 시각 12월 2일 오전 8시에서 오후 5시까지 온라인에서 라이브로 진행됩니다.
우리 시간으로는... 12월 3일 금요일 새벽 1시(;;;)부터 오전 10시까지 이어지겠군요. 하하;
혹시나 시애틀이나 레드먼드에 거주(...)하거나 방문 중이라면 직접 마이크로소프트 레드먼드 캠퍼스에 갈 수도 있어요. 훗.


어쨌거나 우리의 생활 패턴과는 거리가 먼 행사를 굳이 공유하는건 나름 의미가 있기 때문인데요,
바로 몇 주전에 있었던 PDC'10에서 실버라이트와 관련하여 엄청난(그래봐야 찻잔속의 태풍이었지만) 혼란이 있었고
실제로 몇몇 실버라이트를 주력으로 사용하는 개발자/개발사에 큰 타격을 입혔죠.
뭐 언제나 그렇듯, miss communication과 언론의 호들갑 그리고 이어지는 고객사의 대혼란...
이라고 남일 얘기하듯 말해보지만 여튼간 실제로 타격을 입은 개발자/개발사도 있었기에 매우 유감스러운 일이었어요.
문제의 발언을 했던 마이크로소프트 서버&툴 비즈니스 부분 수석 부사장(이건 또 뭔 직책이래 -_-) 봡(Bob Muglia)이 급하게 진화하는 포스팅을 했고 이어서 닷넷의 아부지, 개발자 부분 부사장 스콧(Scott Guthrie)이 실버라이트에 관한 성명을 포스팅하기에 이르렀죠.
(하지만 언제나 그렇듯, 이런 종류의 진화 작업은 별로 '핫'하지 않기에 사람들에게 전파가 잘 되지 않고 또 하나의 'IT미신'은 그렇게 세간을 떠돌아 다니죠. 씁슬... ㅎㅎ)

여튼 실버라이트 퐈이야!는 이 사건과 관계 없이 미리 예정되어 있었지만 이 사건 때문에 시기상 더욱 중요한 의미를 가지게 되었어요. 행사 내용을 대충(=날림 번역) 보자면...

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

실버라이트 퐈이야!는 무슨 행사?
  • 이벤트: 하루짜리, 글로벌, 라이브 스트리밍과 다시보기가 지원되는 이벤트로 스콧 거쓰리가 키노트를 합니다.
  • 교육: 새로운 자기 학습형 랩과 단계별 비디오가 제공됩니다.
  • 참여: 행사 기간 동안 라이브를 보면서 실버라이트 제품 팀에게 질문을 합니다.
  • 왜 실버라이트를?: 실버라이트는 강력한 개발 플랫폼으로써 온라인 또는 오프라인에 매력적이고 인터랙티브한 사용자 경험을 가진 웹, 데스크탑 및 모바일 애플리케이션을 만들 수 있습니다. (※주: 이게 현재 실버라이트의 정의가 되겠네요. 과거와는 뉘앙스가 조금 다르죠?)
무엇이 준비되나?
  • 실버라이트를 막 시작하나요? 시작하기(On-Ramp) 세션을 보세요.
  • 이미 비즈니스 애플리케이션을 만들고 있나요? 라이브 비디오를 통해 스킬과 이해도를 높이세요.
  • 질문이 있나요? 라이브 또는 직접 실버라이트 제품 팀과 대화하세요.
퐈이야! 라이브 어젠다
시간(한국시간)발표자세션 세부
8:00 am
(1:00 am)
Scott Guthrie  Scott Guthrie 실버라이트 퐈이야! 키노트
9:00 am
(2:00 am)
Yavor Georgiev  Yavor Georgiev /Jesse Liberty  Jesse Liberty WCF REST와 LINQ를 이용하여 주목받는 실버라이트/윈폰7용 앱 만들기
10:00 am
(3:00 am)
15 분 휴식
10:15 am
(3:15 am)
Dan Wahlin  Dan Wahlin RIA Services로 리치 비즈니스 앱 만들기
11:15 am
(4:15 am)
John Papa  John Papa MVVM: 왜 그리고 어떻게? 실버라이트와 윈폰7에 관한 MVVM 사용 패턴과 서비스 패턴
12:15 pm
(5:15 am)
점심(※주: 우리에겐 이른 아침?)
1:00 pm
(6:00 am)
실버라이트 오늘과 내일(특별 손님 초대!)
1:30 pm
(6:30 am)
Tim Heuer  Tim Heuer 실제 실버라이트 앱 만들기
2:30 pm
(7:30 am)
15 분 휴식
2:45 pm
(7:45 am)
Scott Guthrie  Mike Cook &
  Jossef Goldberg
애플리케이션 조율: 프로파일링 및 성능 팁
3:45 pm
(8:45 am)
Jaime Rodriguez  Jaime Rodriguez 실버라이트/윈폰7을 위한 치명적인 성능 팁
5:00 pm
(10:00 am)
파티 타임!
(※주: 당연하지만, ) 세션 주제는 변경될 수 있습니다.

라이브가 끝나도 퐈이야!
추가적인 핸즈 온 랩(Hands On Lab; 직접 해보기)과 라이브 세션 내용을 만드는 비디오로 더 깊게 파고들어 더 빠르게 실버라이트 개발을 가속해봅시다!
  • 라이브 비디오는 다시보기가 제공됩니다.
  • 새로운 자기 학습형 랩과 단계별 비디오가 제공됩니다.
  • 시작하기 랩(100 level)
    • 핸즈 온 랩: 새 실버라이트 개발자가 빠르게 익히는데 촛점을 맞췄습니다.
    • 윈폼, HTML이나 ASP.NET을 해봤고 이제 실버라이트도 배우고 싶다면? 바로 당신을 위한 랩이 있습니다.
  • 더 나은 비즈니스 앱 만들기(200-300 level)
    • 핸즈 온 랩: 실제 비즈니스 애플리케이션을 만들 때 실버라이트로 얻을 수 있는 장점에 촛점을 맞췄습니다.
    • 데이터 전략, 패턴, 아웃 오브 브라우저, RIA Services 등의 기법을 적용합니다.
  • 이제 내 차례! 전문가들이 직접 제공하는 비디오도 보세요!

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

사정이 허락하는 한, 저는 라이브를 한번 지켜볼 생각이에요.
뭐, 그래봐야 별 소득은 없으리라 거의 확신하지만, 외쿡 개발자들은 질문을 꽤나 날카롭게 하거든요. 그런 건 좀 볼만하죠.
제대로 못알아듣는 건 슬프지만요. 어쩔 수 없죠.

그럼! (관심있는 분)다같이 퐈이야~~~~!!!
Posted by gongdo
오랫동안... 그러나 조금씩 준비해왔던 전시회가 드디어 확정되었습니다.
이런저런 사정으로 너무 늦게 공지를 하는 감도 있지만, 그래도 한다는 게 중요하죠!


네 이런 모임이에요.
카페는 http://cafe.naver.com/blpan 이고요,
참가신청은 ONOFFMIX로 하고 있어요. 물론 당일에 가볍게 와서 즐기시면 되지만 그래도 나중에 행사 관련 자료나 인사를 드리려면 이메일이 필요하니 등록해주세요^^
그리고 당일 작품소개는 매 시간마다 진행하니깐 아무때나 시간날때 오시면 OK.

궁금한게 있으면 언제든 제 블로그, 트위터(@gongdo or @dailyblpan)로 알려주세요.

Posted by gongdo

음핫핫핫! 드디어 아두이노로 실버라이트와 연결 거기에 무려 3축 센서(!)까지 연결을 완료했습니다!
정말 오랫만에 느껴보는 새로운 영역을 개척했을 때의 기쁨이네요. 물론 언제나 그 시작은 심~~~히 하찮지만요.

어제 올렸던 징징글... 올리자마자 뭐가 문제였는지 깨달음을 얻었습니다.
역시 징징글은 올리고 봐야해.

문제는 바로...
'낫놓고 기역자도 모른다!'
네, 기껏 레퍼런스 데이터 시트 받아서 끙끙거리면서 봤지만 중요한 표기법을 놓쳤던거죠.
그것은...


두둥! 바로 네거티브 입력 표기를 간과했다는 거 -_-;
그러니까 칩셋 데이터 시트에 보면 핀 이름에 윗줄이 그어져 있는 경우가 있는데,
이건 그 이름을 동작시키기 위해 -입력(디지털 신호일 경우 보통은 Ground)을 필요로 하다는 거죠.

...아놔... 아무리 제대로 공부한건 아니라고 해도 이건 너무나도 기본적인거였는데 -_-;
암튼 데이터 시트 제대로 안보고 Sleep Mode니까 뭔가 신호를 줘야 재워줄 수 있을거라고 착각했는데요,
잘 생각해보니 Sleep일 때 전원을 인가하는건 엄청 비효율적인거잖아요. 이런 깊은 뜻이!

여튼 문제는 너무나도 간단하게도 Sleep Mode에 +전원을 연결했을 뿐이고,
이제 동작 잘 할 뿐이고!

사실 요즘 이걸로 만들고 싶은게 생겼는데 나름 데드 라인이 있는거라 시간관계상 자세한 포스팅은 어렵지만,
동작 구동 영상을 올립니다.
뿌듯한 점은, 바로 아두이노와 실버라이트를 TCP 소켓으로 연결할 수 있는 가능성을 증명한 것이지요.
네, 실버라이트에서 아두이노의 신호를 입력받아 오브젝트를 제어할 수 있고 반대로 실버라이트에서 아두이노로 신호를 보내 장치를 제어할 수도 있죠.

무지 간단한 데모지만 3축 센서 입력을 받아 실버라이트 오브젝트를 제어하는 영상이에요.
웹캠으로 찍어서 화질은 더럽습니다. ㅎㅎ


아자아자아자자자자!
P.S.
근데 이거 카테고리가 아두이노여 실버라이트여?
Posted by gongdo
음... 디바이스 마트에서 3축 가속 센서를 사다 아르두이노랑 연결해보고 있는데...
분명히 첫날 납땜도 안하고 대충 잡고 연결했을 때는 되길래 아무 걱정 없이 몇 일후에 납땜을 해봤더니 전혀 안되는군요. 아오.
http://www.devicemart.co.kr/mart7/mall.php?cat=049005000&query=view&no=21777
문제의 그 센서.

요놈 좋은게 필요한 주변 회로가 다 구성이 되어 있어서 VDD에 +3.3V 인가만 하면 되고 아두이노도 자체 3.3V 출력이 있어서 그냥 꽂기만 하면 될 줄 알았더니 쉽지는 않군요.
분명 전원은 들어오는데... X,Y,Z에서 > Analog 0,1,2로 연결한 곳으로 아무 신호도 안나오고. 음. 뭐가 문젤까.

음... 이제와서 다른 센서를 시도하기에도 좀 무리가 있고 해서.
남은 건 삽질뿐... ㅠ.ㅜ 
Posted by gongdo
오랫만의 실버라이트 세미나. 3개월만이네요.
월간 마이크로소프트웨어와 한국 마이크로소프트가 주최하는 코드 파티 그 네번째 시간에서 MVVM을 주제로 발표했습니다.
이번에는 MVVM의 아주 기초적인 부분을 바닥부터 쓸어 올리면서 도대체 "왜" 이런 골치아픈 걸 해야 하는지를 후벼파 봤어요.
MVVM을 '어떻게' 사용하는가보다 '왜' 사용하는지 궁금한 분들께 도움이 되길 바랍니다.


요즘 너무 바빠서(라고 쓰고 의욕제로라고 읽는다) 자세한 포스팅을 하기엔 무리가 있고,
세미나를 들은 분께 혹시 필요할까 싶어서 올립니다.
동영상은 아마도 행사 홈페이지에 따로 올라가는 걸로 알고 있어요.

Posted by gongdo
요즘 아두이노 버닝 중이에요.
아두이노 관련 첫 글이라 약간의 잡설(=뻘소리)을 좀 해야겠어요. 방해 안되게 접어둘게요. :)

더보기


여튼, PlugHouse에서 Opto-sensor라는 물건을 팔더군요. 용도는 물체의 접근을 감지하는 것.
아두이노를 접하고 만들어 보고 싶은게 충돌 감지를 이용한 '무언가'인데다가 가격도 꽤 싼편이라 올타꾸나 하고 질렀는데...
받고 나니 좌절이더군요. 데이터시트가 있지만 이건 뭐 낫 놓고 기역자도 모른다는 딱 그 꼴.

그래도 수 차례 삽질을 한 끝에 (저는) 만족할만한 결과를 뽑아주는 회로와 스케치 코드를 만들었어요.
이 회로에서 저항들이 무엇을 의미하냐고요?

몰라요;

그냥 이 회로는 수십번에 걸친 와이어링 끝에 원하는 동작이 나왔을 뿐...
저항값 수식 계산 한 번 안했지요; 핫핫핫.
그래서 말인데 혹시 이거 제대로 볼 줄 아는, 댓글 남겨 주실 분... 안생기겠죠? 네 뭐.

여기서 주의해야 할 점은 OSG-105LF라는 부품의 위치인데요,
회로도에서는 1번 핀을 기준으로 2, 4, 3 순서이지만 실제 부품상의 배치는 1, 2, 3, 4 라는 점이에요.
무슨 얘기냐면 실제 부품은 아래와 같이 생겼다는 거죠.
부품을 자세히 보면 약간 둥그스러운 부분이 딱 한 귀퉁이가 있는데 거기가 1번이에요.

암튼 위의 회로도와 부품 핀 번호를 참고해서 브레드보드에 회로를 대충대충 구성하고,
- Vcc는 아두이노의 아날로그 5v 출력으로
- Ground는 아두이노의 아날로그 Gnd로
- Signal은 아두이노의 아날로그 0번 입력으로 연결하면 돼요.

여기에 출력 확인을 위해 LED를 9번 핀에 연결했어요. (요부분은 아두이노 책에 나온 PWM 기초 회로 5-4와 동일)

다음 스케치 코드는,

const int analogInPin = 0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

const int fromLow = 0;
const int fromHigh = 700;

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);           
  // map it to the range of the analog out:
  outputValue = constrain(map(sensorValue, fromLow, fromHigh, 0, 255), 0, 255); 
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);          

  Serial.print("sensor value / output value: " );                      
  Serial.print(sensorValue);
  Serial.print(" / ");
  Serial.println(outputValue);

  // wait 10 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  delay(10);                     

}

이렇게 하면 9번 핀에 연결한 LED가 0번 핀에 입력으로 들어온 Opto-interrupter의 값에 따라 밝아졌다 어두워졌다 할거에요.
동시에 시리얼 포트로는 입력으로 들어온 값이 표시되겠죠?
센서에 따라 값이 조금 다르게 들어오겠지만 제 경우는 map()함수에서 사용할 fromHigh값을 700 정도로 잡았을 때 가장 적당한 범위로 사용이 가능했어요.

여기에 이르기까지 많은 실패와 시행착오가 있었으니...

수 많은 실패작들;;
잘 보면 아시겠지만 되도 않는 회로를 그냥 막 가져다 붙였을 뿐...;;;

최종적으로 제대로 동작하는 회로.
그러나 저 저항값들이 왜 그래야 하는지는 이유가 없으니... 갑자기 부품이 파손되어도 전혀 이상하지 않을 일!

겨우겨우이어 맞춘 회로. 끝내고 나니 별거 아니네요. -_-;

Posted by gongdo
참으로 오랫만입니다.
무려 3개월 만이네요.
휴가를 즐기고 있어요.

이런 걸 하면서 말이죠.

실버라이트 접었냐고요?
에이, 설마 그럴리가요.
조만간 전혀 다른 테마로,
꼭 다시 포스팅 할게요.

꼭!
Posted by gongdo
TAG 근황
다소 싱겁게도 한 메신저가 '그 분'의 말씀을 전해주셨네요.
어제 좀 빡세게 같이 작업을 했었는데 안쓰럽다면서 불쌍한 중생들에게 피자 강림이라는 기적을 보여주신 그 분은...


SKYGIRL

감사히 잘 먹었어요 :)
Posted by gongdo

오늘도 회사에서 웹툰을 보다 꾸벅꾸벅 졸고 있는데 충전중이었는데 갑자기 들이닥친 의문의 배달원.
"공도 님, 피자 배달 왔습니다."
"...누구요?"
"공..도..님 안계신가요?"
"...나니이이이이이~~!!?? (뭐어???)"
네에 말 그대로 사무실에 의문의 피자 배달이 왔습니다.
수신인은 무려 "공도";;; 발신인은 알 수 없는 상태.
그것도 아주 적당한 시간에 우리 사무실에 있는 사람들이 적당히 먹을 수 있는 분량으로 말이죠.

인증샷.

"공팀장님 무슨 일이에요?"
"네?;"
"공팀장님 여자친구가 보낸거 아니에요?"
"네?;;;"
"공팀장님 어린이날이라고 공도 어린이한테 보낸거 아니에요?"
"네?;;;;;;"
"공팀장님 어버이날이라고 숨겨놓은 자식이 보낸거 아니에요?"
"네?;;;;;;;;;;;"
"공팀장님한테 원한 있는 사람이 독이라도 발라서 배달 보낸거 아니에요?"
"네?;;;;;;;;;;;;;;;;"

적잖이 당황하긴 했지만, 이럴 땐 일단 먹고 보는게 상책 아니겠습니까?
주는 밥을 마다하겠습니까? 
공도, 인생 삼십년. 저 그렇게 살지 않았습니다. (당당)
(아하하하하하하하하하!)

아직도 술렁거리던 회사 사람들, 이내 정신 차리고 쳐묵쳐묵 타임.
(피자냄새에 이끌려 좀비처럼 꾸역꾸역 모여드는 휴즈플로우 직원들...)

"도대체 누가 이런 선행을 저질렀단 말인가! 우리는 이대로 좋은가!"
라며 양볼에 피자를 우겨 넣으며 고민하던 중, 맛있는 피자가 배달되었다는 문자 메시지가 기억나더군요.
문자 메시지가 도착한 시간은 1시 44분, 그리고 저 위에 영수증에 찍혀있는 주문 시간도 1시 44분!
이.. 이거슨!?
무려 오후 5시 45분에 맞춰 배달한 계획적인 선행?
게다가 선행인은 자신의 자취를 전혀 내비치지 않은 치밀함까지 보였지요.

이 사건은 완전선행으로 영구 미제가 될 가능성이 큽니다.
'그 분'이 스스로를 밝히지 않는 이상은 말이죠.

그러나 한 가지 확실한 것은!?



















아~ 저 위의 누군가가 나를 좋아하나봐♥(하트 뾰롱~)

P.S.
'그 분'에게...
적절한 시간 적절한 배달 원츄.
파인애플은 좋지만 토핑 파인애플은 별로.
그래도 받은 건...
만족
Posted by gongdo

사실 세미나실 한칸도 못채울까봐 걱정했는데 생각보다 많은 분이 와주셨네요^^
거두절미하고, 발표 슬라이드 및 데모는 다음 링크에서...

다운로드 롸잇 나우!

여기에서 다룬 내용을 간단하게 요약하자면...
  • 실버라이트 애니메이션
    • 애니메이션의 기초
    • 프레임 기반 애니메이션
    • 실시간 애니메이션(스토리보드)
    • 파티클 시스템 기초
  • 실버라이트 그래픽 시스템과 성능 팁
    • 실버라이트 런타임의 렌더링 원리와 과정
    • 레이아웃
    • 성능 카운터(프레임 레이트 카운터)
    • 즉시 렌더링 영역(Intermediate Surface)
    • GPU 하드웨어 가속
    • 미디어 성능
  • 실행 성능 모니터링 및 분석
    • UI Spy 툴 사용
    • Visual Studio 2010 Profiler (VSP)
    • Windows Performance Toolkit (WPT)
꽤 많죠? 가능한 관련 정보에 접근할 수 있는 레퍼런스 링크를 많이 달았으니 부족한 부분은 해당 링크를 통해 검색해보길 바래요.

Posted by gongdo
훈스닷넷 24회 정기세미나

훈스닷넷에서 벌써 24회가 된 정기 세미나를 열어요.
제목은 고급 실버라이트 그래픽과 애니메이션!
이번에는 그 이름도 오글한 거성공도쇼라는 부제로 실버라이트 그래픽 시스템과 애니메이션을 파보려고 해요.
(진짜 오글거리는 제목이긴하지만, 가끔 운영진 회의에서 농담으로 한 얘기들이 이렇게 제목으로 결정되는 경우도 있어요. 헛헛헛)

보통 정기 세미나는 입문 레벨의 원론적이고 간단한 예제 중심으로 진행하는데요,
이번에는 실버라이트나 WPF를 해보지 않았다면 다소 어려울수도 있는 내용을 다룰거에요.
그러나 함께 출연(?)하는 김선구 익스프레션 시삽님의 세션은 실버라이트 뿐만 아니라 많은 그래픽 시스템에서 일반적으로 사용할 수 있는 애니메이션의 원리와 구현에 대해 소개할 예정이니 많은 관심을 부탁드려요 :D

날짜는 2010년 5월 4일 화요일
시간은 오후 7시
장소는 삼성동 포스코 빌딩 5층 마이크로소프트.

JOIN 롸잇 나우!
Posted by gongdo
Update
2010-05-01; Windows Phone Developer Tools April 2010 Refresh(CTP2) 업데이트

드디어 나왔어요~ :D 인증샷 먼저!
최종 릴리즈된 런타임의 빌드넘버는 4.0.50401.0

자, 개발환경 설치 가이드 나갑니다.

0. 기존 Silverlight 4 관련 환경 제거
- Visual Studio 2010 Beta 또는 RC 버전 제거
- Silverlight 4 Beta 또는 RC 버전 제거
- 단, Visual Studio 2008 및 Silverlight 3는 삭제하지 않아도 서로 공존할 수 있으니 구버전이라고 미워하지 마세요! ^^

  1. Visual Studio 2010 RTM 설치
    아무리 급해도 Visual Studio 2010은 먼저 설치해야 겠죠?
    VS2010 설치 하기

  2. Silverlight 4 Tools RC2 for Visual Studio 2010
    이거 하나면 실버라이트 개발자 런타임, SDK 및 템플릿이 모두 설치 완료.
    다운로드

  3. Silverlight 4 Toolkit (2010년 4월 버전)
    RTW 출시에 맞춰서 업데이트된 버전이에요. 옵션이긴하지만 무조건 설치하길 강권합니다!
    다운로드

  4. Expression Blend 4 RC
    여기서 약간 헤깔릴 수도 있지만, 익스프레션 블렌드 4는 아직 RTW가 아니라 RC버전이에요.
    하지만 실버라이트 4 런타임은 RTW와 호환되므로 이걸 설치하면 OK.
    다운로드

    [new]
  5. Windows Phone Developer Tools April 2010 Refresh(CTP2) 
    실버라이트 4 RTW와 함께 사용할 수 있는 윈도우 폰 개발 환경이 출시되었어요.
    이 파일은 설치할 때 웹을 통해 다운로드 받게 되어 있으니 꼭 인터넷에 연결되어 있어야 해요.
    참고로 이 툴은 XNA Studio 4.0을 함께 설치하여 XNA 개발용 툴도 설치하죠. 
    다운로드

    [new]
  6. Expression Blend용 Add-in 및 SDK
    이게 왜 툴이 따로 나왔는지는 모르겠지만 어쨌든 블렌드에서 윈도우 폰 개발을 할 때 필요한 툴이에요.
    아래 두 툴을 모두 다운로드 받아서 설치하면 끝.
    - Expression Blend Add-in Preview for Windows Phone (April Refresh) 
    Expression Blend SDK Preview for Windows Phone (April Refresh)
[보너스]
개발 환경을 구축할 때에는 위의 파일만 설치하면 되지만,
혹시 실버라이트 런타임을 따로 찾고 있다면...
※Silverlight 4 Tools가 RC2라는 이름인 걸 언급을 안했네요. 즉, 블렌드가 정식으로 출시 될 때 혹은 윈도폰 개발환경과 맞춰서 다음 버전이 나올 수 있음을 암시하고 있어요. 어쨌건 네이밍이 좀 헤깔리긴 하지만 실버라이트 런타임은 RTW가 맞고 그 외의 다른 툴들이 RC혹은 RC2인거에요. 부디 헤깔리지 마시길!
Posted by gongdo
Tim Huerer의 포스팅 http://forums.silverlight.net/forums/t/175181.aspx에 의하면 오늘 새벽에 공개된 Visual Studio 2010 RTM과 Windows Phone Development Tool CTP는 서로 호환되지 않는다고 하네요.

어느쪽을 먼저 설치하든 설치 자체는 되지만 윈도우 폰 프로젝트 빌드는 실패할거라고 하니 만약 윈도우 폰쪽에 집중하고 있다면 조금 더 기다려야 할거에요. 윈도우 폰 개발 툴은 몇 주 안에 나올거라고 하는데... 오래 걸리진 않을 거에요.

참고로 실버라이트 4 RTW는 내일 새벽 공개될 예정이고 오늘과 마찬가지로 트위터로 생중계하면서 포스팅 할게요. :)
Posted by gongdo


티스토리 툴바