Namespace와 LINQ to XML

Posted 2008/07/24 22:13 by 길버트
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="ButtonStyleSample.App"
             xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
             >
    <vsm:Application.Resources>
         <Style x:Key="myButtonStyle" TargetType="Button">
             ...생략
         </Style>
         <Style x:Key="yourButtonStyle" TargetType="Button">
             ...생략
         </Style>
         <Style x:Key="herButtonStyle" TargetType="Button">
             ...생략
         </Style>
         <Style x:Key="hisButtonStyle" TargetType="Button">
             ...생략
         </Style>
    </vsm:Application.Resources>
</Application>

string xml에 위의 내용이 들어있다고 가정하고,

XDocument xDoc = XDocument.Parse(xml);

위와 같이 xDoc을 준비해 놓고,

XML데이터에서 Style을 돌면서 x:Key의 Value값만 쏙쏙 뽑아내는 LINQ구문을 작성한다면
어떻게 하시겠습니까?


오답

첨엔 막연히 이렇게 해봤습니다.

var result = from c in xDoc.Descendants("Style")
                select (string)c.Attribute("x:Key").Value;

네, 에러가 납니다.
Attribute의 이름에는 콜론(:)을 추가할 수 없습니다.

Attribute메서드의 파라미터는 XName이구요.
XName을 생성할 때 콜론(:)이 들어간 문자열을 허용하지 않기 때문입니다.

정답

XNamespace x = "http://schemas.microsoft.com/winfx/2006/xaml";
var result = from c in xDoc.Descendants("Style")
                select (string)c.Attribute(x + "Key").Value;

XNamespace + string이 XName이 되도록 연산기호 +에 대해
오퍼레이트 오버라이딩이 잘 되어있더라구요.

x + "Key" 이런 식으로 사용하는 것은 썩 직관적이지 않아서 맘에 안드는데,
알고 나니까 잘 쓸 수는 있겠더라구요. ^^

하지만 역시 LINQ는 쓰면 쓸수록 편한 것 같습니다.

Enjoy your LINQ!



Tag : LINQ, namespace, Silverlight, xml, 실버라이트

코멘트를 남겨 주세요. (Write your message and submit)

MouseWheelHelper.cs (Ver. 휴즈플로우)

Posted 2008/07/24 08:06 by 길버트

Silverlight 1.1 시대의 그것과도 다르고
DeepZoom Composer에서 자동 생성해주는 프로젝트에 들어있는 그것과도 다른...

MouseWheelHelper.cs - Ver. 휴즈플로우

소스가 약간 다르지만 사용방법은 다를 것이 없습니다.
성능상의 차이도.. 글쎄요 ^^;

정리 및 공유 차원에서 포스팅합니다.

Usage

MouseWheelHelper wheelHelper = new MouseWheelHelper(this);
wheelHelper.Moved += new EventHandler<MouseWheelEventArgs>(wheelHelper_Moved);

void wheelHelper_Moved(object sender, MouseWheelEventArgs e)
{
    e.Handled = true;

    if (e.Delta > 0) // 휠 버튼 업!
    {
         // Zoom In 따위를 구현
    }
    else if (e.Delta < 0) // 휠 버튼 다운!
    {
         // Zoom Out 따위를 구현
    }
}

이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : MouseWheelHelper, Silverlight, 실버라이트, 휠버튼, 휴즈플로우

코멘트를 남겨 주세요. (Write your message and submit)

FLICKLOCK?! - Flickr + Clock (Silverlight)

Posted 2008/07/20 01:49 by 길버트


FLICKLOCK?

FLICKLOCK is 'FLICKR + CLOCK'.
It shows you recent photo from flickr.com using Flickr Open API

Does it looks like something you have event seen?
You're right!
It's exactly is the homage to UNIQLOCK.


SPECIFICATION

UNIQLOCK is showing the 'Time Zone Name' under the time text.
Butm FLICKLOCK shows 'DOKDO / SOUTH KOREA' (hard coded).

It means 'Dokdo(=island) is absolutely Korean territory'.

You can see clock for 5 seconds (the way UNIQLOCK does),
then you can see 5 recent photos from flickr.com.


1. If you click FLICKLOCK when the photos are being showed,  
it will float new window to get the flickr.com webpage for the photo.

2. If you click FLICKLOCK when time text is being showed,
it will float new window to get the 'Dokdo Museum'


Share

Click to SHARE button to get the code for sharing.


Source


I hope it would be helpful to you.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : flickr, Silverlight, uniqlock

코멘트를 남겨 주세요. (Write your message and submit)


FLICKLOCK?


FLICKLOCK은 FLICKR + CLOCK으로,
Flickr Open API를 이용하여 flickr.com에 업로드 된 최신 이미지를 보여줍니다.

어디서 많이 본 모습을 하고 있지요?
맞습니다.
많은 블로거들의 사랑을 받는 UNIQLOCK오마주입니다.


특징

UNIQLOCK에서는 TIMEZONE 설정을 시계 아래 보여줍니다만,
FLICKLOCK에서는 DOKDO / SOUTH KOREA란 문구를 하드코딩 해 버렸습니다.

silverlight.net 공식사이트 갤러리에도 소스와 함께 등록요청을 할 계획인데요,
만약 그대로 등록이 될 경우, 은연 중에 외국인 개발자에게 DOKDO가 한국 땅이라는 메세지를
전할 수 있길 바라고 있습니다.

UNIQLOCK과 마찬가지로 5초 동안 시계를 보여주고,
FLICKLOCK에 실시간으로 올라온 최신 사진 5개를 1초 간격으로 번갈아가며
노출합니다.

1. 각 사진이 화면에 떠있는 동안 FLICKLOCK을 클릭하면,
해당 사진이 등록되어 있는 flickr.com의 페이지를 새창으로 띄워줍니다.

2. 시계만 보이고 있는 동안 FLICKLOCK을 클릭하면,
독도 박물관 사이트(영문)를 새창으로 띄워줍니다.


퍼가기

SHARE버튼을 누르면 퍼가기 코드를 제공합니다.


소스공개


업무시간 쪼개서 만드느라 급하게 만들어서, 소스가 조금 허접합니다만,
응용작품 만드시는데 도움이 되시길 바랍니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : DokDo, flickr, Silverlight, uniqlock, 독도, 실버라이트, 유니클락

  1. 한누리

    share 상태에서 소스카피한 다음, 원래 화면으로 되돌아가는 기능이 없는듯 한데요.
    share버튼을 toggle 형식으로 만들어서 share/view 모드로 전환가능하면 어떨까 합니다.
    항상 열심히하시니 부럽군요. 그럼 수고하세요.

    | 2008/07/20 14:52 | PERMALINK | EDIT | REPLY |
  2. BlogIcon 길버트

    일단, 오른쪽 위에 'X' 버튼이 있어서,
    원래 화면으로 돌아가실 수가 있습니다만,
    잘 눈에 안 띄나 보네요. 개선하도록 하겠습니다.
    그리고 share 버튼 토글화도 좋은 아이디어시네요.
    감사합니다.

    | 2008/07/20 22:47 | PERMALINK | EDIT |
  3. 한누리

    죄송해요. 작아서 그런지 미처 x버튼을 못봤네요.

    | 2008/07/20 23:34 | PERMALINK | EDIT |
  4. BlogIcon Joyh

    우왕 달아봐야지..

    | 2008/07/20 22:03 | PERMALINK | EDIT | REPLY |
  5. BlogIcon 길버트

    윤형군 달았다가 떼었구나?
    심각한 문제점이라도 발생?

    | 2008/07/21 09:13 | PERMALINK | EDIT |
  6. BlogIcon Joyh

    집에서는 나왔는데 회사에서 안나와서 잠시 창고로 이관하였습니다.

    | 2008/07/21 12:48 | PERMALINK | EDIT |
  7. BlogIcon 길버트

    윤형군 실버라이트 설치 했는데도 안나오는 것이야?
    증상을 소상히 알려줘!

    | 2008/07/21 13:08 | PERMALINK | EDIT | REPLY |
  8. 1

    <vsm:VisualStateManager.VisualStateGroups>
    이라는 속성이 없다고 나오는데요 (Visual Studio 2008) Silverlight 2 beta2

    | 2008/07/21 15:10 | PERMALINK | EDIT | REPLY |
  9. BlogIcon 길버트

    네, 안녕하세요!
    그것은 Visual Studio가 아직 Silverlight 2 Beta 2의 Feature인
    VisualStateManager를 제대로 인식을 하지 못해서 보이는 에러입니다.

    그럴 땐 한번 더 컴파일을 수행하시면 에러가 사라지는 것을 보실 수 있습니다.
    프로그램을 실행하는데 전혀 지장이 없는 에러입니다.

    Silverlight 2 정식버전 공개와 함께 나올 Visual Studio 2008 패치에서
    문제가 해결되리라 생각합니다.
    감사합니다.

    | 2008/07/21 16:40 | PERMALINK | EDIT |
  10. 1

    네 감사합니다.
    저 나름데로 찾아보니까 비주얼 스튜디오 문제라고 나오네요...ㅎㅎㅎㅎ
    오류로 분류는 되지만 컴파일 및 실행은 된다고 하네요...

    | 2008/07/21 18:20 | PERMALINK | EDIT | REPLY |
코멘트를 남겨 주세요. (Write your message and submit)

상황설명

UserControl 부모와 UserControl 자식이
UserControl.Resource 하위에 같은 이름을 가진 스토리보드를 가지고 있는 상황에서,
자식을 생성하여 부모의 LayoutRoot.Children에 Add를 하려고 시도하면,
경우에 따라서 다음 그림과 같이 ArgumentException을 유발합니다.

사용자 삽입 이미지

정확히 어떤 경우에 이렇게 되는지 실험을 통해 알아 보았습니다.


실험조건

Fafamama 클래스 - 부모 역할을 하는 UserControl 입니다.
Son 클래스 - 자식 역할을 하는 UserControl입니다.
Daughter 클래스 - 자식 역할을 하는 UserControl입니다.

Fafamama는 LayoutRoot의 Opacity를 조정하는 sbShow란 Storyboard를 UserControl.Resources 하위에 가지고 있으며,
Son은 Fafamama를 쏙 빼 닮아 자신의 LayoutRoot의 Opacity를 조정하는 sbShow란 똑같은 이름의
Storyboard
를 가지고 있습니다.
Daughter는 Son이 가지고 있는 스토리보드와 똑같은 스토리보드를 이름만 다르게 하여 가지고 있습니다.

Fafamama.MakeSons() 메서드 - 두 명의 아들을 생성합니다.
Fafamama.MakeDaughters() 메서드 - 두 명의 딸을 생성합니다.

총 6가지 케이스를 실험하기 위해 6번 Fafamama를 생성합니다.

Case 1) Fafamama의 생성자에서 MakeDaughters 호출
Case 2) Fafamama의 Loaded 이벤트에서 MakeDaughters 호출
Case 3) 버튼 클릭에 의해 이미 생성되어 있는 Fafamama의 MakeDaughters 호출

Case 4) Fafamama의 생성자에서 MakeSons 호출
Case 5) Fafamama의 Loaded 이벤트에서 MakeSons 호출
Case 6) 버튼 클릭에 의해 이미 생성되어 있는 Fafamama의 MakeSons 호출


라이브 실험

아래 실버라이트 어플리케이션 안에 실험 Case 6개에 대한 버튼을 준비 하였습니다.
한번 씩 눌러보십시오.


실험결과

부모와 같은 이름의 Storyboard를 가지고 있지 않은 Daughter의 경우, 언제나 예외발생 없이 생성이 된 반면,
UserControl 부모, 자식이 같은 이름의 스토리보드를 가지고 있는 Son의 경우,
생성자에서 호출 시를 제외하고서는 부모의 Panel에 Children.Add 할 수 없었습니다.
이런 경우를 만나신다면 당분간은 피해서(스토리보드 이름을 중복되지 않게 준다거나, 이름을 유지하고, 다른 객체의 Resources 하위로 옮김) 사용해야 하겠습니다.


다운로드


실험에 사용된 프로젝트입니다.



 

Tag : ArgumentException, Children.Add실패, Silverlight, Storyboard이름중복, 실버라이트

  1. BlogIcon HOONS

    맞아요~ 저도 예전에 삽질했던 기억이 있네요 ㅎㅎ

    | 2008/07/10 15:30 | PERMALINK | EDIT | REPLY |
  2. BlogIcon 길버트

    아하! 경훈씨도 그런 경험이 있었군요!

    | 2008/07/12 08:59 | PERMALINK | EDIT |
코멘트를 남겨 주세요. (Write your message and submit)

[SL2 B2] Socket 사용을 위한 Policy Server 만들기

Posted 2008/07/03 17:10 by 길버트

개요

Silverlight 2 Beta 2에서 Socket을 사용할 때 Cross-Domain에 있는 소켓 서버에
접속을 하려면 서버 측의 정책을 확인하는 과정이 필요하게 된 것 아시죠?

다시말해, 실버라이트 런타임이 943번 포트를 통해 실버라이트 정책 파일을 요청하면,
서버 쪽에서는 정책파일을 보내줘야 하는데요.

며칠 전 공도씨[MSDN] 네트워크 보안 접근 제약란 제목의 장문의 번역글을 포스팅했습니다.

그 내용의 하단에 보시면 그런 역할을 하는 서버를 만드는 방법이 소개되어 있습니다.
[소켓을 위한 정책 파일 예제][소켓을 위한 정책 서버의 샘플 코드] 내용이 있구요.
Mike SnowsTip of the Day #12 - Full Implementation of a Silverlight Policy Server.
참고하면 정책 파일 서버를 만들 수 있다고 설명해 놓았습니다.


다운로드

아래는 그것을 그대로 따라서 만들어 놓은 프로젝트구요.

제가 조금 코드를 바꿔서 정책 파일 요청시 Socket Client의 IP를 화면에서 알 수 있도록
하였습니다.

PolicyConnection.cs

public PolicyConnection(Socket client, byte[] policy)
{
    _connection = client;
    _policy = policy;

    _buffer = new byte[_policyRequestString.Length];
    _received = 0;

    try
    {
 // receive the request from the client
 //_connection.BeginReceive(_buffer, 0, _policyRequestString.Length, SocketFlags.None,
 //    new AsyncCallback(OnReceive), null);

 _connection.BeginReceive(_buffer, 0, _policyRequestString.Length, SocketFlags.None,
       new AsyncCallback(OnReceive), client.RemoteEndPoint.ToString());
    }
    catch (SocketException)
    {
 _connection.Close();
    }
}

...

private void OnReceive(IAsyncResult res)
{
    try
    {
 _received += _connection.EndReceive(res);

 // if we haven't gotten enough for a full request yet, receive again
 if (_received < _policyRequestString.Length)
 {
     _connection.BeginReceive(_buffer, _received, _policyRequestString.Length - _received,
  SocketFlags.None, new AsyncCallback(OnReceive), null);
     return;
 }

 // make sure the request is valid
 string request = System.Text.Encoding.UTF8.GetString(_buffer, 0, _received);
 if (StringComparer.InvariantCultureIgnoreCase.Compare(request, _policyRequestString) != 0)
 {
     _connection.Close();
     return;
 }

 // send the policy
 Console.Write(string.Format("Sending policy to {0}\n", res.AsyncState));
 _connection.BeginSend(_policy, 0, _policy.Length, SocketFlags.None,
     new AsyncCallback(OnSend), null);
    }
    catch (SocketException)
    {
 _connection.Close();
    }
}


미리보기


사용자 삽입 이미지


주의사항

컴파일 전에 Program.cs의 한부분을 수정하셔야 합니다.
색깔 있는 부분을 실제 clientaccesspolicy.xml 파일이 위치한 곳의 경로로 변경하셔야 합니다.

Program.cs

static void Main(string[] args)
{
    Console.Write("Starting...\n");
    PolicyServer ps =
 new PolicyServer(@"D:\clientaccesspolicy.xml");
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);

}

감사합니다.


보너스

Beta1 시절 포스팅 되었던 스캇구 형님의 소켓 예제를 오늘 다시 한 번 찾아보니!
Beta2 버전으로 포팅이 되었습니다. 여기에도 Policy Server를 포함하고 있습니다.
한 번 훑어 보시면 도움이 되실 거라고 생각합니다.

Pushing Data to a Silverlight Client with Sockets: Part I
Pushing Data to a Silverlight Client with Sockets: Part II

Part I에서는 Socket Server를 Part II에서는 Socket Client를 설명하고 있습니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : 943포트, clientaccesspolicy.xml, Silverlight, socket, 소켓, 실버라이트, 정책파일

코멘트를 남겨 주세요. (Write your message and submit)

[Remake] MediaElement 동시사용의 한계는 123개다.

Posted 2008/07/01 16:07 by 길버트
이전 포스트를 Silverlight 2 Beta 2 버전으로 포팅하였습니다.


리듬잇 같은 BMS류의 게임을 Silverlight로 제작하다가 발견한 문제입니다.
예를 들어 어떤 곡에서 270여 개의 음원을 사용하는 이유로,
이 음원에 대한 MediaElement를 미리 270개 생성해 놓고 사용하고자 하였습니다.
그 곡을 재생시켜보자 군데군데 연주되지 않는 음이 발견되었습니다.

왜그런가 테스트를 해보다가 123번째 MediaElement 이후에 생성된
MediaElement들은 Play() 메서드가 제대로 작동하지 않는 것을
발견하였습니다.

시뮬레이션

다음은 직접 문제를 체험해 볼 수 있는 샘플입니다.
스피커를 켜고 테스트를 해 보십시오.



소스

아래 링크를 클릭하여 다운 받으십시오.


실험의 결론

Silverlight 2 Beta1에서는 123개 이하의 MediaElement만 만들어 사용해야 합니다.
123개 이상의 MediaElement가 필요한 경우에는 이미 생성해 놓은 MediaElement를
Source만 변경하여 재활용해야 합니다.

예를들어 한 Silverlight Page 내에 123개를 초과하는 동영상, 음악이 존재하는 경우에는
초과분에 해당하는 미디어는 재생을 시킬 수 없습니다.

다른 테스트를 통해 다음과 같은 사실도 추가적으로 알 수 있었습니다.

1) XAML에 <MediaElement ...> 형태로 추가를 해도 124번째부터는 작동을 안 합니다.
2) MediaElement마다 서로 다른 Source를 입력해 주어도 결과는 같습니다.

원인이 무엇인지 궁금합니다.
원인에 따라 차후에 발표되는 Beta2나 정식 릴리즈에서
개선될 수도 있고, 개선되지 않을 수도 있겠네요.

포럼 피드백

실버라이트 포럼에도 같은 글을 게시해 놓고 피드백을 기다리고 있습니다.
http://silverlight.net/forums/t/11735.aspx
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : MediaElement, Silverlight, 개수제한, 실버라이트

코멘트를 남겨 주세요. (Write your message and submit)

Remix Korea 2008 - 피그맵 시연 동영상

Posted 2008/07/01 14:24 by 길버트
며칠 전, 기다리던 Remix Korea 2008의 동영상이 공식사이트에 업데이트 되었습니다.
http://visitmix.co.kr

그 중 피그맵 부분만 편집해 보았습니다.

중간 중간 시연이 원활하지 못한 부분이 있지만, 꾸욱 참고 봐주세요~ ^^



감사합니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : Hugeflow, Pigmap, RemixKorea, Silverlight, 리믹스코리아, 실버라이트, 피그맵, 휴즈플로우

코멘트를 남겨 주세요. (Write your message and submit)

Microsoft MVP Offline 모임 (06/30)

Posted 2008/07/01 12:23 by 길버트

MVP Lead이신 최재호 차장님께서 김밥과 생과일 음료를 준비해 놓으셨습니다.
사람 별로 안오는 것 같다고 최재호 차장님께서 두줄 씩 먹으라고 해서,
공도씨랑 김밥 3줄 먹었습니다. (참치, 모듬, 멸추)
멸추 김밥은 처음 먹어봤는데요. 멸치+고추장이었습니다. 매콤하더군요.

근데 왠걸 느즈막히 MVP님들 엄청오셔서 김밥이 모자랐습니다.
제가 가 본 (몇 번 가보지 않았으면서도...) MVP 모임 중 최다 출석이었던 것 같네요.

헤어스타일에 변화를 준 공도씨. 어울리죠?

시원하게 입은 동진씨!

7월 1일자로 Microsoft MVP가 되는 이과장님(오른쪽)과 짱묜(왼쪽)씨 오셨네요.
다시 한번 축하드립니다. 짝!짝!짝!

이날은 변경된 MVP 심사 과정에 대한 설명을 듣고 질의응답 시간을 가졌습니다.
내년에 Re-award 하려면 들어둬야겠죠?

PIO (Product Improvement Opportunity)에 대한 MVP의 지원자 수가 한국이 세계 1위를 했답니다.
그래서 본사로부터 칭찬 받으셨다고 좋아하시는 최재호 차장님.
프랑스가 2위를 했는데, 지원자 수가 한국의 반 정도 되었다네요.

한편, IE 8 관련 RoundTable이 7월 7일로 연기가 되었다고 하구요.
최재호 차장님 9월에 장가 가신다고 하네요! (축하드립니다.)

이날 끝나고 MVP분들 영화 보러들 가셨는데 (영화표는 마이크로소프트에서 제공),
저는 시간이 없어서 못 따라나섰네요. 강철중이나 쿵푸팬더 보신다던데, 재미있으셨죠?

Tag : IE8 Round Table, Microsoft, MVP, PIO, 오프라인

  1. BlogIcon 짱묜

    아..-_-저는 왜 날이갈수록 초췌해지는건가요? ㅋㅋ 점점 단정해진다고 생각했었는데 ㅋㅋㅋ
    암튼 올만에 봐서 반가웠어요~!

    | 2008/07/01 12:30 | PERMALINK | EDIT | REPLY |
  2. BlogIcon 길버트

    네. 반가웠습니다.
    회사에서 일이 많으신가요?

    | 2008/07/01 20:47 | PERMALINK | EDIT |
  3. 땡초

    옆에 룸에 계셨나보네요~~
    전 프라미스에 있었는데^^;

    | 2008/07/01 12:42 | PERMALINK | EDIT | REPLY |
  4. BlogIcon 길버트

    그랬나보네요.
    Realizing 룸이었습니다.

    | 2008/07/01 20:48 | PERMALINK | EDIT |
  5. BlogIcon 패러다임

    전 가겠다고 약속까지 해 놓고 가지를 못했습니다. -_-''

    좋은 시간이었다는 생각이 팍팍.. 아..

    짱묜님 이과장님 다시 한번 축하~~ ^^

    정말 반가운 얼굴, 동진님도 있네요. ^^

    | 2008/07/01 14:11 | PERMALINK | EDIT | REPLY |
  6. BlogIcon 길버트

    너무 안타까워하실 필요없으셔요.
    저 있는 동안 그리 좋은 시간은 아니었습니다.

    | 2008/07/01 20:48 | PERMALINK | EDIT |
  7. BlogIcon 이과장

    저는 갈수록 살이 찌는군요 -_-;;;

    | 2008/07/01 18:29 | PERMALINK | EDIT | REPLY |
  8. BlogIcon 길버트

    형수님께서 엄청 잘 해주시는 것 같아요.
    살짝 부럽네요!

    | 2008/07/01 20:49 | PERMALINK | EDIT |
  9. BlogIcon 태디

    헉 난 어디갔지 ㅡㅡ;
    밖에 나갔을때인가 보네요.. ㅋㅋ

    사진 잘 나왔습니다.

    | 2008/07/02 02:13 | PERMALINK | EDIT | REPLY |
  10. BlogIcon 길버트

    네 그랬나봐요. ^^

    | 2008/07/03 09:28 | PERMALINK | EDIT |
코멘트를 남겨 주세요. (Write your message and submit)

MSDN Premium Subscription + VSTS 2008

Posted 2008/07/01 12:02 by 길버트

얼마전 마이크로소프트의 깜짝선물 for MVP란 포스트로 궁금증을 유발했던 선물을 공개합니다.

봉투 안을 열어보면, 까만 카드가 나옵니다.

뒷면은 내용을 읽어보실 수 있게 딥줌 데이터를 제공해 드리는 센스!!
아무튼 3개씩 보내준 것은 감동이었습니다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : DeepZoom, msdn, MVP, MVP의 혜택, Premium, VSTS, 딥줌

코멘트를 남겨 주세요. (Write your message and submit)

Developer's Sweat (개발자의 땀)

Posted 2008/06/29 08:39 by 길버트
현실

사용자 삽입 이미지
하루 종일 앉아서 일한다.
그래도 맛있는 것 먹는 것은 좋다!

올라가는 코딩실력에 비례해 늘어나는 허리둘레를,
방관하며 체념하고 있을 수만은 없다.
 
잘 나지 않는 짬이지만, 짬이 나면
모 피트니스 클럽에서 바닥에 쓰러질 듯 운동하며,
온 몸의 땀으로 운동복을 적신다.


상상 (미래 혹은 불가능한...)

힘을 빼면 두 손을 허공에 들고 있게 만드는 Put your hands up!
하이텐션(고장력) 고무줄이 천장과 손목을 잇는다!

간신히 두 손을 책상에 내려 놓으면...


드래그 몇 번 하면 근육이 터질 듯 펌핑되는,
10kg에 달하는 고중량 마우스!

손끝에 기를 모으고 체중을 실어서 치지 않으면,
인식조차 되지 않는 고압력 키보드!

마지막으로는 발 밑에는 컴퓨터에 동력을 공급하기 위한 미싱페달!

거친 숨소리와 땀냄새가 진동하는 개발실...

한다하는 Geek들은 송승헌이 울고 갈 몸매를 가졌을테지... :)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : Geek, 운동

  1. BlogIcon Joyh

    모든 사무직 노동자에게 다 필요한 환경 같습니다..

    근데 오른팔 근육만 이상발달하여 불필요한 오해를 사게될것 같다능... :$

    | 2008/06/29 10:15 | PERMALINK | EDIT | REPLY |
  2. BlogIcon 길버트

    그럼 마우스는 가볍게 만드는 것으로 극적타결!

    | 2008/06/29 12:41 | PERMALINK | EDIT |
  3. BlogIcon 준서아빠

    왼쪽팔용 마우스로 변신 가능하게 하시면... ㅎㅎㅎ

    | 2008/06/30 20:46 | PERMALINK | EDIT |
  4. BlogIcon 태디

    휴즈플로우이하 길버트님, 박스마일님, 공도님을 보고 있으면...
    항상 해야겠다는 욕구가 생깁니다.

    그래서 마음이 흐트러지면 여길 들어와요^^

    | 2008/06/30 17:52 | PERMALINK | EDIT | REPLY |
  5. BlogIcon 길버트

    자주 흐트러져야 자주 뵙겠네요?
    농담입니다.
    도움되신다니 영광이예요!

    | 2008/07/01 09:12 | PERMALINK | EDIT |
  6. BlogIcon 준서아빠

    아... 느무 웃겨서... ㅋㅋㅋ

    | 2008/06/30 20:46 | PERMALINK | EDIT | REPLY |
  7. BlogIcon 길버트

    네~:)

    | 2008/07/01 09:13 | PERMALINK | EDIT |
코멘트를 남겨 주세요. (Write your message and submit)

DAUM dev.day 작업물 스샷

Posted 2008/06/28 04:22 by 길버트
어제 저녁 7시 30분~오늘 아침 6시 30분까지 진행되었던,
DAUM DevDay 행사에 참석했습니다.

DAUM API를 활용하도록 구상한 프로젝트를 저녁 9시 30분부터,
이튿날 새벽 4시 30분까지 마쳐야 합니다.

팀은 미리 구성되어 신청하거나, 현장에서 자유롭게 구성할 수 있었습니다.
물론 팀없이 혼자하는 분들도 많이 계셨습니다. 저도 마찬가지였구요.

저는 그냥 단순하게 DAUM 이미지 검색결과 만을 활용하여,
검색결과를 실버라이트로 보여주는 간단한 어플리케이션을 작성해서 발표하였습니다.

사용자 삽입 이미지
이미지 검색만을 사용하는데도 DAUM API의 많은 제약사항에 부딪혀야 했습니다.