Tuesday, February 17, 2009

IPerf for Windows Mobile 6.1(Special edition for Samsung T Omnia which has 480x800 resolution)

BTools has released for Samsung T*Omnia phone. Becuase Omnia has 480x800 screen size, BTools has to be adjusted to fit it's big size. This release is submitted as a contestant for Windows Mobile Contest held by SK & microsoft in korea. please see http://www.wmcontest.co.kr or http://www.mysmart.co.kr/entryList.do?state=R


This picture is directly taken from T*Omnia phone by using CapScr Utility. Picture shows that iperf client is running with it's server, running right side of tab. iperf in BTools runs nicely with PC version. I've used iperf-win32-1.7.0 to test this BTools.
















This one shows server tab in which you can run any server command. By pressing entries in the listbox shows command in edit box. Enter command in edit box, as you wish, and add to listbox again. And start the server. That's all. In this picture, server is not yet started. ^^

Thank you for reading.

Thursday, February 12, 2009

'명텐도' 발언에 정부 "게임산업 지원"

참으로 우습다. 지금 정부 모습을 보면 대통령이 말을 꺼내야 움직이는 꼴이다. 소위 언론에 나돌아 가기 전 까지는 요지부동이다. 예전에 전봇대 문제도 그렇고, 소형 트럭을 가진 힘든 가정 이야기도 그렇고. 모든 것이 움직이질 않는다.
이 기회에 정부 조직을 "발언 처리부"으로 일원화 하는 것이 어떨까? 슬림화하고 즉각 처리하는 부서 같은 것 말이지...


----
이와 관련해 지경부는 현실과 가상이 공존하는 '실감형 디지털 엔터테인먼트 플랫폼' 기술 개발에 10억원, 감성서비스 모바일 단말기 기술 개발에 15억원을 배정하는 등 올해 '오감 활용 기술' 개발에 올해 35억원을 지원할 예정이다.

-- 제목은 거창하지만, 결과물은 부끄러물만치 초라한 기술 개발은 이제 그만. 제목만 봐도 결과물은 뻔히 보이는 걸 어떡해?

현실과 가상이 공존하는 '실감형~~' --> 3D 데모만 있으면 되네...
감성 서비스 모바일 단말기 기술 개발은 이모티콘이 들어간 단말기면 되잖아 그리고 최종 결과물만 써내면 되는 기술 개발인데... 서로 먹을려고 들겠구나...

이런 글은 가급적 올리고 싶지 않지만, 답답한 마음에 올려본다. IT인력이 블로깅 말고는 뭘 할까?

Wednesday, February 04, 2009

Special Effect Control for Windows Mobile 5.0 6.x


Port of Special Effect Control posted @ codeproject.org

Features
- Water/Fire/Plasma Effects

OScopeCtrl for Windows Mobile 5.0 6.x









Windows Mobile Port of OScopeCtrl

Features
- AutoRange (As in message board in codeproject)
- Runtime support for Portrait & Landscape orientation

Original author of OScopeCtrl is Mark C. Malburg (codeproject.org)

Monday, December 22, 2008

Iperf client for Windows Mobile 5.0, 6.x


Hello everyone.

Maybe mosts of you might be interested on your network performance even on Mobile devices. I'm also interested on how fast my internet will be. So googling said to me that Iperf, developed by NLANR/DAST, is good tool to do this. This is very nice tool to measuring maximum TCP and UDP bandwidth performance.
But, unfortunately, there's still no application for Windows Mobile platform.


I'm currently developing this application for Windows Mobile platform and adding some more features like ping. This application is based on iperf 1.7.0.

I hope this might be very hand tool for Mobile users to test their network. This tool will do like as follows:
- Test performances between two end-points
- PC to Wireless Mobile Device (wired to wireless network)
- Mobile device to mobile device (wireless to wireless)



Ping page for checking latency



Iperf client tab for Windows Mobile.

Monday, November 03, 2008

FZ-28 사진들 03














FZ28 사진들 02

광학줌을 잘 활용하는 방법

* 의도대로 움직이지 않는 피사체(주로 짐승들)에 대해 활용한다.

아래 사진들은 줌을 최대한 이용하여 찍은 사진들입니다. 나름대로 신경 썼다고요~~

# 고정 피사체도 좋은 결과물을 줍니다.
















FZ28 사진들 01


환승을 위해 기다리는 동안에...동대구역



그 반대편은 이런 풍경이 펼쳐져 있습니다.



플랫폼 끝을 넘어 보이지 않는 부분은 18x의 힘으로 당겨보아요. 위 사진의 가운데 부분을 확대한 것입니다.


Panasonic DMC-FZ28

Thursday, October 30, 2008

코니카 KD-510z 사진들

이전 글(Panasonic dmc-fz28)을 쓰고 나니, 코니카의 고장이 너무 아쉽다. 고장의 원인이 모래가 들어 있는 가방에 넣고 들고다닌 것이었다. 이런 말도 안 되는 일이 실제로 일어나고 버렸다. 그 동안 애지 중지 사용한 것인데, 떨어뜨릴까봐 조심 조심 하고 했었는데...

뭐 전자 제품이 언젠가는 고장날 수가 있지만, 그래도 이것은 나의 과실이 너무 멍청했기 때문에 벌어진 일이기에 이제 와서 탓 해 봐야... 별 소용이 없다. 그래서 아쉬움을 뒤로하고, 고 동안 찍은 사진 중 마음에 드는 것을 몇 장 올립니다.

* Blogger에는 늦게 첨부한 사진이 앞에 나열되네요. 흠.


청성부대 앞에서

대구 팔공산 동화사 단청 부분

Nordian Museum, Stockholm, Sweden


Old Castle, ??, Sweden

파나소닉(Panasonic) DMC-FZ28

그 동안 애지중지 잘 사용했었던 컴팩트 카메라(KD-510z)가 고장나는 바람에 새 카메라를 장만하게 되었다. DSLR(Digital Single Lens Reflex)로 넘어갈까도 고민을 많이 했지만, 금전적으로 뒷받침을 하기 싫어서 넘어가지 않게 결심하였다.

이걸로 고민이 끝날 줄 알았는데, 다시 기종 결정이라는 높은 산을 만나고 말았다.

사실 디지털 카메라의 라인업이 무진장 잘 되어 있기 때문에, 소비자는 즐거운 마음으로 결정을 하면 되지만, 이에 따라 고르기도 더욱더 힘들어 진 것이 현실이다. 가격대, 성능대, 휴대성, 고기능 등을 나열하고 정렬하고 고르고 골라도 몇 가지 종류의 디지털 카메라가 등장한다. 자 이제 무엇을 고를까? 또 고민을 했다.

그래서 마지막 후보로 올린 것은 소니 H-50, 올림푸스 SP-57X 시리즈, 니콘 P-80, Panasonic FZ-18, FZ-28이다.

이제 순서를 무작위로 나열하고 결정을 해야 하는데, 순간 머리속에 지나가는 한 구절(외국 사이트인지 국내 사이트인지 이런 말이 있었다. "디카는 가급적 최신 제품을 사라") 오래된 제품 중에 좋은 것도 있지만, 프로세서, 이미지 처리 능력 등을 비교하면 최신 제품을 사는 것이 가장 유리하다라고...

그래서 결정을 한 것이 Panasonic DMC-FZ28이다. 그리고 바로 지름신이 강림하였다.

몇 일 후 내 손이 들어온 28. (사실 한글로 쓰면 뭣 하다) 이것 저것 만지고 하다 보니 손에는 좀 익는데, 아직 사진이 덜 익어서 나온다. 좀 더 공들여 보면 익겠지...

참고로 첨부 사진을 몇 장 올린다. 참고하시라...









밤에 손떨림 켜고 찍은 것.



이 사진은 최대 광각으로 찍은 사진이고




이 사진은 위 사진 중앙의 빨간 차를 18x로 찍은 사진입니다. 약간의 해상도 조절을 하면 23x도 나옵니다.(메뉴얼상 그렇다는 거고...)


많은 사람들이 동영상 기능이 어떠냐고 물어보는데, 내 기준으로 말하면 "동영상을 고려하면 FZ28 사라!"
HD로 나온다. 용량이 좀 커진다만, 그러면 WVGA나 VGA로 찍던가. 그것도 아니라면 직접 용량을 줄이거나.

그리고 동영상 모드에서 줌인/아웃(Zoom In/Out) 다 된다. 걱정 마시라...

Sunday, October 26, 2008

wxTorus 수정 -- wxWidget 2.8.9에 맞추어서

토러스라는 게임입니다.
굴러 떨어지는 도넛형을 가로 색상을 맞추어 정렬하면 됩니다.

예전에 소스 포지에 넣어두었는데, 요즘 새로 꺼내서 빌드해 보았습니다.

wxWidget의 버전이 무려 2.8.9가 되는 바람에 정상적으로 동작하지는 않습니다. 다만 급하게 빌드해서 소스와 바이너리를 올렸지요. 오류를 차차 고칠 예정임.^^

무엇보다 wxDialog의 동작이 바뀌어서 버튼이 동작하질 않네요.

특히 OnOk, OnCancel이 사라졌습니다. wxWidget의 샘플을 보면 OnButton으로 대체된 것 같은데, 조금 시간이 걸릴 듯 보입니다.

아래 링크를 참고하시오~~
소스포지 링크(Link to sourceforge)

Saturday, October 25, 2008

CrystalDiskMark

You might wonder how your hard disk runs.
Faster harddisk will get you more data in a given time.
Means your operating system will run more smoothly while you're doing some other jobs.

CrystalDisk Mark will show disk speed by reading/writing files sequantially, randomly per each 50M, 512K, 4K data chunks.

go to http://crystalmark.info

Friday, October 24, 2008

CrystalEditView

현재 CrystalEdit을 컨트롤로 사용하고 있는데, 사용하기에 귀찮은 것이 좀 많다.

라인 추가하는 것도 별도로 구현해야 하는 데, 좀 까다롭군. (내가 잘못한 것일 수도 있지만...)

문제는 아니지만, InsertText 함수 하나에 프로그램이 죽어버리는 것이 좀 문제이다.

현재 보이는 CrystalEdit의 단점이라면, 편의 함수가 좀 없다는 것

--
LocateTextBuffer함수를 구현하지 않으면 죽어버린다.
내부적으로 사용하는 버퍼를 직접적으로 연결해야 한다.
뷰를 가질때 사용하는 것으로 보이는데... 만약 뷰를 사용하지 않는다면?

CCrystalTextBuffer *NFCrystalEditControl::LocateTextBuffer()
{
return &((NFLogDlg*)GetParent())->m_textbuffer;
}


단순한 마우스 휠 기능 추가.
BOOL NFCrystalEditControl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// TODO: Add your message handler code here and/or call default
if(zDelta < WHEEL_DELTA)
ScrollDown();
else
ScrollUp();

return CCrystalTextView::OnMouseWheel(nFlags, zDelta, pt);
}


한줄 붙이기, 현재 커서를 마지막으로 옮기고, 한줄 붙인 다음, 그 줄을 보이도록 한다.
EnsureVisible 함수를 찾기가(?) 함들었다.
*** EnsureVisible에서 뷰를 업데이트 할 경우에 죽는 경우가 생긴다. 이는 AttachToBuffer 함수를 부르지 않는 것으로 일단 해결.

void NFCrystalEditControl::AppendLine(LPCTSTR pszChars)
{
CString msg;
msg = pszChars;
msg += "\r\n";

CCrystalTextBuffer *buffer = LocateTextBuffer();
int n = buffer->GetLineCount();

int x, y;
//tb->InsertText(this, ptCursorPos.y, ptCursorPos.x, pszChars, y, x, CE_ACTION_PASTE); // [JRT]
BOOL retcode = buffer->InsertText(this, n-1, 0, msg, y, x, CE_ACTION_PASTE); // [JRT]
if(retcode == TRUE)
{
CPoint ptCursorPos;// = GetCursorPos();
ptCursorPos.x = x;
ptCursorPos.y = y;

//ScrollToLine(y); // 현재 포인터가 보이는 곳으로 화면을 갱신한다.
//EnsureVisible(ptCursorPos); // 현재 포인터가 보이는 곳으로 화면을 갱신한다.
}
}

Saturday, October 18, 2008

Test for posting code


#if !defined(AFX_TABPAGESSL_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_)
#define AFX_TABPAGESSL_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_

/////////////////////////////////////////////////////////////////////////////
// CTabPageSSL declaration

class CTabPageSSL : public CDialog
{
public:
// Construction
CTabPageSSL (); // Default Constructor
CTabPageSSL (UINT nIDTemplate, CWnd* pParent = NULL); // Standard Constructor
// Destruction
~CTabPageSSL ();

// Enable/disable command routing to the parent.
void EnableRouteCommand(bool bRoute = true) { m_bRouteCommand = bRoute; };
bool IsRouteCommand() { return m_bRouteCommand; };
// Enable CmdMsg routing to the parent.
void EnableRouteCmdMsg(bool bRoute = true) { m_bRouteCmdMsg = bRoute; };
bool IsRouteCmdMsg() { return m_bRouteCmdMsg; };
// Enable/Disable Notify routing to the parent.
void EnableRouteNotify(bool bRoute = true) { m_bRouteNotify = bRoute; };
bool IsRouteNotify() { return m_bRouteNotify; };

protected:
// Message Handlers
virtual BOOL OnCommand (WPARAM wParam, LPARAM lParam);
virtual BOOL OnNotify (WPARAM wParam, LPARAM lParam, LRESULT* pResult);
virtual void OnOK (void);
virtual void OnCancel (void);
virtual BOOL OnCmdMsg (UINT nID, int nCode, void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);

// Routing flags
bool m_bRouteCommand;
bool m_bRouteCmdMsg;
bool m_bRouteNotify;
};

#endif // !defined(AFX_TABPAGE_H__619331B3_7DE7_4DB1_A039_2103E87E8E71__INCLUDED_)

ST_SplitterWnd

Are you tired of using CSplitterWnd?
ST_SplitterWnd can help your code working.

At least to me, ST_SplitterWnd is little better to use.
Left image used 3 SplitterWnd.

Generated with following codes





// Declare in your MainFrm.h
ST_SplitterWnd *m_pSplitterWnd1;
ST_SplitterWnd *m_pSplitterWnd2;
ST_SplitterWnd *m_pSplitterWnd3;
ST_SplitterWnd *m_pSplitterWnd4;



BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
m_pSplitterWnd1 = new ST_SplitterWnd();

// split into five panes :

// +-----+--------+
// | | |
// + +--------+
// | | |
// +--+--+--------+
// | |
// +--------------+

//
// workingh
m_pSplitterWnd1->Create(this,NULL, NULL,pContext,false);

m_pSplitterWnd2 = m_pSplitterWnd1->AddSubDivision(TOP_SIDE, NULL, NULL,pContext,true);
m_pSplitterWnd2->AddView(LEFT_SIDE, RUNTIME_CLASS(NFMainView),pContext);
m_pSplitterWnd2->SetColumnInfo(0, 600, 300);
//m_pSplitterWnd2->SetRowInfo(0, 400, 400);


m_pSplitterWnd3 = m_pSplitterWnd2->AddSubDivision(RIGHT_SIDE, NULL, NULL,pContext,false);
m_pSplitterWnd3->AddView(TOP_SIDE, RUNTIME_CLASS(NFDialerView), pContext);
m_pSplitterWnd3->AddView(BOTTOM_SIDE, RUNTIME_CLASS(NFMiscView), pContext);
m_pSplitterWnd3->SetRowInfo(0, 220, 120);
m_pSplitterWnd3->SetRowInfo(1, 220, 120);

m_pSplitterWnd1->AddView(BOTTOM_SIDE, RUNTIME_CLASS(NFOutputView),pContext);
m_pSplitterWnd1->SetRowInfo(0, 400, 300);
//m_pSplitterWnd1->HideRow(1);

}



SetColumnInfo and SetRowInfo give minimal spaces to keep visible. If pane has small spaces than in cxMin or cyMin, than pane will be hidden.

ST_SplitterWnd gives you Hide/Show pane functionality and SwitchView also.
Search Splitter in codeproject

Each pane uses CPropertyView for tabbed view. CPropertyView is MFC extension by YEAsoft.
Log Tab uses CrystalEdit as it's control.

How to use CSplitterWnd

CSplitterWnd은 화면을 분할할 때 사용한다.

왼쪽과 같은 모습을 만들기 위해서는 아래와 같은 코드를 사용하면 된다.

1. 좌우 분리 (1, 2)
2. 오른쪽 Pane을 상하 분리(2, 1)






BOOL m_bSplitterCreated = m_wndSplitter1.CreateStatic(this, 1, 2);

int m_IDpane = m_wndSplitter1.IdFromRowCol(1, 0);
!m_wndSplitter2.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_IDpane))

Splitter는 뷰를 필요로 하기 때문에 CreateView를 사용하여 뷰를 붙인다. 만약 Control을 붙이고 싶다면 CFormView를 사용한다.

m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CHtmlView), CSize(200, 300), pContext);

위 코드는 CPropertyView를 사용하여 각 Pane당 Page형태를 사용한 것이다.

Tuesday, October 31, 2006

It's very hard to write a blog.

Actually I have no time to sit on the computer. Why? My company doesn't let me free even after works get over. What a terrible situation. Most companies, in our country, do like this. Yes, they really do like this even it doesn't help any improvement of quality of products(or something like that).
Many executives think that more time on the product than more quality can be achived.
In some point it is true. But In the LONG point of the view, regarding employee's health, it is not true.
So, please let us be in our house more than NOW. Do not call us in the name of time shortness. If you schedule all these works well, then we don't have to be left in the company late night.
Mosquito, Mosquito, Mosquito...

In my house, lots of mosquitoes were found here and there. It seems like it is generated somewhere in my house but I can't find it out at all. It's really mysterious thing why mosquitoes are come out even in the mid of October! Hey, Mosquito! Isn't it time to get a long time sleep?

For those who suffer from long live mosquitoes, I'll tell you how to kill them with you bare hands. Yeah, It's bare hands. Do the following steps.

How to kill a FLYING mosquito.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
See mosquito flying around you.
Stare it's flying curve.
Draw your hands up to your shoulder.
Looking at the flee swing your palm up to down toward it.
At first, swing from up to down is important.
When hits, the flee will be seen at the bottom 1 ~ 2 seconds within.

Tuesday, September 26, 2006


Do you like game?

The long time thrown away code revived with wxWidgets!

This is a simple arcade game. You may want to see what it looks alike. See above picture. Just align falling toruses with peg at the bottom.

Simple and easy to play. But be careful that it is not easy to win the game.

You can download here. http://sourceforge.net/projects/ktorus/

Good luck!