'전체'에 해당되는 글 105

  1. 2011.01.03 집단지성?
  2. 2010.12.27 Another MVP's post about MVP Global Summit
  3. 2010.09.21 Simnow - AMD Machine simulator
  4. 2010.09.18 PSD Extension Error
  5. 2010.09.18 Interesting articles from Purdue univ (1)
  6. 2010.09.18 Android (1)
  7. 2010.09.17 MUST DO
  8. 2010.09.06 Set window to top position.
  9. 2010.08.19 Advantages and disadvantages of multi-thread programming in a multi core system (2)
  10. 2010.06.14 Effective Windows Programming (Visual C++ 파워풀 개발 테크닉) (2)

집단지성?

집단으로
지랄하는
성가신것들
Trackback 0 Comment 0

Another MVP's post about MVP Global Summit

I am going to attend Global Summit 2011!

http://icerainbow.tistory.com/1125
http://icerainbow.tistory.com/1126
Trackback 0 Comment 0

Simnow - AMD Machine simulator

This is one of the most awesome software in the world!
'Simnow' is the software what I always dreamed and wanted to get.

It emulates huge ranges of machines including up-to-date features! 


Trackback 0 Comment 0

PSD Extension Error

http://forums.techguy.org/windows-xp/602972-psd-shell-extenstion-error-c_psdrsdll.html

The following message was copied from the above page.

Hi gopo,
Not sure if you are still having this issue. Most likely not, but here is what I did to fix it.
Run Regedit, browse to: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved], and look in the right hand side window for "PSD Shell Extension", highlight and delete the entire key. Problem gone.

WARNING:
Before deleting anything in the registry, make sure you backup and or export what it is you are deleting. That way if anything goes wrong you can import it back in.

Good luck,
Jlynn001
Trackback 0 Comment 0

Interesting articles from Purdue univ

[Prof]
[Articles]
- Create secure passwords and help people to memorize those truly random-generated password by offering conceivable sentence.

- Excellent! I should think more about PUFs.
Trackback 0 Comment 1

Android

http://developer.android.com/guide/basics/what-is-android.html

Trackback 0 Comment 1

MUST DO

1. Make a list of all interesting things
2. Review at least one deep article a day
Trackback 0 Comment 0

Set window to top position.

Bringing specific window to top seems to be easy. However, some function which should do those kinds of things are not work actually. Thus, following code is the way to bring window to top attaching thread input to target window.


if(::GetForegroundWindow() != GetSafeHwnd()) { 
HWND hActiveWnd = ::GetForegroundWindow(); 
if( hActiveWnd ) { 
DWORD dwActiveTid = GetWindowThreadProcessId(hActiveWnd, NULL); 
DWORD dwCurTid = GetCurrentThreadId(); 

if(dwCurTid != dwActiveTid) { 
if(AttachThreadInput(dwCurTid, dwActiveTid, TRUE)) { 
BringWindowToTop(); 
AttachThreadInput(dwCurTid, dwActiveTid, FALSE); 
}
Trackback 0 Comment 0

Advantages and disadvantages of multi-thread programming in a multi core system

The conclusion of this article is came from 'http://kkamagui.tistory.com/445'

Many programmers think that multi-thread programming is faster than single-thread programming, legacy style of code, especially in multi-core systems.
Specifically, it is a popular misconception that setting CPU affinity will make software faster. However, in fact, there is no big improvement in performance when you apply this method in the windows environment.

Why? This is because the windows' scheduler properly organizes threads even if a programmer does not write proper code for multi-thread software. Therefore, although it is true that well organized code run faster, the difference in speed between a normal multi-thread application without special concerning on multi-thread performance and an application which have been written with deliberation for multi-threading is not clear since the windows scheduler already considers multi-core systems and runs properly in general ways. 

In conclusion, rewriting your application to multi-thread is not a good way when you would like to improve the performance of your application in that the windows has already good scheduler for multi-core systems.



Trackback 0 Comment 2

Effective Windows Programming (Visual C++ 파워풀 개발 테크닉)

작년 여름부터 김용현 MVP님, 신영진 MVP님과 함께 쭉 써왔던 책이 나왔습니다.

책 내용은 제목에서도 다소 알 수 있다 시피, Windows Programming 에 대한 세밀한 내용을 다루려고 노력한 책입니다.

사용자 삽입 이미지

개인적으로 책 내용에 대해서는 누구에게나 자신있게 권해드릴 수 있을 만큼 양질의 내용들이 있다고 자부할 수 있습니다. 초급 프로그래머들에게는 지금까지 모르고 있었던 새로운 윈도우와 시스템에 대한 내용들을 습득할 수 있는 좋은 기회가 될 것이고, 중급 프로그래머들에게는 이론적으로만 알고 있던 내용들을 다시한번 Remind 하고, 시간에 쫒겨 정확한 원인과 시스템 내부 구조를 이해하지 못하고 지나쳐야만 했던 여러 가지 부분 들에 대해서, 완전히 이해할 수 있는 좋은 기회가 될거라고 생각합니다. 마지막으로, 고급 프로그래머 에게도 알고 있어도 지나치기 쉬운 부분들을 다시한번 생각하게 해 줄 것이라고 생각합니다.

책은 서점 또는 인터넷 서점에서 구하실 수 있습니다.
아래는 인터넷 서점 yes24 의 링크입니다.

P.S. 생각보다 원고가 늦어져서 여러 가지 면에서 많이 스트레스 받으셨던 전도영 편집장님. 이 자리를 빌어 정말 죄송합니다. ㅠ_-; 그리고, 마지막 원고 마감할 즈음, 한창 GRE 시험 준비 막바지라, 거의 글을 제대로 못썻었는데, 완전 열심히 원고를 써주시고 마무리 해주신 영진씨와 용현씨 정말 감사합니다. ㅎ 조만간 모이면 고기는 제가 쏘겠습니다 ㅋ;


[책 제목]
Visual C++ 파워풀 개발 테크닉

Effective Windows Programming

[책 정보]“Visual C++ MVP 3인의 실전 프로젝트 가이드”

윈도우 플랫폼과 비주얼 C++에 대한 심층적인 분석을 바탕으로, 초중급 C++ 개발자들이 더 완벽하고 효율적인 애플리케이션을 개발할 수 있는 방안을 제시한다.

권용휘·김용현·신영진 지음/ 웰북/ 444쪽/ 2만원

[책 소개]
『Visual C++ 파워풀 개발 테크닉』은 풍부한 개발 경험을 가진 비주얼 C++ MVP 3인의 지식과 노하우를 담은 윈도우 애플리케이션 개발 지침서로 초중급 개발자를 대상으로 한다.

‘Effective Windows Programming’이라는 부제에서 짐작할 수 있듯이, 윈도우 플랫폼과 비주얼 C++에 대한 심층적인 분석을 바탕으로 C++ 개발자들이 더 효율적이면서 안전한 윈도우 애플리케이션을 구현할 수 있도록 다양한 상황에서 고려해야 할 구체적인 노하우들을 제시한다.

중고급 개발자로 거듭나는 과정에서 불가피하게 겪어야 할 시행착오를 최대한 줄이는 데 중점을 둔 이 책은 기본적인 윈도우 프로그래밍 입문서를 보완할 수 있는 내용 가운데 직접적인 경험을 거쳐야만 얻을 수 있는 내용을 엄선해, 전체 6개 영역 52개의 이야기로 구성했다.

오해하기 쉬운 프로그래밍 관련 문법, 스펙이나 기능이 바뀐 윈도우 함수 정보, 프로그래머들의 잘못된 습관, 레퍼런스 학습 과정의 오해 등 개발자들이 한번쯤 맞닥뜨리게 될 여러 가지 프로그래밍 관련 이슈들을 이 책에서 만나볼 수 있다.

[책의 구성]
『Visual C++ 파워풀 개발 테크닉』은 총 6개의 영역으로 구성되어 있으며, 기본적인 윈도우 프로그래밍 입문서를 보완할 수 있는 내용 가운데 경험으로 얻을 수 있거나 경험을 통해야만 호기심이 생길 수 있는 내용을 주로 담았다.

Chapter 1. 윈도우 프로그래밍과 시스템 리소스

효율적인 윈도우 애플리케이션의 개발은 기본적으로 윈도우 시스템 리소스의 효율적인 이용을 전제로 하며 애플리케이션 성격에 따라 이 둘은 완전히 동일한 의미를 지니기도 한다.

윈도우 애플리케이션을 개발할 때 알아야 할 시스템 리소스의 기본적인 내용 중 메모리, 힙, 스택, 프로세스, 메니페스트 등에 대해 차례로 살펴보고 특히 주의해야 할 점이나 입문자들이 오해할 수 있는 부분들을 모아 설명한다.

Chapter 2. 윈도우 프로그래밍 메커니즘

윈도우는 버전이 올라갈수록 성능과 기능이 향상되면서 동시에 사용자 정보 보호를 위해 보안성을 강화하거나 반대로 사용성을 높이기 위해 보안 강도를 완화시키기도 한다.

이러한 정책 변경 속에서 자신이 만드는 애플리케이션에 도움이 될 수 있는 메커니즘적인 요소를 모아 소개한다.

DLL을 만들 때 지켜야 할 규칙과 같은 기본적인 것에서부터, 승인 받은 프로그램을 이용한 크래킹과 같이 경험을 통한 생각과 검색 끝에 정리할 수 있었던 자료까지 다양한 부분의 윈도우 프로그래밍 메커니즘을 살펴본다.

Chapter 3. 윈도우 프로그래밍 API와 라이브러리

윈도우 애플리케이션이 윈도우와 상호 소통하는 가장 기본적인 방법은 윈도우 API를 이용하는 것이다.

윈도우에는 수백 개의 API가 있고, 새로운 윈도우가 나올 때마다 많은 수의 API가 추가되며 이와 동시에 적지 않은 API가 없어지거나 그다지 사용되지 않기도 한다.

많은 윈도우 API 중 필자들이 사용하다가 시행착오를 겪은 몇 가지 API와 라이브러리를 선택해 관련된 지식과 경험을 소개한다.

Chapter 4. Visual C++의 기본 테크닉 활용

Visual C++는 C++ 언어를 사용하는 개발자들에게 있어서 매우 편리한 기능을 제공하면서 효율적인 디버깅 환경을 지원하는, 수년간의 개발자 지원 정책을 통해 만들어진 최고의 C++ 개발툴이다.

최신 버전의 Visual C++의 경우 상당히 많은 기능을 제공하고 있지만 애플리케이션 개발자들은 언어적인 부분과 윈도우 프로그래밍에 관련된 개발 지식을 선행 학습하므로 Visual C++ 자체에 대한 활용 학습의 우선순위는 상대적으로 낮은 것이 현실이다. 여기서는 Visual C++를 이용한 다양한 테크닉 중에서 특히 중요하다고 판단되는 부분을 엄선했으니, 충분히 이해하고 즐겁게 활용해 보자.

Chapter 5. C/C++ 구조의 올바른 이해와 활용

언어를 학습할 때 무작정 외워 보기도 하고 복잡한 부분은 나만의 방식으로 이해하기도 한다.

C 언어는 과연 어떻게 동작하고 포인터 선언을 쉽게 이해하는 방법은 무엇일까?

클래스는 내부적으로 어떻게 구조화되어 사용되고 있을까?

지금까지 무작정 외우고 이해했던 부분을 설명되는 내용과 견줘 보면서 자신의 프로그래밍 수준을 높여 보자.

Chapter 6. 시야를 넓힐 다양한 프로그래밍 이슈

마지막 순서로 필자들이 주고받았던 여러 가지 흥미로운 주제들 가운데 네 가지를 골라 소개한다.

주제에 따라서는 C++ 프로그래밍과 직접적인 연관성을 가지진 않지만, 윈도우 애플리케이션 개발이란 큰 틀에서 보면 네 가지 모두 독자들이 흥미를 느끼기에 충분한 이슈가 될 것이다.

[추천사]

typedef enum { POOR, GOOD, GREAT } BOOK_COST_TYPE;
typedef struct { char* title; short cost; } STR_BOOK;
char* MyChoice(STR_BOOK* thisBook){
     if ( !strcmp(thisBook->title, “C++”) ) {
           if ( thisBook->cost == GREAT ) {
                  if ( BuyBook(thisBook) ) {
                        if ( StudyHard(thisBook) ) return “SMART GUY!!”;
                        else return “GOOD BOY”;
                  }
                  else return “BAD”;
            }
      }
      return “FOOL!!”;
}
정희용 | 월간 마이크로소프트웨어 발행인

이 책은 기본에 충실하면서도 파워풀한 내용들로 채워져 실력 향상에 큰 도움을 줄 것으로 확신한다. C++ 초급자들에게는 다소 어려운 내용일 수 있지만 언젠가는 알고 있어야 하는 내용들인 터라 읽어보는 것만으로도 실력 향상에 도움이 될 것이다. 다년간 축적된 노하우를 바탕으로 늘 곁에 두고 참고할 만한 좋은 책을 만든 세 명의 저자에게 박수를 보낸다. 짝짝짝~
이광진 | SK커뮤니케이션즈 메신저개발팀 차장

각종 오류에 대한 상황 대처나 크리티컬한 원인 해결에 필요한 조언을 숙련된 경험자 입장에서 제공하는 이 책은 단순한 입문서나 원론적이며 기계적인 해설로 도배된 책들과 접근 방식 자체가 다르다. 즉, 사수에게나 배울 수 있는 여러 가지 지식을 내공 깊은 설명과 함께 전달해 독자들이 시스템 프로그래밍의 기반을 닦을 수 있도록 돕는다. 『Windows Internals』나 제프리 리처의 서적이 어려웠던 개발자, 그리고 시스템 프로그래밍을 사수 없이 연마하고 있는 독자들에게 이 책은 최고의 해답을 선물할 것이다.
강병탁 | 넥슨 보안팀 과장, Microsoft Developer Security MVP

동작의 원리를 모른 채 추상화 도구만 사용하는 개발자들은 곧 주어진 도구의 한계에 봉착하게 되고, 이것은 치명적인 약점이 되기 쉽다. 이런 점에서 윈도우 운영체제의 핵심을 제어할 수 있는 Visual C++는 개발자들이 반드시 알아야 하는 도구임이 분명하고, 이 책은 그런 개발자의 필요에 맞춰 개발 현장에서 발생하는 여러 문제들의 해결 방법과 그 배경 지식을 담았다. 입문서들이 주로 출간되는 시기에 개발자의 오랜 갈증을 확 풀어줄 만한 책이 나왔다.
우상정 | 삼성전자 DMC 연구소 SW 플랫폼팀 선임

이 책은 Visual C++를 이용해 윈도우 애플리케이션을 개발하는 초중급 프로그래머들에게 훌륭한 자극제다. 개발 과정에서 접하는 많은 궁금증과 문제점들이 각 장에서 속 시원히 설명되고 있으며 많은 시행착오를 통해 축적된 저자들의 노하우가 알기 쉽게 설명되고 있다. 특히, 윈도우 플랫폼 기반의 서버/클라이언트를 타깃으로 이뤄지는 온라인 게임 개발 프로젝트에서 이 책은 좋은 스터디 교재로 활용될 것이다.
최성기 | 엔씨소프트 개발7실 PLUG팀 과장




Trackback 0 Comment 2