오늘 회사에서 이래저래 팀의 앞날이 또 바뀌는 격변의 날이 되었습니다. 따라서 언제나 이런 날에 그랬듯이 팀원들과 저녁을 먹으면서 우리의 앞날에 대해서 심도깊은 이야기를 나누었습니다... 저녁을 먹은 곳은 대치동에 있는 마담밍(위치 태그 참고하세요)...


얼큰한 것도 먹고 싶고, 짜장면도 먹고 싶고... 그래서 짬짜면을 먹고 싶었는데 메뉴판에 짬짜면이 없는 것이었습니다... 볶짜면이 메뉴판에 있는것으로 보아 짬짜면도 있을줄 알았는데 아무리 찾아도 없는 것이었습니다... 그래서 같이 간 동료에게 물었죠...


왜 볶짜면은 있는데 짬짜면은 없지???


그랬더니 마담밍에서는 짬짜면이 라짜면이라고 하더군요...



이것이 라짜면입니다...


오늘은 제가 팀 중견 멤버로 팀의 친목 도모를 위해서 제가 저녁을 쐈습니다... 모처럼 팀원들끼리 밥을 먹으러 왔는데 그냥 식사만 하기는 뭔가 아쉽고, 최근에도 어떤 벌칙으로 회사 동료들에게 탕수육을 쏜지라 요리를 또 쏘기는 좀 힘들고 해서 대신 군만두를 사줬습니다. 그런데 특이하게 마담밍에서는 군만두를 1개 단위로 1,000원에 팔더군요... 속으로 참 별난곳이구나 생각했죠... 다들 제가 쏘는것을 의식했는지 만두 하나씩만 먹겠다고 했습니다... 저도 요새 비교적 소식을 하는 편이라 저도 하나만 먹기로 했습니다. 그래서 4개만 시켰죠... 그랬더니 애기 주먹만한 군만두가 4개가 나왔습니다...


 

사진에 군만두가 3개 밖에 없는 이유는 제가 이미 하나를 먹어서... 사진상으로는 근접 촬영해서 별로 크게 안보이는데 정말 거짓말 안하고 애기 주먹만한 크기였습니다. 레퍼런스로 옆에 500원짜리 동전을 놓고 찍을까 했는데 위생상 안좋은것 같아서 그냥 찍었습니다...


식사를 다 하고 계산을 하면서 종업원 이모께(요새는 아줌마, 아주머니라고 하면 큰일난다고 하더라고요) 왜 다른곳에서는 짬짜면이라고 하는데 여기는 라짜면이라고 하는지 여쭤봤습니다. 그랬더니 '라'가 중국어로 맵다는 뜻을 가지고 있다고 하더군요... 라조기에서 '라'도 맵다는 뜻의 '라'라고 합니다.


그래서 집에 와서 조사에 나섰습니다... 그 결과...

어떤 분께서 어디서 퍼온 글이라고 하면서 블로그에 올리신 글을 찾았습니다. 어디서 퍼왔는지 출처를 밝히지 않으셔서 글의 원작자가 누군지는 모르겠습니다. 그 블로그 포스트의 내용을 살펴보면 중꿔(中國)에서 고추를 라조(辣椒)라고 한답니다. 라(辣)가 맵다는 뜻을 가지고 있고, 우리가 대게 알고 있는 매울 신(辛)은 맵다라는 뜻도 있지만 사실은 고생스럽고 괴롭다라는 뜻으로 더 많이 쓰인다고 합니다.


 [] 

 (매울 

    1. 1.

      [형용사] 맵다. 아리다. 얼얼하다.

    2. 2.

      [형용사] 지독하다. 혹독하다. 악랄하다. 독살스럽다. 잔인하다.

    3. 3.

      [동사] 매운 맛이 (감각 기관을) 자극하다. ≒[(xīn)]

      http://cndic.naver.com/zh/entry?entryID=c_3ff4bae2ab7a

 [xīn] 
    1. 1.

      [형용사] 맵다.

    2. 2.

      [형용사] 괴롭다. 고생스럽다. 힘들다.

    3. 3.

      [형용사] 마음이 아프다. 몹시 슬프다. 상심하다.

      http://cndic.naver.com/zh/entry?entryID=c_33f7bfe7a575

- 네이버 중국어 사전 -        


그냥 그렇다고요...


P. S. 아... 그리고 만나자고 하려고 한듯한 후배가 오늘 야근하냐고 물어봐서 그냥 그렇다고 했는데 사실은 야근이 아니었어... 미안해...




Posted by Dansoonie
제가 다니는 회사에는 MMC라는 사내 조직이 있습니다. 바로 맥모닝 클럽(McMorning Club)이라는 조직인데, 이 조직에 가입한 회원은 매일 저녁에 가위 바위 보를 해서 1등을 정한 후에, 1등이 정한 다트 점수를 매기는 규칙(3발 던져서 높은 점수 또는 한발 던져서 높은 점수 이런 식으로)에 따라 가위 바위 보에서 꼴지를 한 사람부터 역순으로 1등까지 던져서 점수를 매깁니다.  1등이 정한 점수 매기는 기준에 따라서 다트 던지기에서 꼴지를 한 사람이 그 다음날에 맥도날드에서 맥모닝 메뉴중에 가장 알차고 맛있는 숴시지(소시지) 에그 맥머핀 세트(해쉬 브라운과 음료)를 회원수 만큼 출근할때 배달해 옵니다. 그리고 1주일에 두번은 배달 뿐만 아니라 사주는 부담까지 떠안게 됩니다. 그래서 우리는 흔히 꼴지를 하는 사람을 맥모닝 셔틀이라고 부르기도 합니다...

이것이 우리 회사의 MMC 조직입니다. 별일이 없으면 거의 매일 아침 맥도날드의 숴시지(소시지) 에그 맥머핀을 먹는데, 그동안 습득한 맛있게 먹는 노하우를 알려드리고자 합니다.

바로 핫소스를 뿌려 먹는 것입니다...

 
뿌려먹는 방법도 진화했습니다... 처음에는 한입 한입 먹을때 마다 조금씩 뿌려서 먹었습니다... 하지만 MMC 회원이 한때는 6~7명이던 시절이 있었는데, 6~7명이나 되는 사람들이 한입 먹을때 마다 병이 사라지니 경쟁이 너무나 치열했습니다. 그러다가 누군가가 갑자기 새로운 방법을 시도했습니다...

 
바로 저렇게 먹기 전에 맨 아래쪽 빵을 분리해서 계란에 핫소스를 뿌려먹는 방법이었습니다... 하지만 계란에 뿌리다보니 핫소스가 흘러내리기 일쑤였죠... 물론 빵에 흡수되어 어느정도 흘러내림이 방지 되기도 했지만, 원래 빵과 계란이 정확하게 맞물려있는 경우는 드물고 보시다시피 빵에 곰보가 나있어서 계란의 표면과 빵의 표면이 전체가 잘 맞닿지 않습니다. 그래서 다 먹고 나면 포장지에 핫소스가 흥건하게 고이기도 했습니다...

 그래서 수정된 방법이 바로 빵에 핫소스를 뿌리는 방법입니다!!!

 
저렇게 빵에 핫소스를 뿌리면 소스가 빵에 흡수되어 잘 흘러내리지도 않고, 양도 조절할 수 있습니다. 약간 맵게 먹고 싶으면 흥건하게 적시고, 그냥 핫소스 향만 나게 하고 싶으면 살짝 뿌려주면 됩니다...

그리고 빵을 다시 계란 위에 합체 시키고 먹으면 핫소스도 흘러내리지 않고 좋습니다...

 
다만 문제가 있다면 먹을때 입가에 핫소스가 묻게 된다는 것입니다. 큰 문제는 아닙니다만 겨울에 건조함 때문에 입술이 터서 특히 입가에 터서 상처가 있다면 알보칠을 혓바늘에 발랐을때와 맞먹는 고통이 따르게 됩니다...

작년 겨울에 미국에 가서 3가지 종류의 핫소스를 사와서 시도해본 결과 Chipotle 맛이 가장 좋았고, 그 다음으로 오리지널, 그리고 Green Jalapeno Pepper 맛이 제일 안어울렸습니다. Tabasco 핫소스의 맛은 더 다양하게 존재하지만 미국에서 가장 흔히 구할 수 있는 3가지 맛만 구입해서 시도했습니다.

안타까운 점은 일단 맥도날드에는 핫소스가 없다는것(머스터드도 없는 판에 핫소스가 있을리는 더더욱 없죠)이고, 그나마 우리나라에서 Tabasco(타바스코) 핫소스를 오뚜기에서 수입하기 때문에 예전보다 비교적 쉽게 구입할 수는 있게 되었지만, Chipotle 맛은 수입하지 않는다는 것입니다. 오뚜기(오뚜기 사이트에 접속하려고 하면 말웨어 경고가 뜨고 어떻게든 들어가도 IE가 아니면 사이트가 제대로 동작하지 않아 굳이 링크를 달지는 않겠습니다)에서 수입하는 타바스코 소스는 갈릭(마늘)맛이랑 오리지널 뿐입니다. 마늘맛도 잘 어울릴듯 하지만, 아직 파는 곳을 발견하지 못했습니다. 언제 한번 온라인으로 주문해서 시도해봐야겠습니다.

꼭 타바스코 핫소스를 추천해 드립니다. 기타 유사 상표, 또는 미스터 피자 먹을때 주는 이상한 핫소스로 제가 알려드린 방법을 시도해 보고 맛이 없다고 하지 마시고 꼭 타바스코표 핫소스를 뿌려드시기 바랍니다~ 
Posted by Dansoonie
저는 내일 샌프랜시스코로 떠납니다. 여행도 여행이지만, 안드로이드 개발자 컨퍼런스인 AndevCon에 참석하기 위해서 입니다. 전 세계 각국에서 많은 안드로이드 개발자들이 모이는 자리인지라 저는 우리 회사에서 제가 속한 팀에서 만들고 있는 안드로이드용 3D GUI Framework인 티파니(Tiffany)와 그 것을 사용해 만든 레지나 3D 런처(Regina 3D Launcher)를 홍보해서 해외 시장을 뚫어봐야겠다는 생각이 들었습니다. 아무리 봐도 국내 시장은 너무 좁고 다단계 용역 형태의 IT 산업 구조는 효율적으로 수익을 창출하기는 힘들다는 생각이 들어서 이번 기회를 아주 잘 살려봐야겠다는 생각이 들었습니다...

티파니는 아직 국내에서 이바닥(IT 업계) 사람들에게만 조금 알려져 있지만 레지나 3D 런처는 안드로이드 마켓에 출시 한지 6개월만에 전 세계에서 90만이 넘는 다운로드 수를 기록하고 있어서 안드로이드 앱에 관심 많은 사람들은 알 수도 있겠다 싶었습니다. 특히 안드로이드 개발자들이라면 적어도 한번쯤 레지나 3D 런처에 대해서 들어봤을 사람이 몇몇 있을 것입니다. 그러길 바랍니다...

그래서 저는 이번에 컨퍼런스 행사장에서 제 자신이 레지나 3D 런처의 개발자임을 공개적으로 보여주면서 우리 런처와 티파니를 홍보하기로 했습니다. 그래서 택한 방법이 옷을 직접 디자인해서 만들어 입는 것이었습니다.

제가 다니는 회사의 이름은 NemusTech(네무스텍)입니다. Nemus는 라틴어로 숲이라는 뜻을 가지고 있습니다. 그래서 저는 우리회사 이름과 맞는 연두색 후드티와 유색옷에 프린터로 프린트한 종이를 옮겨붙일 수 있는 전사지를 11번가에서 구입했습니다. 

http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&xfrom=search^prd&prdNo=199183544

http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&xfrom=search%5Eprd&prdNo=14456342

예전에 흰색 옷에 제가 직접 디자인한 그림을 프린터로 전사지에 출력해서 다리미로 옮겨붙인 경험이 있어서 그렇게 어려운 작업이 아닐것이라고 생각했지만 오산이었습니다... 사실 어려운 작업은 아니지만, 제가 뭔가 방법을 잘 못 알고 있었고, 프린터가 말썽을 부렸습니다. 유색옷 전사지로 옷 디자인 작업할때 무엇을 조심해야 하는지 말씀드리겠습니다. 굵은 글씨 참고하세요.


일단 유색옷에 사용하는 전사지는 흰색 옷에 사용하는 전사지와 방식이 약간 다릅니다. 흰색 옷에 사용하는 전사지는 수평방향을 거꾸로 출력해야 합니다... 왜냐면 전사지를 옷에 맞붙여 다림질을 하면 종이에 인쇄된 내용이 옷에 옮겨지는 방식이기 때문입니다.

하지만 유색옷에 사용하는 전사지는 종이에 출력한 것을 스티커 처럼 옷에 붙여서 그것을 붙이는 것입니다. 따라서 출력할때 수평방향을 거꾸로 하지 않아도 됩니다...

하지만 저는 이 사실을 모르고 처음 몇번을 예전에 흰색 옷에 작업했던 방법대로 작업을 했다가 전사지 낭비하고, 시간도 낭비했습니다. 전사지를 구입한 11번가 판매자 페이지에 가서 설명을 잘 읽어보고 나서야 그 차이점을 알고 제대로된 작업을 할 수 있었습니다...


그리고 전사지가 매끈매끈해서 프린터에 잘 안말려 들어갑니다... 또 뭐가 문제인지 모르겠는데, 제 프린터와 같은 경우는 종이를 포토용지로 설정해 주지 않으면 종이가 말려들어가다 만 상태에서 인쇄가 계속 진행되어 잉크를 허공에다가 뿌려댑니다. 처음에 맥에서 작업을 해서 혹시 프린터 드라이버 문제인가 싶어서 리눅스에서도 해보고 윈도우즈에서도 해봤는데 마찬가지더라고요... 참고로 제 프린터는 HP Deskjet F2180 복합기입니다. 혹시 모르니 여러분도 출력할때 포토용지로 설정하고 출력하는 것을 잊지 마시기 바랍니다. 그리고 최고의 인쇄 품질을 위해서 인쇄품질을 최상으로 할 것을 권합니다.

그리고 포토용지로 프린터의 용지를 설정해도 잘 안말려들어가기는 마찬가지입니다. 그리고 이전에 말했지만 유색옷 전사지는 스티커와 같은데, 말려들어가다가 옷에 전사되어 붙는 스티커에 해당하는 전사되는 면이 구겨지거나 찢어집니다. 이런 현상을 방지하려면 종이가 말려들어가는 쪽을 말려들어가는 방향으로 둥글게 약간 말아주시면 됩니다.


다행히 저는 전사용지를 넉넉히 구입했고, 집에 여분의 프린터 잉크 카트리지가 있어서 많은 삽질을 하면서 위에서 언급한 노하우들을 터득했습니다. 하지만 밤을 꼴딱 샜습니다. 퇴근하고 밥먹고 집에 들어와서 바로 만들기 시작해서 디자인은 11시쯤 끝났는데, 옷을 완성하기 까지는 9시간이 걸려 출근 시간이 다 되어서야 겨우겨우 완성했습니다...


 
앞쪽에는 레지나 3D 런처 로고와함께 티파니로 만들었음을 알리고, 뒤에는 레지나 3D 런처 데모 동영상으로의 링크, 그리고 마켓으로의 링크가 담긴 QRcode를 넣었습니다. 종이 크기의 한계 때문에 앞쪽은 좀 초라해 보이지만, 전사지에 출력하게 하는데 너무 많은 고생을 해서 그러지 그냥 그런대로 만족스럽습니다...

저는 이렇게 밤새 작업을 하고 그 다음날 퇴근하고 사촌형을 잠깐 만나 미국에 있는 사촌누나에게 전해줄 물건을 전해 받고 집에와서 완전 뻗어서 잤습니다... 술을 못마셔서 필름 끊긴적 까지 마셔본적도 없는데, 술도 안마시고 어떻게 잠들었는지 기억이 안날 정도로 피곤했습니다... 게다가 자다가 일어나보니 안경을 깔고 자고 있었고... 안경은 이지경까지 되었습니다...

 
다행이 테는 다리가 분리되는 고급 타이테니움(티타늄)  소재라 무사했습니다~ 테가 너무 비싸서 알은 최고급을 못해서 마침 알이 무거웠는데, 내년에 더 가벼운 일제 렌즈로 교체해야겠습니다... 제 코 주저앉는중...

이제 내일 샌프랜시스코 가서 컨퍼런스장에서 저 옷 입고 다닐일만 남았네요... 사람들이 저보고 혹시 레지나 3D 런처 만든 개발자냐고 물어보녀서 아는척 하고, 제 뒤에 와서 QRcode 찍어가고 제게 Tiffany와 Regina에 대해서 물어봤으면 좋겠습니다... 
Posted by Dansoonie
이전 포스트(2011/09/28 - 페이스북과 트위터 이메일 알림설정 해제하기)에서 페이스북에서 날라오는 수많은 알림(notificaiton) 이메일을 안오도록 하는 방법에 대해 글을 썼습니다. 하지만 그렇게 설정을 해도 이메일이 조금씩 오더군요... 무슨 이유에서인지 몰라서 페이스북에 문의 메일을 보냈는데, 메일을 보내자마자 알아버렸습니다.

음...   

페이스북 알림 이메일 설정을 다 풀었는데도 계속 오는 메일은 사실 알림 이메일이랑 별개의 메일입니다. 그럼 알림 이메일 설정을 모두 해제 했는데도 날아오는 이메일을 하나 살펴보도록 하겠습니다.

 
위의 그림은 그런 메일 중에 하나입니다. 

제가 1번으로 표시한 부분을 보시면 "You're subscribed to this mailing list. Unsubscribe" 라고 되어있고, Unsubscribe는 링크로 되어있습니다. 한글로 번역을 하면, 아마 "당신은 이 메일링 리스트를 구독중입니다, 구독 취소하기" 쯤으로 되어있을것 같습니다. 어쟀든, 이 내용으로 보아 페이스북의 그룹 페이지는 메일링리스트가 따로 존재하고 관리되어 알림 이메일과는 별개로 그룹에 글이 올라오면 이메일들이 오는것 같습니다.

Unsubscribe 링크를 통해서 메일링 리스트에서 자신을 삭제할수도 있을것 같지만 위의 그림에서 제가 2라고 표시한 부분을 통해서 설정을 바꾸는 것이 확실할것 같습니다. 2라고 표시한 부분의 링크를 누르시면 새 브라우져창이 뜨면서 해당 그룹의 페이스북 페이지가 뜨고 아래와 같은 팝업이 페이지 내에 뜹니다.

 
1이라고 표시된 부분에는 그룹에 올라오는 어떤 형태의 글에 알림을 받을지 설정합니다. 여기까지는 알림이 메일로 오는것과는 상관 없습니다. 이 알림은 웹이나 스마트폰 앱으로 페이스북에 뜨는 알림을 의미하는것 같습니다. 그러니까 순수하게 어떤 글에 대한 알림을 받기를 원하는지에 대한 설정으로 옵션으로는

 - A member post or comment
 - A member posts
 - A friend posts
 - Only posts I am following

이 있습니다. 그리고 그 다음에 2라고 표시된 부분이 실제로 알림이 메일로 오는것에 대한 설정을 하는 부분입니다. 이건 그룹에 따라서 따로 설정할 수 있는것 같습니다.

페이스북 참 좋은데 이런 부분은 기능이 이것저것 막 추가되면서 여러가지로 애매하군요... 앞으로도 계속 이메일이 온다면 또 어디서 오는지 찾아서 포스팅하겠습니다...
Posted by Dansoonie
어제 퇴근 후에 hotmail 계정으로 온 메일을 확인할 것이 있어서 오랜만에 hotmail에 접속해서 이메일을 확인했습니다. 그런데 깜짝놀라 자빠질뻔했습니다... 무려 한두달 동안 안읽은 메일이 3000통이 넘게 있었습니다...

안되겠다 싶어서 메일함을 정리하고, 보지도 않는 뉴스레터와 같은 메일은 구독을 해지하기로 했습니다. 하지만 3000통이 넘는 그 수많은 이메일 중에서 대다수는 FacebookTwtitter에서 온 메일이었습니다. 제가 멘션되었거나, 제가 단 글에 댓글이 달렸을때 오는 notification email들...

그래서 예전부터 해야겠다고 생각하고 마음먹고 안하고 있었던 Facebook과 Twitter의 이메일 notification 설정을 해제하기로 했습니다. 그리고 모든 설정을 마친 후에 Facebook과 Twitter에 2시간이 넘는 시간동안 이메일 정리하고 Facebook & Twitter email notification 설정을 바꿨음을 온상에 선포했습니다. 마침 후배가 그거 어떻게 하는 것이냐고 물어보길래, 어려운건 아니지만 그냥 요새 블로그 쓸 일도 없고 너무 장기간 동안 글 쓰는 것에 소홀이 해왔던 터라 이 주제를 가지고서라도 글을 써보기로 했습니다...


먼저 Facebook 설정하기 입니다.
 
1. 당연히 Facebook 로그인은 기본입니다...
 
2. 우측 상단에 보면, Home이라는 메뉴 옆에 역삼각형 모양의 버튼이 있습니다(1). 그 버튼을 누르면 메뉴가 뜹니다. 그러면 Account Settings를 선택해 주세요(2). Account Settings는 Facebook을 한글로 보시는 분들은 "계정설정" 정도로 나오지 않을까 싶네요...  

 3. 그러면 아래의 화면으로 이동하는데, 이 화면에서 왼쪽에 있는 메뉴들 중에서 Notifications을 선택해 주세요. 이건 "알림" 정도로 한글로 번역 되어있지 않을까 싶네요...
 
 4. 그러면 이메일로 받을 notification (and vice versa)을 설정할 수 있는 창이 있습니다. 개별적인 항목을 선택하기 이전에 화면 우측 상단에 있는 설정(알림이 개별적으로 가기도 하지만 summary로 정리되서 보내지는 옵션)을 풀어줘야 합니다.

5. 그 다음에야 아래쪽에서 다양한 항복들의 세 항목을 개별적으로 설정할 수 있습니다. 취향에 맞게 설정을 해주시요(1). 그리고 다른 항목의 세부 항목에 대한 설정을 하고픈 경우에는 edit 을 누르시면 세부 항목들이 확장됩니다(2). Edit은 한글로 "수정"쯤으로 번역되어 있을듯 합니다.
 


그 다음에 Twitter의 설정하기 입니다.

1. 여기서도 마찬가지로 당연히 로그인은 기본입니다.

2. 우측 상단에 자신의 Twitter 프로필 사진과 계정 이름이 있는 곳을 클릭하시면(1) 또 메뉴가 확장되어 나옵니다. 여기서 Settings를 선택해 주세요(2). Twitter페이지를 한글로 보시는 분들은 Settings가 "설정"으로 번역 되어있을까요?

3. 그 다음에 취향에 맞게 설정을 해주세요. 저는 개인적으로 metion되는거나 DM 오는 것은 모두 클라이언트를 통해 보게 되므로, 클라이언트로 쉽게 알 수 없는 follower 추가 정보만 이메일 notification을 받기로 했습니다. 그리고 Twitter 서비스에 관한 정보는 어차피 많이 오지도 않기 때문에 허용을 해놨습니다.
 

이상입니다. 별것 아니지만 참고하시기 바랍니다. 
Posted by Dansoonie
추석 연휴동안 많이도 먹고 많이도 자서 어제밤에 운동해야겠다는 생각에 하루 미루어서 오늘부터 운동하기로 마음먹었습니다. 그래서 예전부터 OllehTV에서 봐놓고 해보리라 마음 먹었던 조혜련의 태보 다이어트 2를 해보기로 했습니다...

드래곤볼 만화에서 손오공이 계왕신으로 부터 훈련받을때의 이 장면을 연상하면서...


저는 운동의 효과를 극대화 하기 위해서 손목에다가는 모래 주머니까지 착용했습니다~


자 그리고 시작~

 

조혜련의 탄탄한 몸매를 보면서 나도 저렇게 되어야겠다는 생각에(왜 여자를 보고 그런 생각이 들었는지는 저도 잘 모르겠습니다), 열심히 초반부터 따라하고 있는데, 조혜련 아주머니께서 very encouraging한 말을 해주더군요!!!

 

매일 26분만 투자해서 따라하면 자기 처럼 될 수 있다는 그말...

그말만 믿고 열심히 해봐야겠다고 다시한번 다짐했습니다... 그리고는 열심히 따라했습니다...

조혜련의 태보 다이어트2는 다음과 같은 단계로 이루어져 있습니다...

1. 상체 기본운동
2. 하체 기본운동
3. 태보 I
4. 태보 II
5. 태보 III
6. 태보 I, II, III
7. 쿨다운
8. 태보댄스 데모영상???

어쨌든, 열심히 따라한다고 따라하기는 했는데, 참 어렵더군요... 워낙 박치에다가 몸치라서 동작을 따라하기도 힘들었고, 저는 개인적으로 트레이너의 뒷모습을 보면서 따라 하는 것이 왼쪽 오른쪽 헷갈리지 않는데 저렇게 계속 정면과 옆모습만 보여주니 계속  동작이 틀리더군요...

태보 II 부터는 발목이 아파왔습니다... 물론 제가 과체중이라 그렇기도 하지만... 아랫층에 울리지 않게 신경쓰다보니 발목에 무리가 갔다고 말하고 싶습니다... 태보 II 부터는 신체의 동작 반경이 넓어져서 동작이 아주 익숙해지기 전까지는 좁은 집에서는 따라하기 힘들겠다는 생각이 들었습니다...



어쨌든, 열심히 하다보니 발목도 아프고 위의 사진 처럼 땀도 많이 흘렸고 해서 그냥 화면에 나오는 동작에 상관 없이 계속 허공에 펀치만 날리면서 재빠른 짤막짤막한 스쿼트(태보의 기본동작이라고 해야 하나?)만 했습니다...

처음에는 매일 해야겠다고 마음 먹었는데... 해보니 내일은 허벅지가 매우 땡길것 같아서 좀 두렵네요... 어쨌든, 오늘은 운동 해서 만족~ 생각보다 운동량이 많으니 관심 있는 사람들은 해보시면 좋을것 같습니다...
 
Posted by Dansoonie
어느 문화권이든지 어느 시대에나 항상 레전드(전설)는 있습니다... 그 전설들은 먼 옛날 이야기인 경우도 있지만, 살아있는 전설이 존재하기도 합니다... 지금 우리 시대에도 수많은 전설들이 전해 내려오고 있지만, 그 전설 속의 주인공이 현재 살아있는 경우도 있죠... 오늘은 16년전에 살아있는 전설을 만난 이야기를 해볼까 합니다...

제 인생에 있어서 가장 열심히 공부했던 시절은 아마도 중학교때와 대학교 1, 2학년 때인것 같습니다. 약 16년전... 제가 중학생이던 시절에, 시험기간에는 새벽 3~4시까지 공부하고 학교에서 열심히 수업듣고 집에와서 2~3시간 낮잠을 자던 시절이 있었습니다. 매일 총 7시간 정도의 잠을 잤지만 무럭무럭 자라나는 청소년에게 있어서 7시간은 터무니 없이 부족한 수면 시간이죠. 그래서 저는 그 당시에 피로로 인해 입안에 혓바늘을 자주 달고 살았습니다. 그당시에 저는 혓바늘에는 오라메디가 최고의 약인줄 알았습니다...


오라메디는 연고를 혓바늘 부위에 살짝 발라주면 얇은 막이 생겨 고통을 덜어줍니다. 하지만 그 얇은 막은 견고하지 못해 자칫 약간의 격렬한 혓놀림이나 식사중에 음식물에 의해 닳고 닳아 몇시간 주기로 발라줘야 했었습니다. 그러던 어느날, 친했던 친구가 alternative를 제안해줬습니다...

그 약은 바로 현존하는 혓바늘 치료계의 살아있는 전설

 알보칠...


그렇게 저는 레전드를 만났습니다... 살아있는 레전드...

이 약은 혓바늘 부위에 바르면 그 부분을 무감각하게 만들고 경험상으로 미루어보아 혓바늘로 파괴된 세포조직을 괴사시켜 새로운 살을 순식간에 재생하도록 돕는듯한 효과를 가지고 있습니다. 하지만 모든 일에는 trade off가 있기 마련... 이 전설의 명약은 환부에 apply할 경우에 살이 타들어가는 고통을 가져다 주어 네티즌들 사이에서는 죽은 시체도 이 약을 바르면 다시 살아나레이크 댄스도 추게 한다는 약으로 소문나 있습니다...

그 이후로 저는 순간적인 고통을 참으며 혓바늘이 생길때 마다 잘 사용하고 있습니다...

이 약의 최대 장점은 환부를 무감각하게 만들어주기 때문에 혓바늘이 있는 상태에서도 감자칩이나 후라이드 치킨같이 음식의 표면이 까칠까칠하여 말짱한 입으로 섭취해도 간혹 상처가 생길 수 있는 음식들을 혓바늘이 있는 상태에서도 먹을 수 있게 해준다는 점입니다...

어제부터 혓바늘이 하나가 아주 고통스러운 자리에 생겼는데(아랫입술 정 가운데 잇몸과 연결되는 부분), 그곳에 알보칠을 잘 발라주고 있습니다...

하지만 그 위력이 16년전만 못한것 같습니다... 16년 전에는 환부에 이 약을 바르게 되면 나도 모르게 웨이브와 어딘가를 붙잡고 떨기 춤을 추곤 했는데, 이제는 그 고통이 참을만 하군요... 아마도 제약회사에서 원가 절감을 위해서 희석시켜 예전에 비해 낮은 농도로 약을 제조하는 것이 아닌가 의심을 해보지만 사실무근... 그냥 지난 16간의 세월동안 여러가지 고통을 이겨내면서 내공이 쌓여서 그럴지도 모르겠고요... 

어쨌든... 이 약은 여전히 명약입니다... 이 약에 대한 더 자세한 정보는...
조금 더 신빙성 있는 정보를 원한다면 많은 정보는 아니지만 


16년 전에 저에게 알보칠을
소개시켜준 친구에게 고마움을 표하며...

 그리고 이 약을 개발한 독일 친구들에게 고마움을 표하며...
이 글을 마침... 
Posted by Dansoonie
제가 개발에 참여한 commercial software (yet free)가 제 인생 처음으로 public에 Android Market을 통해 공개되었습니다. Android용 Launcher로 기존에 나온 많은 launcher들과 다르게 3D 그래픽을 사용하여 사용자들에게 다양한 시각적 효과를 통해 재미를 줄 수 있는 launcher가 아닌가 감히 말하고 싶습니다. 이름하여 NemusTech, Tiffany 팀의 (아직 많이 부족하지만) 야심작... Regina 3D Launcher.

Regina 3D Launcher 는 제가 다니고 있는 회사에서 개발한 3D GUI Framework 인 Tiffany를 사용해서 만든 launcher입니다. 개발과정 처음부터 참여하여 launcher의 기본 구조 설계 작업과, 3D launcher를 만들기 위한 Tiffany를 개량하는 작업을 주로 맡아서 했기에 애착이 많이 가는 작품입니다.

그래서... Regina Launcher의 특징으로는... 
* 이미 말했듯이, 3D  그래픽을 사용하는 launcher이고.
* 그럼에도 불구하고 Android widget을 지원하고
* 3D 그래픽을 사용하나 재미난 시각적 효과들이 많이 있고
* Workspace 이동을 좀더 재미있고 편리하도록 하였고
* Workspace에 이름을 지정해 줄 수 있고
* Application을 shortcut이나 application list에서 직접 uninstall이 가능하고
* 다른 launcher들과는 다르게 shortcut이나 widget의 위치 설정이 매우 자유롭고
* 사생활 보호를 위한 secret workspace 라는 기능이 있으며
* 기본 launcher와 다르게 workspace 별로 wallpaper를 독립적으로 설정할 수 있습니다.

이것이 Regina 3D Launcher 사용하는 실제 데모영상입니다.


Regina 3D Launcher 개발한 Tiffany 팀 팀원과 디자인에 도움을 준 디자인 팀 모두 능동적으로 참여했기에 기대 이상의 성과를 이룬것도 사실이지만, 개인적으로는 제가 가지고 있는 욕심을 채울 수 있을 정도로 부지런히 일하지 못한것 같아 아쉬움이 많이 남습니다. 개발에 도움을 주시고 테스트에 참여해주신 NemusTech 식구들 고생 많이 많았습니다... 이젠 사용자들의 심판을 받아야 할때...

관심 있으신 분들은 https://market.android.com/details?id=com.nemustech.regina에 가서 확인해 보시고 다운받아 사용해 보시기 바랍니다. 무료입니다~ 

바로 다운로드 받으시고 싶으신 분은 다음 QRcode를 스캔하시면 바로 마켓으로 안내해줍니다.

  
Posted by Dansoonie
My previous post was about unexpected behavior of Buffer's in Honeycomb which seemed like a bug. The bug I found was about float values in cloned read-only FloatBuffer being interpreted differently from the contents in the original FloatBuffer(2011/04/07 - Unexpected behavior of Buffers in Honeycomb(Android 3.0)). I submitted a bug report to Google and it was confirmed as a bug and now fixed internally for future IceCreamSandwich release.

Please refer to http://code.google.com/p/android/issues/detail?id=15994 for more information. My first successful bug report on a commercial product. Yay~

I thank all my colleagues at work who gave me this opportunity and helped me tackle this issue. 
Posted by Dansoonie
I am an android software developer. At work I am developing a 3D GUI framework called Tiffany. OpenGL is used at the core of Tiffany. Like any other OpenGL application, our product uses float type values to define the location(position) of the vertices that consist 3D objects. Therefore, FloatBuffers are used frequently.

Tiffany has been working great until now with all Android versions. However, I recently got a report that Tiffany behaves a bit weird on Honeycomb, that is Android 3.0 which is an Android version for tablet devices. I was able to track down the cause of the problem and found out what was going on with the help of Mr. Shin, whom we think of as a genius. The unexpected behavior was originating from ByteBuffer/FloatBuffer.

In a portion of our code there was something going on like the following.
ByteBuffer byteBuffer =
ByteBuffer.allocateDirect(n*4).order(ByteOrder.nativeOrder())
FloatBuffer buffer = byteBuffer.asFloatBuffer();

//...

//We put some float values in the buffer

//...

FloatBuffer copiedBuffer = buffer.asReadOnlyBuffer();

//...

//use the values in copiedBuffer

//... 


As I was debugging the code line by line, I found out that the values retrieved from copiedBuffer were interpreted incorrectly in Honeycomb. This was a very unexpected behavior as this was working perfectly on previous Android versions.

Here is what was happening. Buffers in Android has a property called Order. This property indicates whether the buffer uses big endian or little endian. In other words it defines how the bytes in the buffer will be interpreted. It turns out that this property is altered in the copied version of the buffer when using asReadOnlyBuffer(). And what is more interesting is that this problematic phenomenon is only spotted when the ByteOrder of the ByteBuffer is specified using the method order(ByteOrder byteOrder) from ByteBuffer.

Here is a simple example which illustrates this problem.

ByteBuffer byteBuffer0 =

ByteBuffer.allocateDirect(4).order(ByteOrder.nativeOrder());

FloatBuffer buffer0 = byteBuffer0.asFloatBuffer();

buffer0.put(0.1f);

FloatBuffer copiedBuffer0 = buffer0.asReadOnlyBuffer();

Log.d(TAG, "buffer0 endian: " + buffer0.order());

Log.d(TAG, "buffer0[0]: "  + buffer0.get(0));

Log.d(TAG, "copiedBuffer0 endian: " + copiedBuffer0.order());

Log.d(TAG, "copiedBuffer0[0]: " + copiedBuffer0.get(0));


ByteBuffer byteBuffer1 =

ByteBuffer.allocate(4).order(ByteOrder.nativeOrder());

FloatBuffer buffer1 = byteBuffer1.asFloatBuffer();

buffer1.put(0.1f);

FloatBuffer copiedBuffer1 = buffer1.asReadOnlyBuffer();

Log.d(TAG, "buffer1 endian: " + buffer1.order());

Log.d(TAG, "buffer1[0]: "  + buffer1.get(0));

Log.d(TAG, "copiedBuffer1 endian: " + copiedBuffer1.order());

Log.d(TAG, "copiedBuffer1[0]: " + copiedBuffer1.get(0));


FloatBuffer buffer2 = ByteBuffer.allocateDirect(4).asFloatBuffer();

buffer2.put(0.1f);

FloatBuffer copiedBuffer2 = buffer2.asReadOnlyBuffer();

Log.d(TAG, "buffer2 endian: " + buffer2.order());

Log.d(TAG, "buffer2[0]: "  + buffer2.get(0));

Log.d(TAG, "copiedBuffer2 endian: " + copiedBuffer2.order());

Log.d(TAG, "copiedBuffer2[0]: " + copiedBuffer2.get(0));


FloatBuffer buffer3 = ByteBuffer.allocate(4).asFloatBuffer();

buffer3.put(0.1f);

FloatBuffer copiedBuffer3 = buffer3.asReadOnlyBuffer();

Log.d(TAG, "buffer3 endian: " + buffer3.order());

Log.d(TAG, "buffer3[0]: "  + buffer3.get(0));

Log.d(TAG, "copiedBuffer3 endian: " + copiedBuffer3.order());

Log.d(TAG, "copiedBuffer3[0]: " + copiedBuffer3.get(0));


The result in Honeycomb(Android 3.0) AVD would look like the following.

buffer0 endian: LITTLE_ENDIAN

buffer0[0]: 0.1

copiedBuffer0 endian: BIG_ENDIAN

copiedBuffer0[0]: -4.2949213E8


buffer1 endian: LITTLE_ENDIAN

buffer1[0]: 0.1

copiedBuffer1 endian: BIG_ENDIAN

copiedBuffer1[0]: -4.2949213E8


buffer2 endian: BIG_ENDIAN

buffer2[0]: 0.1

copiedBuffer2 endian: BIG_ENDIAN

copiedBuffer2[0]: 0.1


buffer3 endian: BIG_ENDIAN

buffer3[0]: 0.1

copiedBuffer3 endian: BIG_ENDIAN

copiedBuffer3[0]: 0.1


The result in Android 2.X AVD would look like the following.

buffer0 endian: LITTLE_ENDIAN

buffer0[0]: 0.1

copiedBuffer0 endian: LITTLE_ENDIAN

copiedBuffer0[0]: 0.1


buffer1 endian: LITTLE_ENDIAN

buffer1[0]: 0.1

copiedBuffer1 endian: LITTLE_ENDIAN

copiedBuffer1[0]: 0.1


buffer2 endian: BIG_ENDIAN

buffer2[0]: 0.1

copiedBuffer2 endian: BIG_ENDIAN

copiedBuffer2[0]: 0.1


buffer3 endian: BIG_ENDIAN

buffer3[0]: 0.1

copiedBuffer3 endian: BIG_ENDIAN

copiedBuffer3[0]: 0.1

 
So, here is my conclusion. Dalvik uses big endian and Linux which is the operating system I am using at work uses little endian. As a result, ByteBuffers are created to use big endian by default. However, when the ByteOrder is specified to be little endian, the Order property isn't properly copied to the new Buffer in Honeycomb. I suspect that this is a bug in Honeycomb because Honeycomb is the only Android version working differently and also it doesn't logically make sense to use a different endian system to interpret a copied buffer from the original buffer. Moreover, the Order property not being properly copied seems much like a mistake since you cannot set the Order property for FloatBuffers.

I must admit that specifying the ByteOrder of the buffer is an unnecessary step, still Honeycomb's behavior of handling Buffers doesn't make much sense.
Posted by Dansoonie