E D R , A S I H C RSS

Full text search for "Re"

Re


Search BackLinks only
Display context of search results
Case-sensitive searching
  • MoreEffectiveC++/Appendix . . . . 105 matches
         ["MoreEffectiveC++"]
         == Recommended Reading ==
         So your appetite for information on C++ remains unsated. Fear not, there's more — much more. In the sections that follow, I put forth my recommendations for further reading on C++. It goes without saying that such recommendations are both subjective and selective, but in view of the litigious age in which we live, it's probably a good idea to say it anyway. ¤ MEC++ Rec Reading, P2
         There are hundreds — possibly thousands — of books on C++, and new contenders join the fray with great frequency. I haven't seen all these books, much less read them, but my experience has been that while some books are very good, some of them, well, some of them aren't. ¤ MEC++ Rec Reading, P4
         What follows is the list of books I find myself consulting when I have questions about software development in C++. Other good books are available, I'm sure, but these are the ones I use, the ones I can truly recommend. ¤ MEC++ Rec Reading, P5
         A good place to begin is with the books that describe the language itself. Unless you are crucially dependent on the nuances of the °official standards documents, I suggest you do, too. ¤ MEC++ Rec Reading, P6
          * '''''The Annotated C++ Reference Manual''''', Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley, 1990, ISBN 0-201-51459-1. ¤ MEC++ Rec Reading, P7
          * '''''The Design and Evolution of C++''''', Bjarne Stroustrup, Addison-Wesley, 1994, ISBN 0-201-54330-3. ¤ MEC++ Rec Reading, P8
         These books contain not just a description of what's in the language, they also explain the rationale behind the design decisions — something you won't find in the official standard documents. The Annotated C++ Reference Manual is now incomplete (several language features have been added since it was published — see Item 35) and is in some cases out of date, but it is still the best reference for the core parts of the language, including templates and exceptions. The Design and Evolution of C++ covers most of what's missing in The Annotated C++ Reference Manual; the only thing it lacks is a discussion of the Standard Template Library (again, see Item 35). These books are not tutorials, they're references, but you can't truly understand C++ unless you understand the material in these books
         For a more general reference on the language, the standard library, and how to apply it, there is no better place to look than the book by the man responsible for C++ in the first place: ¤ MEC++ Rec Reading, P10
          * '''''The C++ Programming Language (Third Edition)''''', Bjarne Stroustrup, Addison-Wesley, 1997, ISBN 0-201-88954-4. ¤ MEC++ Rec Reading, P11
         Stroustrup has been intimately involved in the language's design, implementation, application, and standardization since its inception, and he probably knows more about it than anybody else does. His descriptions of language features make for dense reading, but that's primarily because they contain so much information. The chapters on the standard C++ library provide a good introduction to this crucial aspect of modern C++. ¤ MEC++ Rec Reading, P12
         If you're ready to move beyond the language itself and are interested in how to apply it effectively, you might consider my other book on the subject: ¤ MEC++ Rec Reading, P13
          * '''''Effective C++''''', Second Edition: 50 Specific Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 1998, ISBN 0-201-92488-9. ¤ MEC++ Rec Reading, P14
         That book is organized similarly to this one, but it covers different (arguably more fundamental) material. ¤ MEC++ Rec Reading, P15
         A book pitched at roughly the same level as my Effective C++ books, but covering different topics, is ¤ MEC++ Rec Reading, P16
          * '''''C++ Strategies and Tactics''''', Robert Murray, Addison-Wesley, 1993, ISBN 0-201-56382-7. ¤ MEC++ Rec Reading, P17
         Murray's book is especially strong on the fundamentals of template design, a topic to which he devotes two chapters. He also includes a chapter on the important topic of migrating from C development to C++ development. Much of my discussion on reference counting (see Item 29) is based on the ideas in C++ Strategies and Tactics.
         If you're the kind of person who likes to learn proper programming technique by reading code, the book for you is ¤ MEC++ Rec Reading, P19
          * '''''C++ Programming Style''''', Tom Cargill, Addison-Wesley, 1992, ISBN 0-201-56365-7. ¤ MEC++ Rec Reading, P20
  • ProjectPrometheus/AT_RecommendationPrototype . . . . 104 matches
         WEIGHT_LIGHTREVIEW = 3
         WEIGHT_HEAVYREVIEW = 9
          self.lightReviewBookList = {}
          self.heavyReviewBookList = {}
          def _getPrefCoef(self, aBook):
          if self.lightReviewBookList.has_key(aBook):
          point += self.lightReviewBookList[aBook] * WEIGHT_LIGHTREVIEW
          if self.heavyReviewBookList.has_key(aBook):
          point += self.heavyReviewBookList[aBook] * WEIGHT_HEAVYREVIEW
          return point
          def _addBookRelation(self, aNewBook, anIncrementPoint):
          aNewBook.addBookRelation(book, self._getPrefCoef(book) + self._getPrefCoef(aNewBook))
          book.addBookRelation(aNewBook, self._getPrefCoef(aNewBook) + self._getPrefCoef(book))
          def _editBookRelation(self, anEditBook, anIncrementPoint):
          anEditBook.addBookRelation(book, anIncrementPoint)
          book.addBookRelation(anEditBook, anIncrementPoint)
          def _bookAction(self, aBook, anIncrementPoint):
          self._addBookRelation(aBook, anIncrementPoint)
          self._editBookRelation(aBook, anIncrementPoint)
          return tuple(self.bookList)
  • 경시대회준비반/BigInteger . . . . 76 matches
         * Permission to use, copy, modify, distribute and sell this software
         * and its documentation for any purpose is hereby granted without fee,
         * representations about the suitability of this software for any
         * purpose. It is provided "as is" without express or implied warranty.
         #include <iostream>
         #include <strstream>
          const int BigIntRevision = 25;
          // Compares Two BigInteger values irrespective of sign
          int UnsignedCompareTo(BigInteger const&)const;
          // Compares Two BigInteger values
          int CompareTo(BigInteger const&)const;
          // Returns Number of digits in the BigInteger
          // Determines if the number representation is OK or not
          // Straight pen-pencil implementation for division and remainder
          BigInteger& DivideAndRemainder(BigInteger const&,BigInteger&,bool) const;
          BigInteger& DivideAndRemainder(DATATYPE const&,DATATYPE&,bool) const;
          friend BigInteger& DivideAndRemainder(BigInteger const&, BigInteger const&,BigInteger&,bool);
          friend BigInteger& DivideAndRemainder(BigInteger const&, DATATYPE const&,DATATYPE&,bool);
          friend ostream& operator<<(ostream& , BigInteger const&);
          friend istream& operator>>(istream& , BigInteger& );
  • 김희성/MTFREADER . . . . 64 matches
         = _mft_reader.h =
         class _MFT_READER
          PFILE_RECORD_HEADER MFT;
          U32 BytesPerFileRecord;
          long ReadAttribute(FILE* fp, unsigned char* offset, long flag);
          void ReadSector(U64 sector, U32 count, void* buffer);
          __int64 ReadCluster(unsigned char* point,unsigned char* info);
          _MFT_READER
          hVolume = CreateFile(drive, GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE, 0,OPEN_EXISTING, 0, 0);
          ReadFile(hVolume, &boot_block, sizeof(boot_block), &cnt, 0);
         // void ReLoadMFT(char* drive);
         = _mft_reader_private.cpp =
         #include"_MFT_READER.h"
         void _MFT_READER::LoadMFT()
          PFILE_RECORD_HEADER $MFT;
          BytesPerFileRecord = boot_block.ClustersPerFileRecord < 0x80? boot_block.ClustersPerFileRecord* boot_block.SectorsPerCluster* boot_block.BytesPerSector : 1 << (0x100 - boot_block.ClustersPerFileRecord);
          $MFT = PFILE_RECORD_HEADER(new U8[BytesPerFileRecord]);
          return;
          ReadSector((boot_block.MftStartLcn) * boot_block.SectorsPerCluster, BytesPerFileRecord / boot_block.BytesPerSector, $MFT);
          Attribute Header size : Resident=24 / Non-resident=64
  • LIB_3 . . . . 61 matches
         WAIT 와 SUSPEND 그리고 FREE 큐로 나누어 질 수 있다.
         그리고 FREE 큐는 메모리상에 존재하지만 죽은 태스크를 담아 놓은 큐.....쯔쯔쯔 불쌍도 해라.[[BR]]
          pReady_heap[count] = NULL;
          pFreeTCB[count] = &TCB[count];
          ready_tcb_ptr = 0;
          free_tcb_ptr = LIB_MAX_HEAP;
         여기서는 FREE 큐중에서 쓸 수 있는 큐가 있나 알아본다?? 이건 왜 했찌???
         /* Get Free TCB
         LIB_TCB* LIB_free_TCB() {
          free_tcb_ptr--;
          Temp = pFreeTCB[free_tcb_ptr];
          pFreeTCB[free_tcb_ptr] = NULL;
          return Temp;
         /* Create The Task
         void LIB_create_task (char *task_name,int priority,void (*task)(void),INT16U * Stack)
          if ( priority < LIB_MIN_PRIORITY || priority > LIB_MAX_PRIORITY ) return; <--------- 우선순위가 지랄 같으면 그냥 끝낸다.
          pReady_heap[ready_tcb_ptr] = LIB_free_TCB();
          pReady_heap[ready_tcb_ptr]->Task_Name = task_name;
          pReady_heap[ready_tcb_ptr]->delay = 0;
          pReady_heap[ready_tcb_ptr]->priority = priority;
  • REFACTORING . . . . 60 matches
         http://www.refactoring.com/catalog/index.html - Refactoring 에 대해 계속 정리되고 있다.
         == Refactoring 이란 무엇인가? ==
          * 기존의 "디자인 후 코딩' 법칙과 반대된다. (TestFirstProgramming 에서 UnitTest - ["Refactoring"] 이 맞물려 돌아간다)
          * Refactoring 을 하기 위해서는 UnitTest code가 필수적이다. 일단 처음 Refactoring에 대한 간단한 원리를 이해하고 싶다면 UnitTest 코드 없이 해도 좋지만, UnitTest code를 작성함으로서 Refactoring 에 대한 효과를 높일 수 있다. (Refactoring 중 본래의 외부기능을 건드리는 실수를 막을 수 있다.)
         == Refactoring 을 함으로써 얻는 이득 ==
         == Refactoring은 언제 하는가? ==
         특별히 때를 둘 필요는 없다. 틈나는 대로. Don Robert 의 The Rule of Three 원칙을 적용해도 좋을 것 같다.
          * 다시 또 뭔가 비슷한 일을 한다. - Refactoring을 할 때이다. Refactoring 하라.
         Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
         그리고 다음과 같은경우 Refactoring을 함으로써 이득을 얻을 수 있다.
          * Code Review 를 하려고 할때
          * Bad Smell 이 날때. - ["Refactoring/BadSmellsInCode"]
         == Refactoring 공부하기 ==
         Refactoring 책을 읽는 사람들을 위해. Preface 의 'Who Should Read This Book?' 을 보면 책을 읽는 방법이 소개 된다.
          * Refactoring이 무엇인지 알고 싶다면 Chapter 1의 예제를 읽어나간다.
          * 왜 Refactoring을 해야 하는지 알고 싶다면 Chapter 1,2를 읽어라.
          * 어떤 부분을 Refactoring 해야 하는지 찾기 원한다면 Chapter 3를 읽어라.
          * 실제로 Refactoring을 하기 원한다면 Chapter 1,2,3,4를 정독하고 RefactoringCatalog 를 대강 훑어본다. RefactoringCatalog는 일종의 reference로 참고하면 된다. Guest Chapter (저자 이외의 다른 사람들이 참여한 부분)도 읽어본다. (특히 Chapter 15)
         그리고 Refactoring 을 이해하는데 ExtremeProgramming 을 이해하면 도움이 될 것이다.
         == Refactoring 관련 토론 ==
  • 1002/Journal . . . . 57 matches
         추후 ["Refactoring"] & 다른 위키 페이지에 해당 지식 분양용.
          * 사람수대로 retrofitting 인쇄하기 -> 6부 인쇄하기 - O
          * Retrofitting UT 발표준비
          -> 살을 붙여서 이해하기 -> restatement 필요 & 대강 무질서한 방법으로 넘어가버림.
          * 프로젝트 관련 소스 분석하기 -> restatement 필요.
          ~ 11 : 20 retrofitting 인쇄
          ~ 1 : 06 retrofitting 공부 & 이해
          ~ 2 : 42 (지하철) retrofitting 읽기 & 이해
         도서관에서 이전에 절반정도 읽은 적이 있는 Learning, Creating, and Using Knowledge 의 일부를 읽어보고, NoSmok:HowToReadaBook 원서를 찾아보았다. 대강 읽어봤는데, 전에 한글용어로는 약간 어색하게 느껴졌던 용어들이 머릿속에 제대로 들어왔다. (또는, 내가 영어로 된 책을 읽을때엔 전공책의 그 어투를 떠올려서일런지도 모르겠다. 즉, 영어로 된 책은 약간 더 무겁게 읽는다고 할까. 그림이 그려져 있는 책 (ex : NoSmok:AreYourLightsOn, 캘빈 & 홉스) 는 예외)
          책을 읽으면서 '해석이 안되는 문장' 을 그냥 넘어가버렸다. 즉, NoSmok:HowToReadaBook 에서의 첫번째 단계를 아직 제대로 못하고 있는 것이다. 그러한 상황에서는 Analyicial Reading 을 할 수가 없다.
          * 그렇다면, 어떻게 NoSmok:HowToReadaBook 이나 'Learning, Creating, and Using Knowledge' 은 읽기 쉬웠을까?
          * 사전지식이 이미 있었기 때문이라고 판단한다. NoSmok:HowToReadaBook 는 한글 서적을 이미 읽었었고, 'Learning, Creating, and Using Knowledge' 의 경우 Concept Map 에 대한 이해가 있었다. PowerReading 의 경우 원래 표현 자체가 쉽다.
          * 현재 내 영어수준을 보건데, 컴퓨터 관련 서적 이외에 쉽고 일상적인 책들에 대한 Input 이 확실히 부족하다. 영어로 된 책들에 대해서는 좀 더 쉬운 책들을 Elementary Reading 단계부터 해봐야겠다.
          * Seminar:ReadershipTraining
          * 이러한 사람들이 책을 읽을때 5분간 읽으면서 어떤 과정을 어느정도 수준으로까지 거치는지에 대해 구경해볼 수 있어도 좋을것 같다. 그러한 점에서는 RT 때 Chapter 단위로 Pair-Reading 을 해봐도 재미있을 듯 하다. '읽는 방법'을 생각하며 좀 더 의식적으로 읽을 수 있지 않을까.
          * 다른 사람들이 나에 비해 해당 어휘에 대한 재정의(Restatement) 단계가 하나나 두단계정도 더 높았던걸로 기억한다. 내가 책을 읽을때 질문을 잘 못만들어내는 것도 한 몫하는것 같다.
          * 처음 프로그래밍을 접하는 사람에게는 전체 프로젝트 과정을 이해할 수 있는 하루를, (이건 RT 보단 밤새기 프로젝트 하루짜리를 같이 해보는게 좋을 것 같다.) 2-3학년때는 중요 논문이나 소프트웨어 페러다임 또는 양서라 불리는 책들 (How To Read a Book, 이성의 기능, Mind Map 이나 Concept Map 등)을 같이 읽고 적용해보는 것도 좋을것 같다.
          * Seminar:ReadershipTraining Afterwords
          * Blank Error 의 에러율 변화에 대한 통계 - 이론으로 Dead Lock 을 아는 것과, 실제 Multi Thread 프로그래밍을 하는 중 Dead Lock 상황을 자주 접하는것. 어느것이 더 학습효과가 높을까 하는 생각. 동의에 의한 교육에서 그 동기부여차원에서도 학습진행 스타일이 다르리란 생각이 듬.
          * 쌓아나가야 할 부분이 상당히 많아보이는데.. Refactoring 에서의 경험을 어설프게 가로질러본다면. ReFactoring 을 할때 나쁜 클래스들을 그 안에서 계속 고쳐나가는 것 보단, 새 클래스나 메소드들을 중간에 만든뒤, 나쁜 클래스들을 삭제하는게 더 빠른 방법이다. 좋은 습관을 만들어내는 것이 나쁜 습관을 고쳐내려고 하는것보다 최종적으로 볼땐 더 접근하기 쉽지 않을까 하는 생각을 해본다. 나쁜 점이라 생각하는것은, 의식화해서 고치는 것 보단 좋은 습관으로 대체하고 나쁜 습관을 아에 잊어버리게끔 하는것이 더 나은것 같다.
  • 새싹교실/2012/세싹 . . . . 54 matches
          * 새싹교실이 ZeroPage에서 시행되는만큼 4F([ThreeFs] + Future Action Plan)에 맞게 feedback을 작성합니다.
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
          2) http://ftp.daum.net -> Ubuntu-releases -> 11.10 -> ubuntu-11.10-deskto-amd64.iso 다운
          - 는 훼이크고 :P 간단히 설명하면 서버와 클라이언트가 byte stream을 주고 받는 것을 마치 파일 입출력을 하듯 해주는 것입니다.
          || read()/write() || read()/write() ||
          * 자세한 해결 방법입니다. 소켓을 생성하고나서 바로 setsockopt(mySocket, SOL_SOCKET, SO_REUSEADDR, &anyIntegerVariableThatContainsNonZero, sizeof(anyIntegerVariableThatContainsNonZero)); 함수를 호출하면 이 소켓의 생명이 다하는 순간 해당 포트에 자리가 나게 됩니다. - [황현]
          - thread를 이용하여 서버와 클라이언트를 한 어플리케이션 안에서 사용하는
          concurrent 프로그래밍을 다음시간부터 하겠습니다.
          * Thread에 대해서 알아보았습니다.
          - thread가 어떤 것인지 왜사용하는지 어떻게 사용하는지 간단히 소개하였습니다.
          * 컴파일이 안되서 인터넷으로 확인해보니 다중 스레드를 쓰려면 gcc에 옵션 -lpthread를 주어야하는군요. - [김희성]
          * 데이터 처리에 대하여 좀 더 검색하였는데 기본적으로 send된 정보는 버퍼에 계속 쌓이며, recv가 큐처럼 버퍼를 지우면서 읽는다고 되어있었습니다. 반면 read와 같은 파일포인터 함수로 읽으면 버퍼를 지우지않고 파일포인터만 이동하는 것 같더군요. recv도 옵션을 변경하면 버퍼에 계속 누적해서 보관할 수 있는거 같습니다.
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/recv
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/read
          잠깐 소개했던 thread프로그래밍을 김희성 학생이 thread로 소켓을 짜는 것인줄 알고 채팅 프로그래밍을 완성시켰네요. 강사 멘붕
          * concurrent 프로그래밍에 대해 배웠습니다.
          1) thread 프로그래밍
          - thread의 동작 원리와 thread를 어떻게 생성하는지, 종료를 어떻게 시키는지에 대해 배웠습니다.
          - 자세한 내용은 링크를 참조. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/WhatThread
  • ProjectPrometheus/Journey . . . . 46 matches
         ["ProjectPrometheus"] 작업 수기. ["ThreeFs"] 에 따라. 그날의 한일과 느낀점, 교훈 등을 생각해보는 시간가지기. 순간을 채집하고 민감할 수 있도록.
          * ZeroPage 에 Release. 관련 ["Ant"] Build 화일 작성
          * 윈도우에서 작업한 ["Java"] 화일이 의외로 한방에 ["Ant"] 로 빌드하고, ZeroPage 의 Resin 서버에서 동작하는 것을 보며, 다시금 자바의 위력이 실감난다.
          * 원래라면 방학중 한번 Release 하고 지금 두번째 이상은 Release 가 되어야 겠지만. Chaos (?)의 영향도 있고. -_-; 암튼 두달간 장정에서 이제 뭔가 한번 한 느낌이 든다. 초반에는 달아오르는 열정이되, 후반은 끈기이다. 중간에 느슨해질 거리들이 많음에도 불구하고 천천히나마 지속적일 수 있었음이 기쁘다.
         학기중에는 시간을 맞추기가 쉽지 않음을 느끼며. 뜻하지 않는(뭐 한편으론 예상했지만) Requirement 의 변경이 일어났다. 도서관 UI & 시스템이 전면적으로 수정된 것이다.
          * Recommender, lightView, heavyView service 작성. view 추가.
          * Recommender 부분 완료 (연관된 {{{~cpp BookMapper}}}, {{{~cpp UserMapper}}}의 기능 작성 완료)
         이 부분도 일종의 Architecture 의 부분일것인데, 지금 작성한것이 웬지 화근이 된것 같다는. Architecture 부분에 대해서는 Spike Solution 을 해보던지, 아니면 TDD 를 한뒤, Data Persistence 부분에 대해서 내부적으로 Delegation 객체를 추출해 내고, 그녀석을 Mapper 로 빼내는 과정을 순차적으로 밟았어야 했는데 하는 생각이 든다.
         Object-RDB Mapping 에 대해서는 ["PatternsOfEnterpriseApplicationArchitecture"] 에 나온 방법들을 읽어보고 그중 Data Mapper 의 개념을 적용해보는중. Object 와 DB Layer 가 분리되는 느낌은 좋긴 한데, 처음 해보는것이여서 그런지 상당히 복잡하게 느껴졌다. 일단 처음엔 Data Gateway 정도의 가벼운 개념으로 접근한뒤, Data Mapper 로 꺼내가는게 나았을까 하는 생각.
          * Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
          * Recommender 구현중 User 클래스의 구현
          * {{{~cpp RecommenderTest}}} 의 테스트 수행중
          * Python 의 ClientCookie 모듈의 편리함에 즐거워하며. Redirect, cookie 지원. 이건 web browser AcceptanceTest를 위한 모듈이란 생각이 팍팍! --["1002"]
          * SearchListExtractorRemoteTest 추가
          * 도서관은 303건 초과 리스트를 한꺼번에 요청시에는 자체적으로 검색리스트 데이터를 보내지 않는다. 과거 cgi분석시 maxdisp 인자에 많이 넣을수 있다고 들었던 선입견이 결과 예측에 작용한것 같다. 초기에는 local 서버의 Java JDK쪽에서 자료를 받는 버퍼상의 한계 문제인줄 알았는데, 테스트 작성, Web에서 수작업 테스트 결과 알게 되었다. 관련 클래스 SearchListExtractorRemoteTest )
          * Server Refactoring
         서버쪽 클래스들에 대해서 Refactoring 을 시도 데이터클래스이면서 그 용도가 조금씩 달랐던 클래스들을 하나로 묶었다. (일단 모여해쳐 시도용으로) 그러면서 안쓰는 클래스들을 조금씩 지워나갔다. 패키지들중 Test 패키지와 메인 소스 패키지, 임시 코드 패키지들에 대해서 화일들을 옮기고 정리했다. 아직 완벽하게 정리된것 같진 않지만, 개인적으로는 이전에 비해 만족스러웠다. (이제 Target은 Resin 쪽과 임시소스들 디렉토리.)
          * Code Review 로서 Refactoring 이 이용된다고 했다시피, Refactoring을 해 나가면서 전체 프로그램의 그림이 좀 더 이해가 갔다. 한동안 해당 프로그램에 대해서 플밍 리듬을 놓쳤을때 Refactoring 을 시도하는것도 좋은 전략이라 생각.
          * Task 를 작성할때 Refactoring 을 명시적으로 써 놔야 하겠다. Acceptance Test 처럼. 써놓지 않으니까 잊어먹고 자주 안해준 것 같다. 그리고 생각보다 시간이 걸리는 만큼. (이건 Refactoring 을 플밍 중에 자주 해주지 않아서인것 같다. 2시간정도 걸렸으니)
          * DB Schema 궁리 & Recommendation System 을 DB 버전으로 Integration 시도
  • Refactoring/BadSmellsInCode . . . . 39 matches
         Refactoring이 동작하는 매커니즘을 아는 것 만큼 중요한 것은, 언제 Refactoring을 적용할까 하는 것이다.
         내가 이 문제로 Kent Beck 을 방문했을 때 그는 "언제" 를 설명하기 위해서 "Smell" 이라는 표현을 사용했다. 우리는 많은 코드들을 보았고, 그것들을 보면서 Refactoring이 적용가능한 어떤 구조를 발견했다.
         여기에서 우리는 Refactoring이 적용가능한 아주 정확한 척도를 제공하려고는 하지 않을 것이다. 경험상, 어떠한 측정도구들도 숙련된 인간의 직관의 경쟁상대가 될 수는 없었다. 우리가 하려는 것은 Refactoring에 의해 해결될 수 있는 문제들이 있는 몇몇 부분을 지적하려는 것이다.
         어떠한 Refactoring을 해야 할 지 확신할 수 없을때 이 부분을 읽어라. 정확하게 똑같은 Smell을 발견할 순 없더라도 Refactoring에 대한 올바른 방향을 가리켜 줄 지침이 될 것이다.
          * ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
         ExtractMethod, ReplaceTempWithQuery, ReplaceMethodWithMethodObject, DecomposeConditional
         ExtractClass, ExtractSubclass, ExtraceInterface, ReplaceDataValueWithObject
          * When you can get the data in one parameter by making a request of an object you already know about - ReplaceParameterWithMethod
          * to take a bunch of data gleaned from an object and replace it with the object itself - PreserveWholeObject
         ReplaceParameterWithMethod, IntroduceParameterObject, PreserveWholeObject
         == Feature Envy ==
          * ExtractClass, IntroduceParameterObject or PreserveWholeObject
         ExtractClass, IntroduceParameterObject, PreserveWholeObject
         ReplaceValueWithObject, ExtraceClass, IntroduceParameterObject, ReplaceArrayWithObject, ReplaceTypeCodeWithClass, ReplaceTypeCodeWithSubclasses, ["ReplaceTypeCodeWithState/Strategy"]
          * switch-case 부분을 ExtractMethod 한 뒤, polymorphism이 필요한 class에 MoveMethod 한다. 그리고 나서 ReplaceTypeCodeWithSubclasses 나 ["ReplaceTypeCodeWithState/Strategy"] 를 할 것을 결정한다. 상속구조를 정의할 수 있을때에는 ReplaceConditionalWithPolyMorphism 한다.
          * polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
         ReplaceConditionalWithPolymorphism, ReplaceTypeCodeWithSubclasses, ["ReplaceTypeCodeWithState/Strategy"], ReplaceParameterWithExplicitMethods, IntroduceNullObject
          * 사용하지 않는 parameter들을 가진 메소드 - RemoveParameter
          * 추상적인 두리뭉실한 메소드 이름 -_-; - RenameMethod 로 지상으로 내려오도록 하라는.. --;
         CollapseHierarchy, InlineClass, RemoveParameter, RenameMethod
  • MobileJavaStudy/SnakeBite/FinalSource . . . . 34 matches
          g.fillRect(0, 0, getWidth(), getHeight());
          Image splashImage = Image.createImage("/Splash.png");
          private int direction;
          direction = Snake.RIGHT;
          return cellVector.size();
          return (SnakeCell)cellVector.elementAt((headIndex + index) % length());
          public int getDirection() {
          return direction;
          public void setDirection(int direction) {
          this.direction = direction;
          return false;
          return false;
          return true;
          SnakeCell prevHead = getSnakeCell(0);
          SnakeCell currentHead;
          currentHead = new SnakeCell(prevHead.x, prevHead.y);
          cellVector.insertElementAt(currentHead, headIndex);
          currentHead = getSnakeCell(0);
          currentHead.x = prevHead.x;
          currentHead.y = prevHead.y;
  • MoreEffectiveC++/Techniques2of3 . . . . 34 matches
         ["MoreEffectiveC++"]
         == Item 29: Reference counting ==
         Reference counting(이하 참조 세기, 단어가 길어 영어 혼용 하지 않음)는 같은 값으로 표현되는 수많은 객체들을 하나의 값으로 공유해서 표현하는 기술이다. 참조 세기는 두가지의 일반적인 동기로 제안되었는데, '''첫번째'''로 heap 객체들을 수용하기 위한 기록의 단순화를 위해서 이다. 하나의 객체가 만들어 지는데, new가 호출되고 이것은 delete가 불리기 전까지 메모리를 차지한다. 참조 세기는 같은 자료들의 중복된 객체들을 하나로 공유하여, new와 delete를 호출하는 스트레스를 줄이고, 메모리에 객체가 등록되어 유지되는 비용도 줄일수 있다. '''두번째'''의 동기는 그냥 일반적인 생각에서 나왔다. 중복된 자료를 여러 객체가 공유하여, 비용 절약 뿐아니라, 생성, 파괴의 과정의 생략으로 프로그램 수행 속도까지 높이고자 하는 목적이다.
          if (this == &rhs) return *this; // Item E17 참고
          return *this; // Item E15 참고
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_1.gif
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_2.gif
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_185_1.gif
         그리고 여기의 5에 해당 하는 숫자를 '''''Reference count''''' 라고 부른다. 혹자는 ''use count''라고 부르기도 하는데, 학술 용어의 당파에 따른거니 별 상관 안한다. 하지만 나(scott mayer) 그렇게 안부른다.
          === Implementing Reference Counting : 참조 세기 적용 ===
          int refCount; // 참조를 세기위함 카운터
         // StringValue의 복사 생성자, 초기화 목록으로 refCount 인자 1로 초기화
         String::StringValue::StringValue(const char *initValue): refCount(1)
         String s("More Effective C++");
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_187_1.gif
         String s1("More Effective C++");
         String s2("More Effective C++");
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_187_2.gif
         다음과 같다. 여기에서 "More Effective C++" 라는 문자열을 공유한다면, 참조세기가 이루어 지는 것일 거다. 그러기 위해서 String의 복사 생성자는, 참조 카운터를 올리고, 자료를 새로 생성할것이 아니라, 그냥 포인터만 세팅해 주는 일을 해야 한다. 이런 과정을 구현하면
          ++value->refCount; // 참조 카운터를 올린다.
  • JavaNetworkProgramming . . . . 30 matches
          *세마포어(semaphores) : 세마포어란, 자바 객체가 아니라 특별한 형태의 시스템 객체이며, 이객체는 '얻기(get)'와 '놓기(release)'라는 두 가지 기능을 가지고 있다 한 순간에, 오직 하나의 쓰레드만이 세마포어를 얻을 수 있으며(get), 한 쓰레드가 세마포어를 가지고 있는 동안 세마포어를 얻으려고 시도한 다른 쓰레드들은 모두 대기 상태에 들어간다. 다시 쓰레드가 세마포어를 놓으면(release) 다른 쓰레드가 세마포어를 얻고(get) 다시 대기상태로 들어간다. 이런한 매커니즘을 사용하여 특정 작업을 동기화 할수있다.
          *Thread 클래스 : 보통 상속받아서 사용
          public class SubThread extends Thread{
          SubThread subThread = new SubThread();
          subThread.start(); //쓰레드 시작
          *Runnable 인터페이스 : Thread 클래스를 직접 상속받지 않은 클래스의 객체가 손쉽게 쓰레드를 생성할수 있도록 해줌
          public class ThreadDemo implements Runnable{
          protected Thread execution;
          execution = new Thread(this); //Runnable 인터페이스를 구현한 것을 넣어줌
          execution.setPriority(Thread.MIN_PRIORITY); //우선수위를 정함
          Thread myself = Thread.currentThread(); //현재 실행중인 쓰레드를 가져온다.
          *ThreadGroup 클래스 : 여래개의 쓰레드르 그룹으로 만들어 손쉽계 Thread를 관리
          *Thread 통지(notification)메소드 : 주의해야 할 점은, 이 메소드들 호출하는 쓰레들이 반드시 synchronized 블록으로 동기화 되어야 한다는 점이다.
          *OutpuStream,InputStream : 모든 다른 스트림 클래스들의 수퍼클래스이다. 이 Chapter에서는 이둘 클래스 설명
          *OutputStream 클래스 : OutputStream 클래스는 통신 채널로의 관문을 의미한다. 즉, OutputStream으로 데이터를 써넣으면 데이터는 연결된 통신 채널로 전송될 것이다.
          public class SimpleOut { //간단한 OutputStream 예제
          *InputStream 클래스 : InputStream 클래스는 통신 채널로부터 데이터를 읽어 내는 관문을 의미한다. OutputStream에 의해 통신 채널로 쓰여진 데이터는 해당하는 InputStream에 의해 읽혀진다.
          public class SimpleIn { //간단한 InputStream 예제
          int numberRead;
          while((numberRead =System.in.read(buffer))>=0) //가능한 많은 양을 읽는다. EOF가 -1을 반환하면 출력한다.
  • NamedPipe . . . . 30 matches
         A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a
         named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
         Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network.
         Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe.
         VOID InstanceThread(LPVOID); // 쓰레드 함수
         VOID GetAnswerToRequest(LPTSTR, LPTSTR, LPDWORD); // 스레드
          DWORD dwThreadId;
          HANDLE hPipe, hThread; // 쓰레드 핸들
         // The main loop creates an instance of the named pipe and
         // connects, a thread is created to handle communications
         // with that client, and the loop is repeated.
          hPipe = CreateNamedPipe(
          PIPE_ACCESS_DUPLEX, // read/write access
          PIPE_READMODE_MESSAGE | // message-read mode
          MyErrExit("CreatePipe");
          // the function returns a nonzero value. If the function returns // 접속이 될 경우 0 아닌 값이 리턴 되며
          // zero, GetLastError returns ERROR_PIPE_CONNECTED. // 만약 0 값이 리턴이 될 경우 ERROR_PIPE_CONNECTED를 리턴한다.
          // Create a thread for this client. // 연결된 클라이언트를 위한 쓰레드를 생성시킨다.
          hThread = CreateThread(
          (LPTHREAD_START_ROUTINE) InstanceThread, // InstanceThread를 생성시킨다.
  • OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 30 matches
         typedef struct StructReadBlock
          struct StructReadBlock** nextBlocks;
         }SReadBlock;
         SReadBlock* CreateNewBlock(const char* name, const char* contents)
          SReadBlock* newBlock = (SReadBlock*)malloc(sizeof(SReadBlock));
          return newBlock;
         void AddNewTail(SReadBlock* head, SReadBlock* tail)
          SReadBlock** newNextBlocks = (SReadBlock**)malloc(sizeof(SReadBlock*) * (head->nextBlockNumber + 1));
          memcpy(newNextBlocks, head->nextBlocks, sizeof(SReadBlock*) * head->nextBlockNumber);
          free(head->nextBlocks);
         const char* CreateTree(SReadBlock* headBlock, const char* readData)
          SReadBlock* myPoint = NULL;
          while(0 != *readData)
          if ('<' == *readData)
          ++readData;
          if ('/' == *readData)
          readData = strchr(readData, '>');
          ++readData;
          break;
          const char* nameEndPoint = strchr(readData, '>');
  • Gnutella-MoreFree . . . . 28 matches
         = Gnutella-More Free =
          {{{~cpp Response Connection : GNUTELLA OKnn}}}
         || pong || Ping을 받으면 주소와 기타 정보를 포함해 응답한다.Port / IP_Address / Num Of Files Shared / Num of KB Shared** IP_Address - Big endian||
         || queryHit || 검색 Query 조건과 일치한 경우 QueryHit로 응답한다. Num Of Hits 조건에 일치하는 Query의 결과 수 Port / IP_Address (Big-endian) / Speed / Result Set File Index ( 파일 번호 ) File Size ( 파일 크기 )File Name ( 파일 이 / 더블 널로 끝남 ) Servent Identifier 응답하는 Servent의 고유 식별자 Push 에 쓰인다. ||
         || push || 방화벽이 설치된 Servent와의 통신을 위한 DescriptorServent Identifier / File Index / IP_Address(Big-endian)/Port ||
          <File Index>는 파일 번호이고 이는 QueryHit Result에 포함된 내용이다.
          과 같은 HTTP GET request형식으로 응답을 하며 파일을 전송한다.
          기존의 Gnutella가 다른 프로그램(BearShare) 에 의해 서비스 되면서
          ResultSet 마지막 더블널 과 Servent ID사이에 들어간다.
         2. Gnutella Core Code
          2.1 Data Structure
          Gnuclues는 Gnutella 프로젝트 중 OpenSoure로 실제 인터페이스 부분이 열악하다.
          하지만 Gnucleus의 Core 코드 부분의 Docunment가 가장 잘 나와있고 실제로
          또한 Entica에서 필요로하는 Search / MultiThreadDownloader를 지원하며
         void CSearchResults::OnButtonDownload()
         std::list<ResultGroup>::iterator itGroup;
         POSITION pos = m_lstResults.GetFirstSelectedItemPosition();
         int nItem = m_lstResults.GetNextSelectedItem(pos);
         ResultGroup* pGroup = (ResultGroup*) m_lstResults.GetItem(nItem);
         RelayDownload(*pGroup);
  • Memo . . . . 28 matches
         unicode('배','utf-8', 'replace').encode('euc-kr')
         http://www.freenetpages.co.uk/hp/alan.gauld/tutintro.htm
         [http://blog.naver.com/anyray?Redirect=Log&logNo=50006688630 여름인데 놀러갈래!]
         [http://kin.naver.com/knowhow/entry.php?eid=sXanZUDMReh3tKhs1VJ30OlMQ3piSgKm 마지막 사진의 진실은...?]
         Upload:ReadMe.txt
          break;
          break;
          break;
          break;
          char *RecvBuffer = (char *)malloc(MAX_PACKET_SIZE + 1);
          int BytesRecv, FromLen;
          if (RecvBuffer == NULL)
          memset(RecvBuffer, 0, MAX_PACKET_SIZE + 1);
          BytesRecv = recvfrom(Sock, RecvBuffer, MAX_PACKET_SIZE, 0, (sockaddr *)&From, &FromLen);
          if (BytesRecv > 0)
          ProcessPacket(RecvBuffer, BytesRecv);
          printf( "recvfrom() failed.n");
          } while (BytesRecv > 0);
          free(RecvBuffer);
          DWORD BytesReturned;
  • ACM_ICPC . . . . 27 matches
          * [http://icpckorea.org/2015/REGIONAL/scoreboard.html 2015년 스탠딩] - 1Accepted1Chicken Rank 42 (CAU - Rank 18, including Abroad team)
          * [http://icpckorea.org/2016/REGIONAL/scoreboard.html 2016년 스탠딩] - Zaranara murymury Rank 31 (CAU - Rank 13, including Abroad team)
          * [http://icpckorea.org/2017/regional/scoreboard/ 2017년 스탠딩] - NoMonk, Rank 62 (CAU - Rank 35, including Abraod team)
          * [http://icpckorea.org/2018/regional/scoreboard/ 2018년 스탠딩] - ZzikMukMan Rank 50 (CAU - Rank 28, including Abroad team)
          * [http://icpckorea.org/2019/regional/scoreboard/ 2019년 스탠딩] - TheOathOfThePeachGarden Rank 81(CAU - Rank 52, including Abroad team)
          * [http://static.icpckorea.net/2020/scoreboard_terpin/ 2020년 스탠딩] - Decentralization Rank 54(CAU - Rank 35)
          * [http://static.icpckorea.net/2021/scoreboard_regional/ 2021년 스탠딩]
          * [http://static.icpckorea.net/20221119/scoreboard/ 2022년 스탠딩] - HeukseokZZANG Rank 63(CAU - Rank 29)
         == Asia Regional Contest - Seoul (몇년도?) ==
         == 2011 ACM/ICPC Asia Regional - Daejeon ==
         == 2012 ACM/ICPC Asia Regional - Daejeon ==
          * 2012 ACM_ICPC Daejeon Regional 대회 출전
         == 2013 ACM/ICPC Asia Regional - Daejeon ==
          * 2013 ACM_ICPC Daejeon Regional 대회 출전
         == 2014 ACM/ICPC Asia-Daejeon Regional ==
          * 2014 ACM_ICPC Daejeon Regional 대회 출전
         == 2015 ACM/ICPC Asia-Daejeon Regional ==
          * 2015 ACM_ICPC Daejeon Regional 대회 출전
         == 2016 ACM/ICPC Asia-Daejeon Regional ==
          * 2016 ACM_ICPC Daejeon Regional 대회 출전
  • NSIS/Reference . . . . 27 matches
         원문 : http://www.nullsoft.com/free/nsis/makensis.htm
         || || || 0 - License Agreement ||
         || || || 2 - Installation Directory ||
         === Install Directory ===
         || InstallDirRegKey || . || . ||
         || || || 인자는 text buttontext. buttontext 가 없으면 기본적으로 "I Agree" ||
         || SpaceTexts || "필요요구용량" "이용가능한용량" || "Space required:", "Space available:" 에 대한 표현 관련 텍스트 ||
         === Directory Page - 설치할 디렉토리를 선택하는 페이지에 쓰이는 속성들 ===
         || InstallColors || FFFF00 000000 || foregroundcolor backgroundcolor. 또는 /windows 옵션을 이용가능 ||
         || InstProgressFlags || smooth colored|| smooth, colored. colored 를 설정시는 InstallColors 의 색으로 적용 ||
          * SetCompress
         || Section || "ZPTest Defaults Modules (required)" || Section 의 시작을 알린다. Section의 이름을 설정. 만일 Section의 이름이 비어있거나 '-'로 시작되는 경우에는 사용자가 선택할 수 없고, 볼 수도 없다. (즉, 반드시 필요한 Section에 대해). 그리고 가장 처음으로 선언되는 Section은 default Section이 되며 역시 필수 Section이 된다.||
         || Rename || [/REBOOTOK] source_file dest_file || 화일이름을 변경한다. (또는 Move 한다.) ||
         || Delete || [/REBOOTOK] file || 화일을 삭제한다. 와일드카드 사용가능.||
         || RMDir || [/r] directory || 해당 디렉토리를 지운다. (full-path여야함) ||
         === Registry/INI ===
         || WriteRegStr || root_key subkey key_name value || 레지스트리에 기록. root키의 경우 다음이 가능. HKCR - HKEY_CLASSES_ROOT ||
         || || || HKCU - HKEY_CURRENT_USER ||
         || || || HKCC - HKEY_CURRENT_CONFIG ||
         || WriteRegExpandStr || . || . ||
  • JTDStudy/첫번째과제/원명 . . . . 25 matches
          private int correctNumber;
          oneGame.setCorrectNumber();
          int guess = 0, result = 0;
          result = oneGame.compare(guess);
          if (result != 30)
          JOptionPane.showMessageDialog(null, (result / 10) + " Strike, "
          + (result % 10) + " Ball");
          }while (result != 30);
          oneGame.displayResult();
          public void setCorrectNumber()
          correctNumber = setNumber;
          }while (correctNumber == setNumber);
          correctNumber = correctNumber * 10 + setNumber;
          }while (((int)(correctNumber / 10)) == setNumber
          || ((int)(correctNumber % 10)) == setNumber);
          correctNumber = correctNumber * 10 + setNumber;
          String input = JOptionPane.showInputDialog("Enter three different number\n");
          return guess;
          public int compare(int aGuess)
          int compareResult = 0, cCorrect = correctNumber;
  • OpenGL스터디_실습 코드 . . . . 25 matches
         Describe [OpenGL스터디_실습 코드] here
         == 사각형 애니메이션(RecAnime) ==
         //callback for rendering
         void RenderScene(void)
          glRectf(x1, y1, x1+rsize, y1-rsize);
          //if rectangle collision to window x-axis wall, then reverse it's x-axis direction
          //if rectangle collision to window y-axis wall, then reverse it's y-axis direction
          glutPostRedisplay();
          glutCreateWindow("simple -> GLRect -> Bounce");
          glutDisplayFunc(RenderScene);
          glutReshapeFunc(ChangeSize);
          * 1. use up, down, left, right key in your key board. then its direction of viewpoint will be changed.
         //callback for rendering
         void RenderScene(void)
          // Restore transformations
          // Refresh the Window
          glutPostRedisplay();
         //register background color and base drawing color.
          glutCreateWindow("Points");
          glutDisplayFunc(RenderScene);
  • SolarSystem/상협 . . . . 25 matches
         bool fullscreen=TRUE;
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         GLvoid ReSizeGLScene(GLsizei width, GLsizei height)
          glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
          gluQuadricTexture(obj,GL_FALSE);
          return TRUE;
         void CorrectOfCoordinate(float distance,float x,float y, float z)
          gluSphere(obj,1.0f,24,24);
          gluSphere(obj,0.4f,12,12);
          CorrectOfCoordinate(distance2,1.0f,1.0f,0.0f);
          gluSphere(obj,0.2f,12,12);
          CorrectOfCoordinate(distance3,1.0f,1.0f,0.0f);
          gluSphere(obj,0.4f,12,12);
          CorrectOfCoordinate(distance4,0.1f,1.2f,0.0f);
          gluSphere(obj,0.4f,12,12);
          CorrectOfCoordinate(distance5,0.07f,0.06f,0.0f);
          gluSphere(obj,0.4f,12,12);
          CorrectOfCoordinate(distance6,0.0f,1.0f,0.0f);
          gluSphere(obj,0.4f,12,12);
          CorrectOfCoordinate(distance7,0.7f,1.0f,0.0f);
  • 데블스캠프2013/셋째날/머신러닝 . . . . 24 matches
         using System.Threading.Tasks;
          StreamReader reader = new StreamReader(@"C:\ZPDC2013\train_data11293x8165");
          line = reader.ReadLine();
          line = reader.ReadLine();
          reader.Close();
          reader = new StreamReader(@"C:\ZPDC2013\train_class11293x20");
          line = reader.ReadLine();
          line = reader.ReadLine();
          reader.Close();
          reader = new StreamReader(@"C:\ZPDC2013\test_data7528x8165");
          line = reader.ReadLine();
          line = reader.ReadLine();
          reader.Close();
          Console.ReadKey();
         def compare(firstData, secondData):
          return diffSum;
         trainData = open('DataSet/train_data11293x8165').readlines();
         trainClass = open('DataSet/train_class11293x20').readlines();
         testData = open('DataSet/test_data7528x8165').readlines();
          diffValue = compare(testData[i], trainData[j]);
  • AcceleratedC++/Chapter14 . . . . 23 matches
         13.3.1절의 첫번째 해결법에선느 이를 위해서 포인터를 사용하여서 Core 혹은 Core로 부터 파생된 객체들을 생성하여 컬렉션 내부의 포인터들로 가리키도록 하였다. 따라서 이 경우 사용자 코드는 객체의 동적생성, 해제에 관련된 것들을 처리할 책임이 있었다.
         13.5의 Student_info 는 프로그래머가 내부의 Core객체를 볼 수없고, 자동으로 메모리 관리가 되도록은 했으나, 메소드들이 Core클래스의 public연산들을 그대로 따르는 것들이 많다.
          operator bool() const { return p; }
          return *this;
          Handle<Core> p(new Grad); // Handle<Core> == Core*
          // Handle<Core> 는 새로 생성된 Grad를 가리킨다.
          return *p;
          return p;
         #include <iostream>
         using std::streamsize;
         using std::setprecision;
         bool compare_Core_handles(const Handle<Core>& lhs, const Handle<Core>& rhs) {
          return compare(*lhs, *rhs);
          vector< Handle<Core> > students; // changed type
          Handle<Core> record; // changed type
          // read and store the data
          record = new Core; // allocate a `Core' object
          record = new Grad; // allocate a `Grad' object
          record->read(cin); // `Handle<T>::->', then `virtual' call to `read'
          maxlen = max(maxlen, record->name().size()); // `Handle<T>::->'
  • Refactoring/OrganizingData . . . . 23 matches
         ["Refactoring"]
          * You are accessing a field directly, but the coupling to the field is becoming awkward. [[BR]] ''Create getting and setting methods for the field and use only those to access the field.''
          return arg >= _low && arg <= _high;
          return arg >= getLow() && arg <= getHigh();
          int getLow() {return _low;}
          int getHigh() {return _high;}
         == Replace Data Value with Object p175 ==
         http://zeropage.org/~reset/zb/data/ReplaceDateValueWithObject.gif
         == Change Value to Reference p179 ==
          * You have a class with many equal instances that you want to replace with a single object. [[BR]] ''Turn the object into a reference object.''
         http://zeropage.org/~reset/zb/data/ChangeValueToReference.gif
         == Change Reference to Value p183 ==
          * You have a reference object that is small, immutable, and awkward to manage. [[BR]] ''Turn it into a balue object.''
         http://zeropage.org/~reset/zb/data/ChangeReferenceToValue.gif
         == Replace Array with Object p186 ==
          * You have an array in which certain elements mean different things. [[BR]]''Replace the array with an object that has a field for each element.''
         http://zeropage.org/~reset/zb/data/DuplicateObservedData.gif
         == Change Unidirectional Association to Bidirectional p197 ==
          * You have two classes that need to use each other's features, but there is only a one-way link.[[BR]]''Add back pointers, and change modifiers to update both sets.''
         http://zeropage.org/~reset/zb/data/ChangeUnidirectionalAssociationToBidirectional.gif
  • Refactoring/MakingMethodCallsSimpler . . . . 22 matches
         == Rename Method ==
         The name of a method does not reveal its purpose.
         http://zeropage.org/~reset/zb/data/RenameMethod.gif
         A method needs more information from its caller.
         http://zeropage.org/~reset/zb/data/AddParameter.gif
         == Remove Parameter ==
          ''Remove it''
         http://zeropage.org/~reset/zb/data/RemoveParameter.gif
         You have a method that returns a value but also changes the state of an object.
          ''Create two methods, one for the query and one for the modification''
         http://zeropage.org/~reset/zb/data/SeparateQueryFromModifier.gif
         Several methods do similar things but with different values contained in the method body.
          ''Create one method that uses a parameter for the different values''
         http://zeropage.org/~reset/zb/data/ParameterizeMethod.gif
         == Replace Paramter with Explicit Method ==
         You have a method that runs different code depending on the values of an enumerated parameter.
          ''Create a separate method for each value of the parameter''
          Assert.shouldNeverReachHere();
         == Preserve Whole Object ==
         You are getting several values from an object and passing these values as parameters in a method call.
  • 레밍즈프로젝트/프로토타입/파일스트림 . . . . 22 matches
         || 파일복사 프로그램 || [http://blog.naver.com/kds6221.do?Redirect=Log&logNo=140013999545] ||
         || 파일입출력 예제 || [http://blog.naver.com/popo1008.do?Redirect=Log&logNo=20008968622] ||
         || memDC -> bitmap || [http://blog.naver.com/zenix4078.do?Redirect=Log&logNo=11507823] ||
         || Read || Reads (unbuffered) data from a file at the current file position. ||
         || ReadHuge || Can read more than 64K of (unbuffered) data from a file at the current file position. Obsolete in 32-bit programming. See Read. ||
         || Write || Writes (unbuffered) data in a file to the current file position. ||
         || WriteHuge || Can write more than 64K of (unbuffered) data in a file to the current file position. Obsolete in 32-bit programming. See Write. ||
         || Seek || Positions the current file pointer. ||
         || SeekToBegin || Positions the current file pointer at the beginning of the file. ||
         || SeekToEnd || Positions the current file pointer at the end of the file. ||
         || GetLength || Retrieves the length of the file. ||
         || GetPosition || Retrieves the current file pointer. ||
         || GetStatus || Retrieves the status of this open file. ||
         || GetFileName || Retrieves the filename of the selected file. ||
         || GetFileTitle || Retrieves the title of the selected file. ||
         || GetFilePath || Retrieves the full file path of the selected file. ||
         || Rename || Renames the specified file (static function). ||
         || Remove || Deletes the specified file (static function). ||
         || GetStatus || Retrieves the status of the specified file (static, virtual function). ||
          if(!Wfile.Open("TestFile.txt", CFile::modeCreate | CFile::modeWrite))
  • MoniWikiPo . . . . 21 matches
         # Copyright (C) 2003-2006 Free Software Foundation, Inc.
         "POT-Creation-Date: 2006-01-10 19:47+0900\n"
         "PO-Revision-Date: 2003-04-29 19:00+0900\n"
         msgid "Blog cache of \"%s\" is refreshed"
         msgid "Don't add a signature"
         msgid "Previous"
         msgid "Paste a new picture"
         msgid "Preview"
         msgid "You are not allowed to add a comment."
         "Sorry, can not save page because some messages are blocked in this wiki."
         msgid "Preview comment"
         msgid "No difference found"
         msgid "Difference between yours and the current"
         msgid "No older revisions available"
         msgid "Difference between versions"
         msgid "Difference between r%s and r%s"
         msgid "Difference between r%s and the current"
         msgid "Draw new picture"
         msgid "Refresh"
         msgid " (%s search results)"
  • NSIS/예제2 . . . . 21 matches
         http://zeropage.org/~reset/zb/data/nsis_1.gif
         InstallDirRegKey HKLM SOFTWARE\NSIS_Example2 "Install_Dir"
         ; The text to prompt the user to enter a directory
         DirText "Choose a directory to install in to:"
         Section "Example2 (required)"
          ; Set output path to the installation directory.
          WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
          CreateDirectory "$SMPROGRAMS\Example2"
          CreateShortCut "$SMPROGRAMS\Example2\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
          CreateShortCut "$SMPROGRAMS\Example2\Example2 (notepad).lnk" "$INSTDIR\notepad.exe" "" "$INSTDIR\notepad.exe" 0
         http://zeropage.org/~reset/zb/data/nsis_2.gif
         ; The text to prompt the user to enter a directory
         DirText "Choose a directory to install in to:"
         http://zeropage.org/~reset/zb/data/nsis_3.gif
          WriteRegStr HKLM SOFTWARE\NSIS_Example2 "Install_Dir" "$INSTDIR"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "DisplayName" "NSIS Example2 (remove only)"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2" "UninstallString" '"$INSTDIR\uninstall.exe"'
         http://zeropage.org/~reset/zb/data/nsis_4.gif
  • RandomWalk2/재동 . . . . 21 matches
         class ReaderTestCase(unittest.TestCase):
          self.reader = Reader()
          self.reader.readTXT('case_0.txt')
          def testCreateReaderClass(self):
          self.assert_(self.reader)
          def testReadTXT(self):
          self.assertEquals('5 5\n',self.reader.getData()[0])
          self.assertEquals('22224444346\n',self.reader.getData()[2])
          self.assertEquals((5,5),self.reader.getBoardLength())
          self.assertEquals((0,0),self.reader.getStartPoint())
          self.assertEquals(expectPath,self.reader.getPath())
          def testCreateBoardClass(self):
          self.board.readTXT('case_0.txt')
          self.board.readTXT(TXT)
          self.moveRoach.readTXT(TXT)
          def testCreateMoveRoachCalss(self):
          self.board.readTXT(TXT)
          self.moveRoach.readTXT(TXT)
         class Reader:
          def readTXT(self,TXT):
  • Spring/탐험스터디/wiki만들기 . . . . 21 matches
         public String write(@RequestParam("title") String title, @RequestParam("contents") String contents, Model model, Principal principal) {
         page.edit(contents, userRepository.get(principal.getName()));
         <%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
          <input id="contents_edit" type="textarea" class="page_edit" value="${page.contents}" />
          <a href="#" class="page_edit" id="save">save</a>
          <a href="logout">Logout</a>
          * ORM(Object Relation Mapping) 프레임워크. Java persistence, EJB3.0을 같이 알면 좋다.
          * 이전 (리비전 9)에서는 jsp 에서 pageContext.getAttribute("page")로 Response의 page를 불러올 수 있었는데 리비전 10부터 pageContext.getRequst().getAttribute()(또는 request.getAttribute)를 해야 page를 불러올 수 있다. 왜지? 모르겠음. 한참헤멤
          * 그런데 Remember me가 제대로 동작 안 함.
          * ViewResolver? Intercept Handler?
          * User안에서 UserInfo는 Nullable Column이지만 이미 존재하는 UserInfo를 삭제할 때는 ForeignKey Contraint로 인해 에러가 발생된다..
          * 다른 행위(page content view, page history view)를 하지만 더 큰 행위(page view)의 subset이므로 Request주소는 같게 하고 parameter를 달리해 두 행위를 구분하려 했다.
          * 컨트롤러 함수에 인자를 다르게 해서 OverLoading하려 했으나 ResuestMapping이 같아서 Spring이 Ambiguous Mapping Exception을 발생시켰다.
          * RequestMappingHandlerMapping의 매핑 테이블을 보니 {[ URL ], methods=[ Method 타입 ], params=[],headers=[],consumes=[],produces=[],custom=[]}등으로 Request를 구분하고 있었다.
          * @RequestMapping 어노테이션의 설정값들 중에 params를 이용해 파라메터 등록을 할 수 있다. 이렇게 하면 특정 파라메터가 넘어올 때에만 RequestMapping을 할 수 있다.
          * 이를 이용해 RequestMapping의 value값, Method 타입이 같아도 특정 파라메터의 유무로 리퀘스트 핸들링을 달리할 수 있다.
          * 예를들어 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET)''와 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET, params="param=param")''은 다르다. 각각 다른 함수에 mapping될 수 있다.
          * FrontPage가 없을 때에는 Login을 하지 않아도 Page create를 할 수 있었다.
          * spring security에서 "/create" url에 authentication을 설정
          * RequestMapping의 method 타입을 이용해 signup 페이지 호출과 실제 signup을 구분하여 핸들링
  • Refactoring/RefactoringReuse,andReality . . . . 20 matches
         = Chapter 13 Refactoring Reuse, and Reality =
         == A Reality Check ==
         == why Are Developers Reluctant to Refactor Their Programs? ==
         === Understanding Hot and Where to Refactor ===
         === Refactoring to Achive Near-term Benefits ===
         === Reducing the Overhead of Refactoring ===
         === Refactoring Safely ===
         == A Reality Check (Revisited) ==
         == Resources and References for Refactoring ==
         == Implications Regarding Software Reuse and Technology Transfer ==
         == Reference ==
         ["Refactoring"]
  • DataStructure/Queue . . . . 19 matches
          * Front는 큐의 맨 앞을 가르키는 변수, Rear는 큐의 맨 끝 원소를 가르키는 변수
          int m_nRear;
          Queue() {m_nFront=m_nRear=-1;}
          return false;
          if(m_nRear==Size-1 && m_nFront!=m_nRear)
          return true;
          return false;
          m_nData[++m_nRear]=ndata;
          return true;
          return false;
          return true;
          return false;
          if(count==m_nRear)
          break;
          * 원소를 한 90개 넣고 그 원소를 90개 다지우면? Front와 Rear가 각각 89를 가리키게 되겠지요? 그럼 남는 공간은 10-_-개밖에 안됩니다.
          Node* pPrev;
          Node* m_pRear;
          void Remove();
          m_pFront->pPrev=NULL;
          m_pRear=m_pFront;
  • ReverseAndAdd . . . . 19 matches
         === About ReverseAndAdd ===
          || 남상협 || Python || 60분 || [ReverseAndAdd/남상협] ||
          || 신재동 || Python || 30분 || [ReverseAndAdd/신재동] ||
          || 황재선 || Python || 50분 || [ReverseAndAdd/황재선] ||
          || 김회영 || C || ? || [ReverseAndAdd/김회영] ||
          || 문보창 || C++/Python || 90분/20분 || [ReverseAndAdd/문보창] ||
          || 곽세환 || C++ || ? || [ReverseAndAdd/곽세환] ||
          || 이승한 || C++ || 1시간 40분 || [ReverseAndAdd/이승한] ||
          || 김민경 || Python || . || [ReverseAndAdd/민경] ||
          || 김태훈 || Python || . || [ReverseAndAdd/태훈] ||
          || 김정현 || Python || . || [ReverseAndAdd/김정현] ||
          || 정수민 || Python || . || [ReverseAndAdd/정수민] ||
          || 남도연 || Python || . || [ReverseAndAdd/남도연] ||
          || 최경현 || Python || . || [ReverseAndAdd/최경현] ||
          || 김범준 || Python || . || [ReverseAndAdd/김범준] ||
          || [임인택] || [HaskellLanguage] || 5분 || [ReverseAndAdd/임인택] ||
          || [허아영] || C++ || 2시간 || [ReverseAndAdd/허아영] ||
          || [1002] || Python || 5분 || [ReverseAndAdd/1002] ||
          * 처음 주어진 수가 회문이면 ReverseAndAdd연산을 하는건가요 안하는건가요? --[iruril]
  • VonNeumannAirport/1002 . . . . 19 matches
          return 0;
          return 1;
          return traffic;
         여기까진 통과..~ test code 를 Refactoring 해봅니다.
          int departureCitys[] = {1,2};
          Configuration* conf = new Configuration (arrivalCitys, departureCitys);
          vector <int> departureCitys;
          departureCitys.push_back(1);
          departureCitys.push_back(2);
          Configuration* conf = new Configuration (arrivalCitys, departureCitys);
         C:\User\reset\AirportSec\main.cpp(57) : error C2664: '__thiscall Configuration::Configuration(int,int)' : cannot convert parameter 1 from 'class std::vector<int,class std::allocator<int> >' to 'int'
          return traffic;
          vector<int> depatureCitys;
          depatureCitys.push_back(1);
          Configuration* conf = new Configuration (arrivalCitys,depatureCitys);
         1) test: TestOne::testOneToTwoMove (F) line: 66 C:\User\reset\AirportSec\main.c
         Press any key to continue
          return 0;
          vector <int> departureCitys;
          departureCitys.push_back(1);
  • 2학기파이선스터디/서버 . . . . 18 matches
         from SocketServer import ThreadingTCPServer, StreamRequestHandler
         import thread
         lock = thread.allocate_lock() # 상호 배제 구현을 위한 락 객체
          return name in self.users
          conn.send('Already resistered name\n')
          return None
          lock.acquire() # 상호 배제
          lock.release()
          self.broadcastMessage('['+name+']' + ' entered\n')
          return name
          def removeUser(self, name):
          return
          lock.acquire() # 상호 배제
          lock.release()
          return
          self.removeUser(name)
          return -1
         class RequestHandler(StreamRequestHandler):
          print 'connection from', self.client_address
          conn = self.request
  • WinSock . . . . 18 matches
         서버의 경우 1 user 1 thread 임.
         DWORD WINAPI Threading (LPVOID args)
          DWORD nRead, nWrite, i;
          hFileIn = CreateFile ("d:\test.mp3", GENERIC_READ, FILE_SHARE_READ,
          ReadFile (hFileIn, szBuffer, sizeof (szBuffer), &nRead, NULL);
          nSended = send (socket, szBuffer, nRead, NULL);
          printf ("Current : %d / %d (%d)n", dwLow, i, nSended);
          return 0;
          return 0;
          socketListen = socket (AF_INET, SOCK_STREAM, IPPROTO_IP);
          printf ("create socket error.. %dn", WSAGetLastError ());
          return 0;
          return 0;
          return 0;
          WSAEVENT hEvent = WSACreateEvent ();
          WSAEVENT hEvent2 = WSACreateEvent ();
          CreateThread (NULL, NULL, Threading, &socketClient, NULL, &dwTemp);
          if (NetworkEvents.lNetworkEvents & FD_READ) {
          DWORD dwDataReaded;
          printf ("Data Received... n");
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 18 matches
          public List<Integer> frequency;
          frequency = new ArrayList<Integer>();
          FileReader fr = new FileReader(filename);
          BufferedReader br = new BufferedReader(fr);
          line = br.readLine();
          while(st.hasMoreTokens()){
          frequency.set(i, frequency.get(i)+1);
          break;
          frequency.add(1);
          line = br.readLine();
          str = data.get(i) + "\t" + frequency.get(i) + "\n";
          FileReader fr = new FileReader(filename);
          BufferedReader br = new BufferedReader(fr);
          line = br.readLine();
          frequency.add(Integer.parseInt(st.nextToken()));
          line = br.readLine();
          System.out.println(" " + frequency.get(i));
          System.out.println("Frequency size : "+frequency.size());
          public int getArticleLength(){ return articles.size(); }
         import java.io.BufferedReader;
  • 삼총사CppStudy/숙제1/곽세환 . . . . 18 matches
         #include <iostream>
         class CRectangle
          CRectangle();
          CRectangle(int x, int y);
          int GetArea();
          void SetRect(int x, int y);
         CRectangle::CRectangle()
         CRectangle::CRectangle(int x, int y)
         void CRectangle::Draw()
         int CRectangle::GetWidth()
          return width;
         int CRectangle::GetHeight()
          return height;
         int CRectangle::GetBorderLength()
          return 2 * (width + height);
         int CRectangle::GetArea()
          return width * height;
         void CRectangle::SetRect(int x, int y)
          CRectangle rect1(3, 3);
          CRectangle rect2;
  • C++/SmartPointer . . . . 17 matches
         // reference countable smart point
         // circular member setting will not free memory
         // CA will be freed after CB is freed, and vise versa.
         // Memory will not be freed forever.
          struct RefPtr {
          int _Refcnt;
          _Ptr = new RefPtr;
          _Ptr->_Refcnt = 0;
          IncRefcnt();
          IncRefcnt();
          DecRefcnt();
          IncRefcnt();
          return (*this);
          DecRefcnt();
          {return (*get()); }
          {return (get()); }
          {return (_Ptr->_Ptr); }
          _Ty *release() throw ()
          --(_Ptr->_Refcnt);
          if(_Ptr->_Refcnt <= 0)
  • JSP/SearchAgency . . . . 17 matches
         import="java.util.*, java.io.BufferedReader, java.io.InputStreamReader, java.io.FileReader,
          org.apache.lucene.index.IndexReader,
          org.apache.lucene.index.FilterIndexReader,
          class OneNormsReader extends FilterIndexReader {
          public OneNormsReader(IndexReader in, String field) {
          return in.norms(this.field);
          int repeat = 0;
          IndexReader reader = IndexReader.open(index);
          reader = new OneNormsReader(reader, normsField);
          Searcher searcher = new IndexSearcher(reader);
          BufferedReader in = null;
          in = new BufferedReader(new FileReader(queries));
          in = new BufferedReader(new InputStreamReader(System.in));
          request.setCharacterEncoding("UTF-8");
          String line = request.getParameter("keyword");
          if (repeat > 0) { // repeat & time as benchmark
          for (int i = 0; i < repeat; i++) {
          out.println("doc="+hits.id(i)+" score="+hits.score(i));
          break;
          out.print("more (y/n) ? ");
  • Java/ModeSelectionPerformanceTest . . . . 17 matches
          start = System.currentTimeMillis();
          end = System.currentTimeMillis();
          } else if (mode.equals("Three")) {
          doThree(1);
          public void doThree(int i) {
         Seminar:WhySwitchStatementsAreBadSmell 에 걸리지 않을까? 근데.. 그에 대한 반론으로 들어오는것이 '이건 mode 분기이므로 앞에서의 Switch-Statement 에서의 예와는 다른 상황 아니냐. 어차피 분기 이후엔 그냥 해당 부분이 실행되고 끝이다.' 라고 말할것이다. 글쌔. 모르겠다.
         한편으로 느껴지는 것으로는, switch 로 분기를 나눌 mode string 과 웹 parameter 와의 중복이 있을 것이라는 점이 보인다. 그리고 하나의 mode 가 늘어날때마다 해당 method 가 늘어나고, mode string 이 늘어나고, if-else 구문이 주욱 길어진다는 점이 있다. 지금은 메소드로 추출을 해놓은 상황이지만, 만일 저 부분이 메소드로 추출이 안되어있다면? 그건 단 한마디 밖에 할말이 없다. (단, 저 논문을 아는 사람에 한해서) GotoStatementConsideredHarmful.
         === 두번째 - Method reflection ===
         import java.lang.reflect.Method;
         import java.lang.reflect.InvocationTargetException;
         public class MethodFullReflection {
          start = System.currentTimeMillis();
          executeReflection(modeExecute);
          end = System.currentTimeMillis();
          private void executeReflection(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
          public void doThree(int i) {
         단점 : 자바에서는 Method Reflection & Invoke 가 엄청 느리다.; 속도는 밑의꺼 참조.
         import java.lang.reflect.Method;
         import java.lang.reflect.InvocationTargetException;
         public class MethodTableLookupReflection {
  • MobileJavaStudy/SnakeBite/Spec2Source . . . . 17 matches
          private int snakeDirection;
          snakeDirection = Snake.RIGHT;
          return snakeCellVector.size();
          return (SnakeCell)snakeCellVector.elementAt((snakeHeadIndex + index) % length());
          public int getDirection() {
          return snakeDirection;
          public void setDirection(int direction) {
          snakeDirection = direction;
          return false;
          return false;
          return true;
          SnakeCell prevHead = getSnakeCell(0);
          SnakeCell currentHead = getSnakeCell(0);
          currentHead.snakeCellX = prevHead.snakeCellX;
          currentHead.snakeCellY = prevHead.snakeCellY;
          if(snakeDirection == Snake.LEFT)
          currentHead.snakeCellX--;
          else if(snakeDirection == Snake.RIGHT)
          currentHead.snakeCellX++;
          else if(snakeDirection == Snake.UP)
  • MobileJavaStudy/SnakeBite/Spec3Source . . . . 17 matches
          private int direction;
          direction = Snake.RIGHT;
          return cellVector.size();
          return (SnakeCell)cellVector.elementAt((headIndex + index) % length());
          public int getDirection() {
          return direction;
          public void setDirection(int direction) {
          this.direction = direction;
          return false;
          return false;
          return true;
          SnakeCell prevHead = getSnakeCell(0);
          SnakeCell currentHead = getSnakeCell(0);
          currentHead.x = prevHead.x;
          currentHead.y = prevHead.y;
          if(direction == Snake.LEFT)
          currentHead.x--;
          else if(direction == Snake.RIGHT)
          currentHead.x++;
          else if(direction == Snake.UP)
  • 조영준/다대다채팅 . . . . 17 matches
         using System.Threading.Tasks;
         using System.Threading;
         using System.Threading.Tasks;
         using System.Threading;
          Thread t1 = new Thread(new ThreadStart(manageConnection));
          Thread t3 = new Thread(new ThreadStart(ManageChat));
          Console.ReadLine();
          Queue<int> toRemove = new Queue<int>();
          foreach (ChatClient cc in ClientList)
          NetworkStream stream = cc.socket.GetStream();
          stream.Write(byteSend, 0, byteSend.Length);
          toRemove.Enqueue(count);
          while (!(toRemove.Count == 0))
          ClientList.RemoveAt(toRemove.Dequeue()-count);
          string s = Console.ReadLine();
          if (s == "exit") break;
          return DateTime.Now.ToShortTimeString() + ":" + DateTime.Now.Second + "." + DateTime.Now.Millisecond + " ";
         using System.Threading.Tasks;
         using System.Threading;
          private NetworkStream stream;
  • MineFinder . . . . 16 matches
          * 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
          * Main Design, Algorithm 1차 완성. 어느정도 Refactoring의 추구.
         습관성으로 여는 프로그램 Best: 1. Explorer 2. 프리셀 3. 지뢰찾기. -_-;
          * CppUnit - 이번 플밍때 윈도우 메세지 관련 처리에 대해서는 코드를 작성못했다. (이 부분에 대해서는 전통적인 Manual Test방법을 쓸 수 밖에. GUI Testing 관련 글을 더 읽어봐야 겠다. 아직 더 지식이 필요하다.) 단, 나중에 비트맵 분석부분 & Refactoring 시에 TFP 를 할 수 있게 되었다.
         http://zeropage.org/~reset/zb/data/spy_1.gif
         http://zeropage.org/~reset/zb/data/spy_2.gif
         beginner 에 해당하는 메뉴클릭시 발생하는 메세지는 WM_COMMAND 이고, ID는 wParam 으로 521이 날라간다. 즉, 해당 메뉴의 ID가 521 인 것이다. (우리는 컨트롤 아이디를 쓰지만 이는 resource.h 에서 알 수 있듯 전부 #define 매크로 정의이다.) 각각 찾아본 결과, 521,522,523 이였다.
          * [http://zeropage.org/~reset/zb/download.php?id=KDP_board_image&page=1&page_num=20&category=&sn=&ss=on&sc=on&keyword=&prev_no=&select_arrange=headnum&desc=&no=57&filenum=1 1차일부분코드] - 손과 눈에 해당하는 부분 코드를 위한 간단한 예제코드들 모음. 그리고 지뢰찾기 프로그램을 제어하는 부분들에 대해 Delegation 시도. (CMinerControler 클래스는 처음 '막 짠' 코드로부터 지뢰찾기 제어부분 함수들을 클래스화한것임)
          * 지뢰찾기 프로그램의 화면을 Capture, 분석한뒤 데이터화한다.
          * [http://zeropage.org/~reset/zb/download.php?id=KDP_board_image&page=1&page_num=20&category=&sn=&ss=on&sc=on&keyword=&prev_no=&select_arrange=headnum&desc=&no=58&filenum=1 1차제작소스]
          // TODO: Add your control notification handler code here
          // TODO: Add your message handler code here and/or call default
          int nRet = Excute ();
          if (nRet == MINERMODE_CLEAR)
          // TODO: Add your control notification handler code here
          return m_mineSweeper.Excute ();
          CBitmap* pBitmap = CaptureClient ();
          if (m_nCurrentGameMode == MINERMODE_GAMEOVER) {
          return m_nCurrentGameMode;
          int nRet = 0;
  • ProjectPrometheus/CookBook . . . . 16 matches
         === java regular expression ===
         regular expression 패턴을 정의하기 위해서 ["Komodo"] 를 이용할 수도 있다. 또는 Seminar:TddRegularExpression 을 시도해보는 것도 좋다. ["1002"] 는 Python Interpreter 를 이용, 표현식을 찾아냈다.
          protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
          httpServletResponse.setContentType("text/html; charset=euc-kr");
          PrintWriter out = httpServletResponse.getWriter();
          동시에 10개의 타이머 설정 가능. 카운트 다운, 카운트 업 가능. 멈췄다가 프로그램을 다시 시작할 때 지난 시간에서 resume 가능. 단, 메모리 누수 버그가 있다.
         Connection.setRequestProperty("Content-Type", "text/plain");
          HttpServletRequest request,
          HttpServletResponse response)
          //super.service(request, response);
          response.setContentType("text/html; charset=euc-kr");
          request.setCharacterEncoding("KSC5601");
          String serviceName = (String) request.getParameter("service");
         getParameter 가 호출되기 전에 request의 인코딩이 세팅되어야 한다. 현재 Prometheus의 Controller의 경우 service 의 명을 보고 각각의 서비스에게 실행 권한을 넘기는데, 가장 처음에 request의 characterEncoding 을 세팅해야 한다. 차후 JSP/Servlet 컨테이너들의 업그레이드 되어야 할 내용으로 생각됨 자세한 내용은 http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=957572615 참고
         == Resin ==
         resin 에서 홈 디렉토리를 변경하거나 resin 이 실행될때 기본적으로 생기는 디렉토리들(example 등)이 있다.
         === Resin 에서 DB POOL Setting ===
         resin.conf 에 다음을 셋팅해준다. (<caucho.com> 태그 안쪽에 삽입)
         <resource-ref>
          <res-ref-name>jdbc/'reference 이름'</res-ref-name>
  • RandomWalk/임인택 . . . . 16 matches
         #include <iostream>
         // move direction and board.
         int direction_x[]={-1,0,1,1,1,0,-1,-1};
         int direction_y[]={1,1,1,0,-1,-1,-1,0};
         // required variables.
         const int DIRECTION = 8;
          return 0;
          k = rand()%DIRECTION;
          // prevent the roach moves outside of the board
          if(xPos+direction_x[k]<0 || xPos+direction_x[k]>sizeX-1
          || yPos+direction_y[k]<0 || yPos+direction_y[k]>sizeY-1)
          xPos += direction_x[k];
          yPos += direction_y[k];
          break;
          break;
          break;
         === 소스 2 : 1에 [STL]을 사용하고 약간의 [Refactoring] ===
         #include <iostream>
         #define DIRECTION 8
         // move direction and board.
  • Gof/Command . . . . 15 matches
         request 를 객체로 캡슐화 시킴으로서 다른 request들을 가진 클라이언트를 인자화시키거나, request를 queue하거나 대기시키며, undo가 가능한 명령을 지원한다.
         때때로 요청받은 명령이나 request를 받는 객체에 대한 정보없이 객체들에게 request를 넘겨줄 때가 있다. 예를 들어 user interface tookit은 button이나 menu처럼 사용자 입력에 대해 응답하기 위해 요청을 처리하는 객체들을 포함한다. 하지만, 오직 toolkit을 사용하는 어플리케이션만이 어떤 객체가 어떤일을 해야 할지 알고 있으므로, toolkit은 button이나 menu에 대해서 요청에 대해 명시적으로 구현을 할 수 없다. toolkit 디자이너로서 우리는 request를 받는 개체나 request를 처리할 operations에 대해 알지 못한다.
         Command Pattern은 request 를 객체화함으로서 toolkit 객체로 하여금 불특정한 어플리케이션 객체에 대한 request를 만들게 한다. 이 객체는 다른 객체처럼 저장될 수 있으며 pass around 가능하다. 이 pattern의 key는 수행할 명령어에 대한 인터페이스를 선언하는 추상 Command class에 있다. 이 인터페이스의 가장 단순한 형태에서는 추상적인 Execute operation을 포함한다. 구체화된 Command subclass들은 request에 대한 receiver를 instance 변수로 저장하고 request를 invoke하기 위한 Execute operation을 구현함으로서 receiver-action 짝을 구체화시킨다. The receiver has the knowledge required to carry out the request.
         http://zeropage.org/~reset/zb/data/comma081.gif
         어플리케이션은 각각의 구체적인 Command 의 subclass들로 각가각MenuItem 객체를 설정한다. 사용자가 MenuItem을 선택했을때 MenuItem은 메뉴아이템의 해당 명령으로서 Execute oeration을 호출하고, Execute는 실제의 명령을 수행한다. MenuItem객체들은 자신들이 사용할 Command의 subclass에 대한 정보를 가지고 있지 않다. Command subclass는 해당 request에 대한 receiver를 저장하고, receiver의 하나나 그 이상의 명령어들을 invoke한다.
         예를 들어 PasteCommand는 clipboard에 있는 text를 Document에 붙이는 기능을 지원한다. PasteCommand 의 receiver는 인스턴스화할때 설정되어있는 Docuemnt객체이다. Execute 명령은 해당 명령의 receiver인 Document의 Paste operation 을 invoke 한다.
         http://zeropage.org/~reset/zb/data/comma078.gif
         http://zeropage.org/~reset/zb/data/comma079.gif
         때때로 MenuItem은 연속된 명령어들의 일괄수행을 필요로 한다. 예를 들어서 해당 페이지를 중앙에 놓고 일반크기화 시키는 MenuItem은 CenterDocumentCommand 객체와 NormalSizeCommand 객체로 만들 수 있다. 이러한 방식으로 명령어들을 이어지게 하는 것은 일반적이므로, 우리는 복수명령을 수행하기 위한 MenuItem을 허용하기 위해 MacroCommand를 정의할 수 있다. MacroCommand는 단순히 명령어들의 sequence를 수행하는 Command subclass의 구체화이다. MacroCommand는 MacroCommand를 이루고 있는 command들이 그들의 receiver를 정의하므로 명시적인 receiver를 가지지 않는다.
         http://zeropage.org/~reset/zb/data/comma080.gif
         이러한 예들에서, 어떻게 Command pattern이 해당 명령을 invoke하는 객체와 명령을 수행하는 정보를 가진 객체를 분리하는지 주목하라. 이러함은 유저인터페이스를 디자인함에 있어서 많은 유연성을 제공한다. 어플리케이션은 단지 menu와 push button이 같은 구체적인 Command subclass의 인스턴스를 공유함으로서 menu 와 push button 인터페이스 제공할 수 있다. 우리는 동적으로 command를 바꿀 수 있으며, 이러함은 context-sensitive menu 를 구현하는데 유용하다. 또한 우리는 명령어들을 커다란 명령어에 하나로 조합함으로서 command scripting을 지원할 수 있다. 이러한 모든 것은 request를 issue하는 객체가 오직 어떻게 issue화 하는지만 알고 있으면 되기때문에 가능하다. request를 나타내는 객체는 어떻게 request가 수행되어야 할지 알 필요가 없다.
          * 다른 시간대에 request를 구체화하거나 queue하거나 수행하기 원할때. Command 객체는 request와 독립적인 lifetime을 가질 수 있다. 만일 request의 receiver가 공간 독립적인 방법으로 (네트워크 등) 주소를 표현할 수 있다면 프로그래머는 request에 대한 Command 객체를 다른 프로세스에게 전달하여 처리할 수 있다.
          * undo 기능을 지원하기 원할때. Command의 Execute operation은 해당 Command의 효과를 되돌리기 위한 state를 저장할 수 있다. Command 는 Execute 수행의 효과를 되돌리기 위한 Unexecute operation을 인터페이스로서 추가해야 한다. 수행된 command는 history list에 저장된다. history list를 앞 뒤로 검색하면서 Unexecute와 Execute를 부름으로서 무제한의 undo기능과 redo기능을 지원할 수 있게 된다.
          * logging change를 지원하기 원할때. logging change 를 지원함으로서 시스템 충돌이 난 경우에 대해 해당 command를 재시도 할 수 있다. Command 객체에 load 와 store operation을 추가함으로서 change의 log를 유지할 수 있다. crash로부터 복구하는 것은 디스크로부터 logged command를 읽어들이고 Execute operation을 재실행하는 것은 중요한 부분이다.
         == Structure ==
         http://zeropage.org/~reset/zb/data/command.gif
          * ConcreteCommand (PasteCommand, OpenCommand)
          - Receiver 객체와 action 묶음을 정의한다.
          - ConcreteCommand 객체를 만들고 receiver로 정한다.
          - command 에게 request를 수행하도록 요청한다.
  • RecentChangesMacro . . . . 15 matches
         {{{[[RecentChanges(bytesize,nonew|quick|showhost|simple|comment|board|hits)]]}}}
          * bytesize is replaced by item=''number'' and bytesize is ignored
         {{{[[RecentChanges(item=5,board,hits,comment)]]}}}
         [[RecentChanges(item=5,board,hits,comment)]]
         {{{[[RecentChanges(item=10,quick)]]}}}
         [[RecentChanges(item=10,quick)]]
         {{{[[RecentChanges(item=5,nonew)]]}}}
         [[RecentChanges(item=5,nonew)]]
         {{{[[RecentChanges(item=6)]]}}}
         [[RecentChanges(item=6)]]
         {{{[[RecentChanges(item=10,showhost,nonew)]]}}}
         [[RecentChanges(item=10,showhost,nonew)]]
         {{{[[RecentChanges(item=5,table)]]}}}
         [[RecentChanges(item=5,table)]]
         {{{[[RecentChanges(item=5,simple)]]}}}
         [[RecentChanges(item=5,simple)]]
  • ScheduledWalk/석천 . . . . 15 matches
         ["데블스캠프2002"]때 소개했었던 StructuredProgramming 기법을 처음부터 끝까지 진행하는 모습을 보여드립니다. 중간에 버그가 발생하고, 그 버그를 수정한 소스를 그대로 실어봅니다. 그대로 따라해보셔도 좋을듯. 단, 중간 삽질과 컴파일 에러에 겁먹지만 않으신다면. ^^;
         StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
          return 0;
          return 0;
         === Version 0.2 - Refinement ===
         위까진 프로그램의 트리중 1차 레벨이겠고, 이를 조금씩 재정의해나갔습니다. 컴파일 에러는 거의 뭐 무시를..~ 어차피 뼈대이므로. 컴파일 에러나 무한루프 등이 문제가 발생하는 경우엔 일단 void 형으로 리턴값을 적거나 return false; 식으로 채워넣습니다. 일단은 뼈를 잡는게 더 중요하므로.
          return IsJourneyEnd() || IsAllBoardChecked();
         === Version 0.3 - Refinement More ===
          return 0;
          return IsJourneyEnd() || IsAllBoardChecked();
          return false;
          return false;
         typedef struct __IntegerPair { // return 을 하기 위한 구조체 선언
         0 return size;
          return size;
          IntPair testReceiver;
          testReceiver = InputBoardSize();
          printf ("Board Size value : %d, %d \n", testReceiver.n1, testReceiver.n2);
          return position;
         사실 이 방법은 위험합니다. char [] 일 journey 의 사이즈를 모르고 있기 때문이죠. 만일 journey 에서 입력받은 여정의 크기가 클 경우 메모리에러를 발생시킬 수 있습니다. 하지만, 일단은 성능은 따지지 않고 '가장 간단하게 돌아가는 소스' 를 생각하기 위해 그냥 저렇게 남겨둬봅니다. 원래라면 배열의 최대값보다 더 큰 여정이 나왔을 경우의 처리 등을 생각해야 합니다. 단, 이 문제에 대해선 InputRoachJourney () 함수 내로 지역화가 어느정도 가능합니다. 여기서는 Structured Programming 식으로 접근하려는 것이 목적이여서, 세부적인 문제에 대해서는 좀 덜 신경썼습니다.
  • Slurpys/강인수 . . . . 15 matches
         function HasDorEAtFirst (const S: String): Boolean;
         function HasDorEAtFirst (const S: String): Boolean;
          Result := (S[1] = 'D') or (S[1] = 'E');
          Result := (S[APos+1] = 'G') and (APos+1 = Length(S));
          Result := -1;
          Result := i-1;
          Result := False;
          if HasDorEAtFirst (S) = False then
          Result := True;
          Result := True;
          Result := False;
          Result := False;
          Result := (S[2] = 'H');
          Result := IsSlimp(Copy(S,3,Length(S)-3));
          Result := IsSlump(Copy(S,2,Length(S)-2));
          Result := False;
          Result := False;
          Result := True;
  • 레밍즈프로젝트/프로토타입/STLLIST . . . . 15 matches
         || CList 사용 || [http://blog.naver.com/ryudk01.do?Redirect=Log&logNo=120007965930] ||
         || CList || Constructs an empty ordered list. ||
         || GetHead || Returns the head element of the list (cannot be empty). ||
         || GetTail || Returns the tail element of the list (cannot be empty). ||
         || RemoveHead || Removes the element from the head of the list. ||
         || RemoveTail || Removes the element from the tail of the list. ||
         || RemoveAll || Removes all the elements from this list. ||
         || GetHeadPosition || Returns the position of the head element of the list. ||
         || GetTailPosition || Returns the position of the tail element of the list. ||
         || GetPrev || Gets the previous element for iterating. ||
         '''Retrieval/Modification'''
         || RemoveAt || Removes an element from this list, specified by position. ||
         || InsertBefore || Inserts a new element before a given position. ||
         || GetCount || Returns the number of elements in this list. ||
  • 윤종하/지뢰찾기 . . . . 15 matches
          int iIsRevealed;
         void print_map(CELL** map,COORD size,int iNumOfMine,int iCurrentFindedMine);
         void one_right_click_cell(CELL** map,COORD size,COORD *cPosOfMine,int iNumOfMine,int *iFindedRealMine);
         int search_mine(int iNumOfMine,COORD* real_mine_cell,COORD target_cell);
          int iNumOfMine,iCurrentFindedMine=0,iNumOfLeftCell,iIsAlive=TRUE,tempX,tempY,iFindedRealMine=0,i,j;
          print_map(map,size,iNumOfMine,iCurrentFindedMine);
          break;
          one_right_click_cell(map,size,cPosOfMine,iNumOfMine,&iFindedRealMine);
          iCurrentFindedMine++;
          break;
          break;
          for(i=0;i<size.Y;i++) free(map[i]);//2차 동적할당 해제 완료
          free(map);
          free(cPosOfMine);
          break;
          }while(iNumOfLeftCell>iNumOfMine && iIsAlive==TRUE && iFindedRealMine!=iNumOfMine);
          free(cPosOfMine);
          else printf("Unproteted error is occured!\a");
          free(map[i]);//2차 동적할당 해제
          free(map);//1차 동적할당 해제
  • 2002년도ACM문제샘플풀이/문제A . . . . 14 matches
         #include <iostream>
          int overlappedRect;
          overlappedRect = (minPoint.x - maxPoint.x) * (minPoint.y - maxPoint.y);
          if(overlappedRect < 0) overlappedRect = 0;
          outputData[i] -= overlappedRect;
         #include <iostream>
          return x1 == x2;
          return y1 == y2;
          return line.x1 == x1;
          return line.y1 == y1;
          return line.y1 >= y1 && line.y1 <= y2 && x1 >= line.x1 && x1 <= line.x2;
          return line.x1 >= x1 && line.x1 <= x2 && y1 >= line.y1 && y1 <= line.y2;
          return true;
          return false;
          return true;
          return false;
          return false;
         class Rect
          return Line(x1, y1, x2, y1);
          return Line(x2, y1, x2, y2);
  • DNS와BIND . . . . 14 matches
          리소스 레코드들의 (일반적)순서 - SOA(start of authority) 레코드, NS(name server) 레코드, 기타 레코드, A(address), PTR(pointer), CNAME(canonical name)
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
          directory "/usr/local/named";
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
          10800 ; Refresh
          3600 ; Retry
          604800 ; Expire
  • Gof/Composite . . . . 14 matches
         http://zeropage.org/~reset/zb/data/compo075.gif
         CompositePattern의 핵심은 기본요소들과 기본요소들의 컨테이너를 둘 다 표현하는 추상 클래스에 있다. 그래픽 시스템에서 여기 Graphic class를 예로 들 수 있겠다. Graphic 은 Draw 와 같은 그래픽 객체들을 구체화하는 명령들을 선언한다. 또한 Graphic 은 Graphic 의 자식클래스들 (tree 구조에서의 parent-child 관계)에 대해 접근하고 관리하는 명령들과 같은 모든 composite 객체들이 공유하는 명령어들을 선언한다.
         Line, Rectangle, Text 와 같은 서브 클래스들은 (앞의 class diagram 참조) 기본 그래픽 객체들을 정의한다. 이러한 클래스들은 각각 선이나 사각형, 텍스트를 그리는 'Draw' operation을 구현한다. 기본적인 그래픽 구성요소들은 자식요소들을 가지지 않으므로, 이 서브 클래스들은 자식요소과 관련된 명령들을 구현하지 않는다.
         Picture 클래스는 Graphic 객체에 대한 포함관계를 정의한다. Picture 는 Picture의 children의 Draw 메소드를 호출하게끔 Draw 메소드를 구현한다. 그리고 Picture는 child와 관련한 명령어들을 알맞게 구현한다. Picture 인터페이스는 Graphic의 인터페이스를 형성하므로, Picture 객체는 다른 Pricture들을 재귀적으로 조합할 수 있다.
         http://zeropage.org/~reset/zb/data/compo074.gif
         == Structure ==
         http://zeropage.org/~reset/zb/data/compo072.gif
         A typical Composite object structure might look like this:
         http://zeropage.org/~reset/zb/data/compo073.gif
          * Leaf (Rectangle, Line, Text, etc.)
          * composition의 leaf 객체를 표현한다. leaf 는 children를 가지지 않는다.
          * Composite (Picture)
          * children을 가지는 컴포넌트들을 위한 행위를 정의한다.
          * 기본 객체들과 복합 객체들로 구성된 클래스 계층 구조를 정의한다. (상속관계가 아님. 여기서는 일종의 data-structure의 관점) 기본 객체들은 더 복잡한 객체들을 구성할 수 있고, 계속적이고 재귀적으로 조합될 수 있다. 클라이언트 코드가 기본 객체를 원할때 어디서든지 복합 객체를 취할 수 있다.
          const char* Name () { return _name; }
          virtual Currency NetPrice ();
          virtual Currency DiscountPrice ();
          virtual void Remove (Equipment* );
          virtual Iterator<Equipment*>* CreateIterator ();
         Equipment 는 전원소모량 (power consumption)과 가격(cost) 등과 같은 equipment의 일부의 속성들을 리턴하는 명령들을 선언한다. 서브클래스들은 해당 장비의 구체적 종류에 따라 이 명령들을 구현한다. Equipment 는 또한 Equipment의 일부를 접근할 수 있는 Iterator 를 리턴하는 CreateIterator 명령을 선언한다. 이 명령의 기본적인 구현부는 비어있는 집합에 대한 NullIterator 를 리턴한다.
  • JollyJumpers/황재선 . . . . 14 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          * Created on 2005. 1. 4
          * Window - Preferences - Java - Code Style - Code Templates
          return toInt(ch);
          return message.split(" ");
          return nums;
          BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
          message = in.readLine();
          return message;
          public int[] getdifferenceValue() {
          return nums;
          return aNum;
          return aNum;
          return false;
          return true;
          private void printResult(Vector v) {
          j.printResult(v);
          break;
          j.getdifferenceValue();
  • JosephYoder방한번개모임 . . . . 14 matches
          * [https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=1pibLA94VQ8Z1cckW8IOsedbQ9joDuCwwafH93jHDgv3l-ASNn_QW2rGhxrWT&hl=en_US Refactoring Testing and Patterns]
          * Floss Refactoring. 다음에 리팩토링해야지, 언제 날 잡고 리팩토링해야지가 아닌 항상 그 때 할 수 있는 리팩토링을 하자.
         리펙토링 기본 기법에 관해서는 기본적으로 Rename과 함수 분할 등을 Martin Fowler이 지은 Refactoring책을 통해 알수있다고 했다 이러한 리펙토링을 이용하여 청소할 수 있고 리펙토링은 중요하다고 했다. 이거 좋군. 딱 들은 생각. 우선 리펙토링할때는 이름이 최우선적으로 다루어져야한다고 했는데 가장 설명하기 좋고 듣기도 편했던 부분이다. 그 이유는 이름부터가 단축이면 못알아먹기 때문에~~~!! 이라고했다. 그래서 나는 앞으로 길더라도 의미가 되는 단어를 쓰기로 결심했다. 괜히 이름 단축시키지 말자고.
         Test기법에 관해 캔트백의 예를 들며 말해줬는데 코드를 만들때는 되게하고, 완성하고, 최적화시키는 순서로 만들라고했다. 그래서 난 더럽게 우선 돌아가게 짠다. 고 위안했다. Test가 되게 하고 Refactoring을 하고 다시 돌아가게 하고. 순환관계를 다시 보기도했다. 그렇게 하면 영향이 덜가고 잘 돌아가겠지? 라고 생각했다.
         Refactoring과 Pattern은 누가 누구에 속한 관계가 아니라서 적절히 써야한다고했다. 교집합이었다 그림은. 그래 적절히 써야지라고 생각했다.
         강조했던것은 Agile과 Refactoring의 상관관계였는데 둘다 얽히면 굉장한 시너지를 내기 때문에 목적은 달라도 병행해서 쓰면 좋다고했다. Agile을 지금 쓰는 사람 있냐고 물어봤는데 손들기는 뭐했다. Face-to-Face, pair 프로그래밍. Communication 만세다! Agile기법에 대해 Refactoring에 대해 자신의 이념, 이상이 들어간 코드를 만드는 프로그래머가 반대를 한다면 Pair프로그래밍을 통해 '너만의'코드가 아닌 '우리'의 코드라는것을 인식시켜주는게 좋다고 했다. 근데 그런사람이 있을까? 여튼 경험에 우러나온 대답같았다.
         adaptiveobjectmodel은 Joseph이 연구하고 있는 분야로 Refactoring의 상황에 맞는 방법과 패턴의 쓰임세를 지정하는 모델이다. 현재 쓰이는 패턴을 모델화해서 정리해서 했다고한다. 책에서나 보던것을 좀더 정확하고 명확하게 근거있게 설명하는것 같았다. 그리고 Refactoring이 필요한 이유에 대해서는 실제로 이렇게 하면 성공을 하기 때문에 리펙토링을 하는것이 좋다고했는데 이것은 다른것에 비해 약한 근거라고했는데 그 이유는 리펙토링을 안한 더러운 코드도 성공을 하기 때문이라고 했다. 하지만 자신있게 말하자면 리펙토링을 하는것은 좋다고했다.
         변화 -> 추상화 이고 리펙토링이 잘못됬을 경우 그 결과를 뒤집기는 좀 힘들다고했다. 패턴을 알면 장점이 많단다. 초보자가 패턴을 아는척 하면 다친단다. 테스팅과 패턴을 초보자가 하면 좋다. Refactoring을 좀더 잘할려면 첫 걸음은 Rename부터.. 엄청난 프로그래머는 만드는것이 패턴으로 만들어질 수 있지만 대부분 그렇지 않다고 한다. 그러므로 리펙토링을 통해 수준을 높이는 훈련을 해놓는것이 좋다고한다. 그렇게 하면 의식하지 않아도 된단다.
         여러모로 Refactoring에서 나오는 Pattern과 Holub이 주장하는 Design Pattern과는 많았고 옆에서 계속 번역해주시는 창준선배님을 보면서 참 나도 영어 듣기가 녹슬었구나 하는 생각이 들었다. FPS에서 영어를 배워봐야하나. 여러사람이 다양하게 생각하는 Refactoring과 Pattern에 대해 다시한번 좀더 연구할 생각이드는 시간이었다.
          * agile is good for refactoring, 애자일을 사용하면 설계도 리팩토링할 수 있다.
          * refactoring : deciplined technique
          * Internal structure
          1. RENAME METHOD : LOW
  • SubVersion/BerkeleyDBToFSFS . . . . 14 matches
          echo "usage : $0 current_repos "
          cRepos=$1
         nRepos="$cRepos"_fsfs
         echo $cRepos;
         echo $nRepos;
         svnadmin create --fs-type=fsfs $nRepos
         svnadmin dump $cRepos | svnadmin load $nRepos
         mv $cRepos "$cRepos"_back
         mv $nRepos $cRepos
         chown www-data.svnadmin $cRepos -R
         chmod g+w $cRepos -R
  • TestDrivenDatabaseDevelopment . . . . 14 matches
         [1002]의 경우 TDD 로 DB 부분을 만들때 어떻게 진행될까 궁리하던중 두가지를 실험해보았다. 보통은 TDD로 DB 부분을 만들때 DB Repository 부분에 대해서 MockObject 를 만들지만, 다음은 Mock 을 안만들고 작성해봤다. 어떤 일이 일어날까를 생각하며.
         public class SpikeRepositoryTest extends TestCase {
          protected IRepository repository;
          repository= new SpikeRepository(con);
          repository.initialize();
          repository.destroy();
          repository.createArticle(writer, title, body);
          String writerEdited = "writerEdited";
          repository.edit(1, writerEdited, titleEdited, bodyEdited);
          Article article = repository.get(1);
          assertEquals (writerEdited, article.getWriter());
          repository.createArticle(writer, title, body);
          assertEquals (1, repository.getTotalArticle());
          public void testCreateArticle() throws SQLException {
          repository.createArticle(writer, title, body);
          assertEquals (1, repository.getTotalArticle());
          repository.createArticle(writer, title, body);
          repository.delete(1);
          assertEquals (0, repository.getTotalArticle());
          repository.createArticle(writer, title, body);
  • WikiTextFormattingTestPage . . . . 14 matches
         Revised 1/05/01, 5:45 PM EST -- adding "test" links in double square brackets, as TWiki allows.
         This page originated on Wiki:WardsWiki, and the most up-to-date copy resides there. This page has been copied here in order to make a quick visual determination of which TextFormattingRules work for this wiki. Currently it primarily determines how text formatted using the original Wiki:WardsWiki text formatting rules is displayed. See http://www.c2.com/cgi/wiki?WikiOriginalTextFormattingRules.
         If you want to see how this text appears in the original Wiki:WardsWiki, see http://www.c2.com/cgi/wiki?WikiEngineReviewTextFormattingTest
         People reviewing this wiki from the original Wiki:WardsWiki will be referred to this page. If you want to see the review, go to http://www.c2.com/cgi/wiki?WikiEngineReview.
          * CLUG Wiki (older version of WardsWiki, modified by JimWeirich) -- http://www.clug.org/cgi/wiki.cgi?WikiEngineReviewTextFormattingTest
          * Kit-T-Wiki (TWiki 01) -- http://kit.sourceforge.net/cgi-bin/view/Main/WikiReviewTextFormattingTest
          * TWiki (TWiki 03) -- http://twiki.sourceforge.net/cgi-bin/view/TWiki/WikiReviewTextFormattingTest
         http://narasimha.tangentially.com/cgi-bin/n.exe?twiky%20editWiki(%22WikiEngineReviewTextFormattingTest%22)
          * UseMod wiki (UseMod 0.88) -- http://www.usemod.com/cgi-bin/wiki.pl?WikiEngineReviewTextFormattingTest
         This page contains sample marked up text to make a quick visual determination as to which Wiki:TextFormattingRules work for a given wiki. To use the page, copy the text from the edit window, and paste it in the wiki under test. Then read it.
         And, the next logical thing to do is put a page like this on a public wiki running each Wiki:WikiEngine, and link to it from the appropriate Wiki:WikiReview page, as has been done in some cases -- see above.
         If a wiki properly interprets the Wiki:WikiOriginalTextFormattingRules, the text will appear as described here.
          This line, prefixed with one or more spaces, should appear as monospaced text. Monospaced text does not wrap.
          'This text, enclosed within in 1 set of single quotes and preceded by one or more spaces, should appear as monospaced text surrounded by 1 set of single quotes.'
          ''This text, enclosed within in 2 sets of single quotes and preceded by one or more spaces, should appear in monospaced italics.''
          '''This text, enclosed within in 3 sets of single quotes and preceded by one or more spaces, should appear in monospaced bold face type.'''
          ''''This text, enclosed within in 4 sets of single quotes and preceded by one or more spaces, should appear in monospaced bold face type surrounded by 1 set of single quotes.''''
          '''''This text, enclosed within in 5 sets of single quotes and preceded by one or more spaces, should appear in monospaced bold face italics.'''''
          ''''''This text, enclosed within in 6 sets of single quotes and preceded by one or more spaces, should appear as monospaced normal text.''''''
          This line, prefixed with one or more spaces, should appear as monospaced text.
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진 . . . . 14 matches
         import java.io.BufferedReader;
         import java.io.FileReader;
          BufferedReader[] readers = new BufferedReader[] {
          new BufferedReader(new FileReader("package/test/economy/economy.txt")),
          new BufferedReader(new FileReader("package/test/politics/politics.txt")) };
          for (int i = 0; i < readers.length; i++) {
          BufferedReader reader = readers[i];
          for (String line; (line = reader.readLine()) != null;) {
          reader.close();
         import java.io.BufferedReader;
         import java.io.FileReader;
          BufferedReader reader = new BufferedReader(new FileReader(fileName));
          for (String line; (line = reader.readLine()) != null;) {
          reader.close();
          return this;
          return docsCount;
          return count == null ? 1 : count;
          return wordsCount;
          return value;
          return Math.log((double)trainers[index].getDocsCount()/sum);
  • 영호의해킹공부페이지 . . . . 14 matches
          2. All information should be free.
          such degrees, age, race, or position.
          5. You can create art and beauty on a computer.
         The remote buffer overflow is a very commonly found and exploited bug in badly
         coded daemons - by overflowing the stack one can cause the software to execute
         a shell equal to its current UID - thus if the daemon is run as root, like
         many are, a root shell will be spawned, giving full remote access.
         up over the top, or breaking their boundaries.
         removed. This is called LIFO - or last in first out. An element can be added
         to the stack (PUSH) and removed (POP). A stack is made up of stack frames,
         which are pushed when calling a function in code and popped when returning it.
         addresses, or up them. This means that one could address variables in the
         within a frame (FP). This can be used for referencing variables because their
         A buffer overflow is what happens when more data is forced into the stack than
         We can change the return address of a function by overwriting the entire
         with shellcode, designed to spawn a shell on the remote machine, and
         overwriting the return address so that it points back into the buffer, we can
         overflow - there is more to it, but the basics are essential to understand if
         I really didn't feel like reading, so I figured it out myself instead. It took
         trying to get it right so I can just paste it more or less unchanged here -
  • 위키QnA . . . . 14 matches
         A : 묶인 녀석의 font가 1 더 커진 상태 (기존폰트는 10pt) 는 UserPreferences 에서 default.css를 default_2.css 로 바꿔서 보세요.
         === Semi project와 Regular Project 의 기준에 관하여 ===
          * Regular Project 인원 3명이상 - 3명 이상이라면 세미나-스터디의 형태이거나, 단체 프로그램 목표, 기타의 단체 목표 일것이다.
          * Regular Project 2명이하라도 팀원들이 Regular Project 만큼 많은 접근성이나 말이 멋있다고(--;)요구하면, 자유로이 Regular Project에 올린다.
          * 반대로 Semi Project의 Regular Project로의 선택은 막습니다. 이것이 허용되면 구분의 의미가 없겠죠?
          Semi -> Regular 로의 선택의 의미는 뭐지? --석천
          * Regular Project와 Semi Project를 나눈 원래의 취지는 개인이나 2명의 극히 소수가 진행하고 있는 작은 규모와 3명 이상의 단체가 진행하는 일이라고 생각했습니다. 하지만 받아 들이는 입장에서는 다른 의도로 받아 들이지 말아 주세요. 혹은 둘을 구분하는 다른 효과적인 기준을 제시해 주세요.
         ==== Thread About Regular and Semi project ====
         Semi Project에서 인원이 3명 이상이라면 자동으로 Regular Project가 되어야 합니다. 이렇게 한 이유는 Regular Project라면 대문에서 더 다수가 접근할 것이라고 생각되며 eye catch의 시간을 더 줄여야 한다고 생각하기 때문에 이렇게 둔것입니다. 둘의 차이는 인원의 차이 외에 현재 아무것도 없습니다. 그냥 2명 이하라고 하는것 보다 Semi라는 이름이 멋있어서 붙여놨것만 --;; --상민
          현재의 FrontPage가 하는 역할이 좀 많다고 생각하는데. (Long Method 에 대해서는 Refactoring이 필요한 법. --a) FrontPage가 하는 역할들에 대해 페이지들을 슬슬 나누는 것은 어떨까 생각중. --석천
          어이 난 원래 Regular Project와 Semi Proeejct의 의미 부여에 관한 설명과 의논만을 원했어 ^^; --상민
         Q: 어디에 글을 올려야 될지 고민하던 중 이곳에 글을 올립니다. 위키를 쓰다가 얼마전부터 느끼기 시작한 점인데요. 이것이 문제인지 아닌지는 잘 모르겠습니다. 위키의 Recent Changes를 통해 바뀐 글중 관심있는 글들을 봅니다. 변경되었다고 해서 글을 읽어보지만 쉽게 무엇이 변경되었는지 알아볼 수 없었습니다. 시간이 많이 흐른 뒤에나 읽어보게 되는게 아닌가 생각합니다. 아무튼 제가 느끼기에 제가 읽지 않은 부분을 쉽게 알 수 있으면 편하지 않을까 생각합니다. 이미 안다고 생각한 글을 다시 읽어도 많은 도움이 되겠지만... ^^; 세세한 변화는 눈치채기 힘든듯 합니다.--["Benghun"]
  • Chapter II - Real-Time Systems Concepts . . . . 13 matches
         RenameThisPage - Name Space 에 대해서 지켜주기 바람. 그리고 영문제목띄어쓰기에 대해서는 FrontPage 가장 윗 문단 참조바람 --석천
         == What is the Real Time? ==
         리얼 타임이라는 말은 Timing 의 correctness (정확성)에 의해 결정되는 말이다. 이러한 리얼타임은 대략 두가지 부류를 가지고 있다.
         Soft / Hard 가 그 두가지 예라고 할 수 있다. Soft Real Time 이란 말은 Task 의 수행이 가능하면 보다 빠르게 진행 될 수 있게 만들어진시스템을 말한다.
         반에 Hard System이란 특정 시간내에 Task의 작업이 완수 되어야 하는 작업들을 말한다. 대부분의 Real-Time 시스템에서는 두가지
         === Real Time System 의 사용 범위 ===
         === Foreground / Background System ===
         작은 시스템에서는 시스템의 효율성을 위해 보단 간편하고 일반적인 디자인을 사용한다고 한다. 실제로 어플리케이션이 작동하는 부분을 Background System이라고 하며 ISR (interrupt service rountines) 라고 불리우는 인터럽트 부분을 Foreground system이라고 한다.
         === Resource ===
         === Shared Resource ===
         공유 자원이란 하나 이상의 Task가 같은 자원을 쓸 경우를 말한다. 두 Task는 배타적으로 같은 Resouce에 접근을 하며 Data의 파손을 방지한다. 이러한 방식을 mutual exclusion (상호 배타성) 이라고 한다.
         멀티태스킹이란 프로세스의 스케줄과 CPU의 스위칭에 의해 복수의 Task가 실행되는 것을 말한다. 또한 멀티태스킹이란 Back/Fore Ground 처럼 복수의 Task가 운영되는 것을
         태스크는 thread라고도 불린다. 이는 하나의 태스크가 하나의 Stack과 TCB를 가진 경량 프로세스이다.
         READY :: 런닝을 하기 전 준비된 상태,우선순위가 낮아 아직 활성화 되지 않은 상태[[BR]]
         === Non - Preemptive Kernel (비 선점형 커널) ===
         === Preemptive Kernel (선점형 커널) ===
         === Reentrancy ===
          * Figure 2.9를 보면 알 수 있다.
         === Interrupt Response ===
         === Interrupt Recovery ===
  • CppUnit . . . . 13 matches
          http://zeropage.org/~reset/zb/data/TestHierarchy.jpg
          http://zeropage.org/~reset/zb/data/TestRunner.jpg
          === include, library directory 맞춰주기 (둘중 하나를 선택한다.) ===
          a. Tools -> Options -> Directories -> Include files 에서 해당 cppunit
          * Tools -> Options -> Directories -> Library files 에서 역시 lib
          a. Project -> Settings -> C/C++ -> Preprocessor -> Additional include directories
          a. Project -> Settings -> Link -> Input -> Additional Library directories
          * Release Mode : Mulithreaded DLL
          * Debug Mode : Debug Multihreaded DLL
         #include <cppunit/extensions/testfactoryregistry.h>
          runner.addTest ( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
         CPPUNIT_TEST_SUITE_REGISTRATION( ExampleTestCase ); // TestSuite 를 등록하기. TestRunner::addTest 가 필요없다.
         void ExampleTestCase::setUp () // fixture 관련 셋팅 코드.
         void ExampleTestCase::tearDown () // fixture 관련 셋팅 코드.
         #include <iostream>
         #include <cppunit/TextTestResult.h>
         class SimpleTest : public CppUnit::TestFixture {
          CppUnit::TextTestResult result;
          return 0;
          CppUnit::TextTestResult result;
  • EightQueenProblem/밥벌레 . . . . 13 matches
          procedure FormPaint(Sender: TObject);
          procedure Button1Click(Sender: TObject);
         procedure ClearTable;
          Result := 0;
          Inc(Result);
         procedure SetQueens(n: Integer); // 퀸 배치하기. 이 소스의 핵심함수. n은 현재 사용안한다. 처음엔 RandomSeed로 쓰려했음..-_-;
          Break;
          Result := 0;
          Inc(Result);
          Result := 0;
          Inc(Result);
          Result := 0;
          Inc(Result);
          Result := False;
          Result := True;
         procedure DrawQueens;
          r: TRect;
          Form1.Canvas.Brush.Color := clRed
          Form1.Canvas.Rectangle(r);
         procedure TForm1.FormPaint(Sender: TObject);
  • JTDStudy/첫번째과제/상욱 . . . . 13 matches
          private String resultNumber;
          // make a result number
          createResultNumber();
          // show score
          JOptionPane.showMessageDialog(null, checkScore());
          } while(checkScore() != "You are correct!");
          return userNumber = JOptionPane.showInputDialog(null, "Enter number what you think");
          public void createResultNumber() {
          resultNumber = fstNum + secNum + trdNum;
          public String checkScore() {
          if (resultNumber.charAt(i) == userNumber.charAt(j)) {
          return "You are correct!";
          return "" + numOfStrike + " Strike, " + numOfBall + " Ball";
          public void setResultNumber(String resultNumber) {
          this.resultNumber = resultNumber;
          return userNumber;
          public String getResultNumber() {
          return resultNumber;
          public void testCreateResultNumber() {
          object.createResultNumber();
  • TFP예제/WikiPageGather . . . . 13 matches
          * '생각할 수 있는 가장 단순한 것부터 생각하라.' 디자인은 TFP 와 Refactoring의 과정만으로 어느정도 보장이 된다. TFP을 추구하는 이상 기능와 의도에 의한 모듈화가 기본적으로 이루어진다. (여태껏의 경험 -- 그래봤자 3번째지만 -- 에 의하면, TFP를 하면서 LongMethod 냄새가 난 적이 없었다. (LongMethod와 Bad Smell 에 대해서는 BadSmellsInCode를 참조하라.) 만일 중복코드 등의 문제가 발생하더라도 기존의 막무가내식 방식에 비해 그 빈도가 적다. 만일 Bad Smell 이 난다면 ["Refactoring"] 을 하면 된다. (참고로 밑의 소스는 ["Refactoring"]의 과정은 거치지 않았다.)
          self.assertEquals (self.pageGather.GetPageNamesFromPage (), ["LearningHowToLearn", "ActiveX", "Python", "XPInstalled", "TestFirstProgramming", "한글테스트", "PrevFrontPage"])
          def testRemoveHeadLine (self):
          strings = '''=== ExtremeProgramming ===\ntesting.. -_-a\n== TestFirst Programmin ==\nfwe\n'''
          self.assertEquals (self.pageGather.RemoveHeadLine (strings), "testing.. -_-a\nfwe\n")
          self.assertEquals (self.pageGather.GetWikiPage ("FrontPage"), '=== Reading ===\n' +
          '=== ExtremeProgramming ===\n * ["XPInstalled"]\n * TestFirstProgramming\n'+
          ' * ["ÇѱÛÅ׽ºƮ"]\n\n----\n["PrevFrontPage"]\n\n----\n')
         import string, urllib, re
          res = list(pagename)
          for i in range(len(res)):
          c = res[i]
          res[i] = '_%02x' % ord(c)
          return string.joinfields(res, '')
          lines = pagefile.readlines ()
          return page
          def RemoveHeadLine (self, lines):
          resultText = ''
          resultText += line + "\n"
          return resultText
  • WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 13 matches
         Lua-Eclipse를 받아서 깔고. (LunarEclipse라는 것도 있단다)
         Eclipse에서 Java외의 다른것을 돌리려면 당연 인터프리터나 컴파일러를 설치해주어야 한다. 그래서 Lua를 설치하려했다. LuaProfiler나 LuaInterpreter를 설치해야한다는데 도통 영어를 못읽겠다 나의 무식함이 들어났다.
         설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다.
         http://blog.naver.com/declspec?Redirect=Log&logNo=10092640244
         http://www.wowwiki.com/Getting_the_current_interface_number
          break
          repeat
          if(calc >= 0 and calc <= 127) then return 1
          elseif(calc >= 192 and calc <= 223) then return 2
          elseif(calc >= 224 and calc <= 239) then return 3
          elseif(calc >= 240 and calc <= 247) then return 4
          elseif(calc >= 248 and calc <= 251) then return 5
          elseif(calc >= 252 and calc <= 253) then return 6
          else return 0
          return Chosung[cho+1];
          return {type = len, body = str};
          return stringtable, chosungtable
         http://www.castaglia.org/proftpd/doc/contrib/regexp.html
         우선 Lua에서 Frame을 불러오려면 CreateFrame을 해봐야겠지
         CreateFrame()
  • Android/WallpaperChanger . . . . 12 matches
         import android.provider.MediaStore;
         import android.provider.MediaStore.Images.Media;
          private static final int SELECT_PICTURE = 1;
          /** Called when the activity is first created. */
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          //Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
          //i.setType(MediaStore.Images.Media.CONTENT_TYPE);
          startActivityForResult(Intent.createChooser(i, "Select Picture"), SELECT_PICTURE);
          public void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (resultCode == RESULT_OK) {
          if (requestCode == SELECT_PICTURE) {
          String[] projection = { MediaStore.Images.Media.DATA };
          .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
          return cursor.getString(column_index);
          * {{{ manager.setBitmap(Bitmap.createScaledBitmap(b, d.getWidth()*4, d.getHeight(), true)); }}} 왜 * 4냐면 내 폰에 배경화면이 4칸이라 답하겠더라
          /** Called when the activity is first created. */
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          img1.setImageResource(R.raw.wall1);
  • BuildingWikiParserUsingPlex . . . . 12 matches
         Plex 로 Wiki Page Parser 를 만들던중. Plex 는 아주 훌륭한 readability 의 lexical analyzer code 를 만들도록 도와준다.
          def makeToStream(self, aText):
          return cStringIO.StringIO(aText)
          stream = self.makeToStream(aText)
          return WikiParser(stream, self.interWikiMap,self.scriptName, self.macros).linkedLine()
          def repl_bold(self, aText):
          return ("<B>","</B>")[not self.bold]
          def repl_italic(self, aText):
          return ("<I>","</I>")[not self.italic]
          def repl_boldAndItalic(self, aText):
          return ("<I><B>","</B></I>")[not self.italic]
          def repl_ruler(self, aText):
          return "<HR>\n"
          def repl_enter(self, aText):
          return "<BR>\n"
          return "<a href='%(url)s'>%(url)s</a>" % {'url':anUrl}
          return "<img src='%(url)s'>" % {'url':anUrl}
          return extension in imgExtensions
          def repl_url(self, aText):
          return self.getImageStr(aText)
  • ClassifyByAnagram/sun . . . . 12 matches
          * Class, method 이름 refactoring
          elapsed = System.currentTimeMillis();
          InputStream in = null;
          elapsed = System.currentTimeMillis() - elapsed;
          repaint();
          private Hashtable result = new Hashtable();
          Object value = result.get( key );
          result.put( key, list );
          return java.nio.ByteBuffer.wrap( seq );
          if( l >= u ) return;
          if( i > j ) break;
          Hashtable result = new Hashtable();
          public FindAnagram( InputStream in ) throws Exception
          BufferedReader reader = new BufferedReader( new InputStreamReader( in ));
          String readLine;
          while( (readLine=reader.readLine()) != null ) {
          putTable( readLine.trim() );
          Object value = result.get( key );
          result.put( key, list );
          for( Enumeration e=table.keys(); e.hasMoreElements(); ) {
  • JollyJumpers/임인택3 . . . . 12 matches
          jollyResult([H|T], lists:usort(jollySub(H, T, []))).
         jollyResult(Ori, Res) ->
          case (length(Ori)-1 =:= length(Res) andalso lists:sum(Res) =:= trunc((hd(Res)+lists:last(Res))*length(Res)/2)) of
         jollySub(H, [], Res) ->
          Res;
         jollySub(H, [HH|T], Res) ->
          jollySub(HH, T, Res++[abs(H-HH)]).
          receive
  • Kongulo . . . . 12 matches
         # All rights reserved.
         # Redistribution and use in source and binary forms, with or without
         # modification, are permitted provided that the following conditions are
         # * Redistributions of source code must retain the above copyright
         # * Redistributions in binary form must reproduce the above
         # this software without specific prior written permission.
         # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
         # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
         # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
         # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
         # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
         import re
         '''A simple web crawler that pushes pages into GDS. Features include:
          - Can loop, recrawling over previously crawled pages every X minutes
          - When recrawling, uses If-Modified-Since HTTP header to minimize transfers
         Requires Python 2.4 and the win32all extensions for Python 2.4 on Windows.
         # Matches URLs in <a href=...> tags. Chosen above htmllib.HTMLParser because
         # this is much more lenient, not requiring HTML to be valid.
         _LINK_RE = re.compile(r'<\s*(a|img).+href\s*=\s*"?(.+?)"?(\s|>)',
  • NSIS/예제3 . . . . 12 matches
         [http://zeropage.org/~reset/zb/download.php?id=KDP_board_image&page=1&page_num=20&category=&sn=&ss=on&sc=on&keyword=&prev_no=&select_arrange=headnum&desc=&no=50&filenum=1 만들어진Installer] - 실행가능.
         InstProgressFlags smooth colored
          WriteRegStr HKLM SOFTWARE\ZPTetris "Install_Dir" "$INSTDIR"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZPTetris" "DisplayName" "ZPTetris (remove only)"
          WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZPTetris" "UninstallString" '"$INSTDIR\uninstall.exe"'
         SectionDivider " Create StartMenu Shortcuts "
          CreateDirectory "$SMPROGRAMS\ZPTetris"
          CreateShortCut "$SMPROGRAMS\ZPTetris\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
          CreateShortCut "$SMPROGRAMS\ZPTetris\ZPTetris.lnk" "$INSTDIR\tetris.exe"
          DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\ZPTetris"
          DeleteRegKey HKLM SOFTWARE\ZPTetris
         Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
         SpaceTexts: required="필요요구용량" available="이용가능한용량"
         InstProgressFlags: 3 (smooth=1,colored=1)
         File: "Tetris.exe" [compress] 101234/1675339 bytes
         WriteRegStr: HKLM\SOFTWARE\ZPTetris\Install_Dir=$INSTDIR
         WriteRegStr: HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\ZPTetris\DisplayName=ZPTetris (remove only)
         WriteRegStr: HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\ZPTetris\UninstallString="$INSTDIR\uninstall.exe"
         File: "TetrisWnd.h" [compress] 978/2443 bytes
         File: "CH_Global.h" [compress] 357/1272 bytes
  • JavaScript/2011년스터디/CanvasPaint . . . . 11 matches
          function release()
          ctx.clearRect(0,0,window.innerWidth-15, window.innerHeight-50);
          break;
          break;
          break;
          return 0;
          onmouseup="release();" onmouseout="release();" onmousemove="draw();"></canvas>
          <option value="Red">Red</option>
          context.strokeRect(0, 0, window.innerWidth-15, window.innerHeight-50);
          ctx.clearRect(0,0,500,500);
          // ctx.clearRect(0,0,500,500);
          return;
          ctx.clearRect(0,0,500,500)
          ctx.clearRect(0,0,500,500);
          ctx.clearRect(0,0,500,500);
          ctx.clearRect(0,0,500,500);
          ctx.clearRect(0,0,500,500)
  • MoreEffectiveC++ . . . . 11 matches
         http://zeropage.org/~neocoin/data/MoreEffectiveC++.jpg
          * More Effective C++ 의 요약
          ["MoreEffectiveC++/Basic"] S
          * Item 1: Distinguish between pointers and references. - Pointer와 Reference구별해라.
          * Item 2: Prefer C++ style casts.- 스타일의 형변환을 권장한다.
          * Item 3: Never treat arrays polymorphically - 절대로! 클래스 간의 다형성을 통한 배열 취급을 하지 말라
          ["MoreEffectiveC++/Operator"] S
          * Item 6: Distinguish between prefix and postfix forms of increment and decrement operators. - prefix와 postfix로의 증감 연산자 구분하라!
          * Item 8: Understand the differend meanings of new and delete - new와 delete가 쓰임에 따른 의미들의 차이를 이해하라.
          ["MoreEffectiveC++/Exception"], S before 12
          * Item 9: Use destuctors to prevent resource leaks. - 자원이 새는걸 막는 파괴자를 사용해라.
          * Item 10: Prevent resource leaks in constructors. - 생성자에서 자원이 세는걸 막아라.
          * Item 11: Prevent exception from leaving destuctors. - 파괴자로 부터의 예외 처리를 막아라.
          * Item 13: Catch exception by reference - 예외는 참조(reference)로 잡아라.
          ["MoreEffectiveC++/Efficiency"], T
          * Item 16: Remember the 80-20 rule. - 80-20 규칙을 기억해라.
          * Item 20: Facilitate the return value optimization - 반환되는 값을 최적화 하라
          ["MoreEffectiveC++/Techniques1of3"], S or T
          * Item 27: Requiring or prohibiting heap-based objects. - Heap영역을 사용하는 객체 요구하기 or 피하기.
          ["MoreEffectiveC++/Techniques2of3"], T
  • PythonNetworkProgramming . . . . 11 matches
         sock = socket(AF_INET, SOCK_STREAM)
         sock = socket(AF_INET, SOCK_STREAM)
          data = newsock.recv(bufsize)
          data, addr = UDPSock.recvfrom(buf)
          break
          print "\n Received message '", data,"'"
          break
         from threading import *
         class ListenThread(Thread):
          Thread.__init__(self)
          clientConnection, address = self.server.listenSock.accept()
          print address
          self.listenSock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)
          here=('',aPort)
          self.listenSock.bind(here)
          listenThread=ListenThread(self)
          listenThread.start()
         class MyServer (BaseRequestHandler):
          conn = self.request
          print "Requested by ", peername
  • 몸짱프로젝트/CrossReference . . . . 11 matches
         class CrossReference:
         ## return True
         ## return self.find(aRoot.left, aWord)
         ## return self.find(aRoot.right, aWord)
         ## return False
          return aRoot
          return aRoot.left
          return self.getNode(aRoot.left, aWord)
          return aRoot.right
          return self.getNode(aRoot.right, aWord)
          node.increaseCount()
          '''Twas brilling and the slithy toves did gtre and gimble in the wabe'''
          def increaseCount(self):
          return self.word
         class CrossReferenceTestCase(unittest.TestCase):
         ## c = CrossReference()
          c = CrossReference()
          c = CrossReference()
          c = CrossReference()
         ## c = CrossReference()
  • 작은자바이야기 . . . . 11 matches
          * Java 런타임과 [:Java/Reflection 리플렉션]
          * http://mvnrepository.com/
          * '''S'''RP (Single responsibility principle)
          * '''I'''SP (Interface segregation principle)
          * DRY [http://en.wikipedia.org/wiki/Don't_repeat_yourself DRY Wiki]
          * [http://en.wikipedia.org/wiki/Don%27t_repeat_yourself dont repeat yourself] 이걸 걸려고 했나? - [서지혜]
          * Collection 일반화, 순차적 순회, 대부분의 자료구조에서 O(1), 변경하지 않는 한 thread safe
          * run-time의 type erasure
          * Reflection API
          * Generics와 Reflection을 이용한 ObjectMapper 만들기
          * @Retention Annotation에서 나오는 정보가 언제 필요한가의 여부. (RetentionPolicy.RUNTIME) 등
          * Annotation on concrete class
          * Concurrency
          * java.util.concurrent(.atomic)
          * Maven - 의존성(dependency)을 관리해 주는 툴. pom.xml에 프로젝트의 의존성 관련 정보를 적으면 저장소(repository)에서 관련 라이브러리 파일들을 받아서 빌드에 포함시켜 준다.
          * resources - src/main/resources 설정파일 등을 target/classes로 전달. javac를 사용하지 않는다.
          * test-resourecs - src/test/resources의 설정파일 등을 target/test-classes로 전달.
          * mvn install - 패키징된 파일, pom을 .m2/repository에 집어넣는다.
          * mvn release
          * resolve dependencies from workspace projects
  • 3DGraphicsFoundationSummary . . . . 10 matches
          * 어떤 물체를 직선과 곡선의 집합체로 표현한 다음 투영을 통해 테두리를 표시하는 'Wire frame 모델'
         = TextureMapping =
         declare GLuint tex[n]
         declare AUX_RGBImageRec *texRec[n]
         assign LoadBMPFile("filename.bmp") to each texRec[i]
         glGenTextures(count,&tex[0])
         glBindTexture(GL_TEXTURE_2D,tex[i])
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
         glTexImage2D(GL_TEXTURE_2D,0,3,texRec[i]->sizeX
          ,texRec[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE,texRec[i]->data);
         if(texRec[i])
          if(texRec[i]->data)
          free(texRec[i]->data);
          free(texRec[i]);
         glEnable(GL_TEXTURE_2D);
         glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_MODULATE);
         Example of using the texturemapping
          glBindTexture(GL_TEXTURE_2D, tex[0]);
         = Thread =
  • 5인용C++스터디/소켓프로그래밍 . . . . 10 matches
          [클래스위저드]의 CChildSock에 가상 함수 OnReceive()와 OnClose()를 추가한 후 다음 코드를 삽입한다.
          ((CServerApp*)AfxGetApp())->ReceiveData();
          void ReceiveData();
          m_pServer->Create(7000);
         void CServerApp::ReceiveData()
          m_pChild->Receive(temp, sizeof(temp));
          서버와 동일한 방법으로 클라이언트 프로그램에서 사용할 소켓 클래스 CClientSock을 생성(기초 클래스: CAsyncSocket)한다. 그리고 나서 [클래스위저드]의 CClientSock에 가상함수 OnReceive()와 OnClose()를 추가한 후, 다음 코드를 삽입한다.
          ((CClientApp*)AfxGetApp())->ReceiveData();
         IP주소 컨트롤ID : IDC_IPADDRESS1
          CString m_strAddress;
          그리고 [클래스위저드]의 CConnectDlg에 IDOK를 맵핑하여 사용자가 입력한 IP 주소를 멤버변수 m_strAddress에 저장한다.
          GetDlgItemText(IDC_IPADDRESS1, m_strAddress);
          void ReceiveData();
          m_pClient->Create();
          m_pClient->Connect(dlg.m_strAddress, 7000);
         void CClientApp::ReceiveData()
          m_pClient->Receive(temp, sizeof(temp));
         http://www.rein.pe.kr/technote/read.cgi?board=programing&y_number=260&nnew=2
         http://www.rein.pe.kr/technote/read.cgi?board=programing&y_number=261&nnew=2
         http://www.rein.pe.kr/technote/read.cgi?board=programing&y_number=262&nnew=2
  • NSIS . . . . 10 matches
         nsis 는 free software 이며, 소스가 공개되어있다. 관심있는 사람들은 분석해보시길.
          * http://www.nullsoft.com/free/nsis/ - null software 의 nsis 관련 홈페이지.
          * http://www.nullsoft.com/free/nsis/makensitemplate.phtml - .nsi code generator
          * /Olog (log 는 filename) - compile 중 screen 상에 해당 화일에 대한 log를 표시하는 대신 화일로 설정한다.
          MessageBox MB_OK 'And he said to me "Hi there!"' ; this one puts a " inside a string
          CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \
          "Remove all files in your NSIS directory? (If you have anything \
         you created that you want to keep, click No)" \
          IDNO NoRemoveLabel
         NSIS 는 스크립트 기반으로 일종의 배치화일과 같으므로, 예제위주의 접근을 하면 쉽게 이용할 수 있다. ["NSIS/예제1"], ["NSIS/예제2"], ["NSIS/예제3"] 등을 분석하고 소스를 조금씩 용도에 맞게 수정하여 작성하면 쉽게 접근할 수 있을 것이다. 의문이 생기는 명령어나 속성(attribute)에 대해서는 ["NSIS/Reference"] 를 참조하기 바란다.
         === NSIS 에서 인스톨 중 Explorer 창 전부 닫기 ===
         Rename "$INSTDIR\MSVCP60.dll" "$SYSDIR\MSVCP60.dll"
         Section "ThisNameIsIgnoredSoWhyBother?"
         regsvr32.exe 로 dll 을 unregister 한 다음에 전체 폴더를 삭제할 때, regsvr32.exe 는 Exec 가 아닌 ExecWait 로 실행해주어야 한다. (그렇지 않으면 해당 dll 이 unregister 되기 전에 dll 화일이 delete 되어 정상적인 uninstall 이 되지 않을 수도 있다.)
         사용 예 : exec 로 regsvr32.exe 호출시 비동기 호출이 되어 뒤의 delete 문이 실행된다. 이를 방지하기 위한 방법으로 다음과 같이 한다.
          Exec 'regsvr32.exe /u /s "$INSTDIR\COMDLL.dll"'
          FindProcDLL::FindProc "regsvr32.exe"
         Exec 'regsvr32.exe /s "$INSTDIR\${NAME_OF_MY_DLL}"'
         Exec 'regsvr32.exe /s /u "$INSTDIR\${NAME_OF_MY_DLL}"'
         ;Remove the installation directory
  • ProjectGaia/계획설계 . . . . 10 matches
          - 페이지ID | 첫RecordID | FreeSpace | ptrToFree -
          - Record | Record | Record..... -
          - (Record Size) | (R-Size) | (R-Size) -
          - FreeSpace -
          * 페이지에도 첫 {{{~cpp RecordID}}}를 접근할 수 있도록 하였으며,
          * 불필요할 것으로 판단되는 {{{~cpp NumberOfRecord}}} 값은 오버헤드차원에서 삭제처리하였고,,
          * 삽입의 경우.. {{{~cpp FreeSpace>Slot_Size+Record_Size}}}와 비교후에 수행
          1. 페이지ID, 페이지 위치, 첫{{{~cpp RecordID}}}를 찾거나 가는데 IO 수행이 너무 많이 필요하다.
          그렇게 된다면, 첫{{{~cpp RecordID}}}까지도 마스터페이지가 관리하도록 할 것임.
          ==== 1. 레코드 입력 - creat_s() ====
          ==== 2. 레코드 검색 - retrieve_s() ====
          master page의 page 수를 읽고 가장 마지막 page로 간 다음, page header의 freespace size를 삽입 예정 레코드의 크기와 비교하여, 만약 해당 page에 충분한 공간이 있다면 그대로 추가 입력, 충분한 공간이 없다면 다음 page를 생성하고 넣어주는 비신장 가변길이 방법을 이용한다.
          ==== 5. 레코드 교체 - replace_s() ====
          ==== 6. 조각모음 - restruct_s() ====
  • ProjectPrometheus/AT_BookSearch . . . . 10 matches
          "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
         def getSimpleSearchResponse(params):
          conn.request("POST", DEFAULT_SERVICE_SIMPLE_PATH, params, DEFAULT_HEADER)
          response = conn.getresponse()
          print response.status, response.reason
          data = response.read()
          return data
         def getAdvancedSearchResponse(params):
          conn.request("POST", DEFAULT_SERVICE_ADVANCED_PATH, params, DEFAULT_HEADER)
          response = conn.getresponse()
          print response.status, response.reason
          data = response.read()
          return data
          data = getAdvancedSearchResponse(params)
          def testKorean(self):
          data = getAdvancedSearchResponse(params)
          def testKoreanTwo(self):
          data = getAdvancedSearchResponse(params)
          data = getSimpleSearchResponse(params)
          data = getSimpleSearchResponse(params)
  • ProjectPrometheus/Iteration2 . . . . 10 matches
         ||||||Story Name : Recommendation System(RS) Study (Prototype)||
         || view, light review, heavy review 혼합테스트 || 1 || ○ (2시간) ||
         ||||||Acceptance Test (["ProjectPrometheus/AT_RecommendationPrototype"]) ||
         || {{{~cpp ViewBig}}} || view 에 따른 계산 결과 테스트 More || ○ ||
         || {{{~cpp LightReviewBig}}} || light review 에 따른 가중치 계산 결과 테스트 || ○ ||
         || {{{~cpp LightReviewSmall}}} || light review 에 따른 가중치 계산 결과 테스트 More || ○ ||
         || {{{~cpp HeavyReviewSmall}}} || heavy review 에 따른 가중치 계산 결과 테스트 || ○ ||
         || {{{~cpp HeavyReviewBig}}} || heavy review 에 따른 가중치 계산 결과 테스트. More || ○ ||
         || {{{~cpp VLH}}} || View, light review, heavy review 혼합 테스트 || ○ ||
         || {{{~cpp RecommendationBookTest}}}|| 가중치 순서대로 책 리스트 보여주기 테스트 || ○ ||
         || {{{~cpp RecommendationBookListBig}}}|| 가중치 순서대로 책 리스트 보여주기 테스트. More || ○ ||
         || {{{~cpp RecommendationBookListLimitScore}}}|| 특정 가중치 점수 이하대의 책 리스트는 보여주지 않기 테스트. || ○ ||
         || {{{~cpp RecommendationBookListLimitScoreMore}}} || 특정 가중치 점수 이하대의 책 리스트는 보여주지 않기 테스트. More || ○ ||
  • Refactoring/ComposingMethods . . . . 10 matches
          * A method's body is just as clear as its name. [[BR]] ''Put the method's body into the body of its callers and remove the method.''
          return (moreThanFiveLateDeliveries())?2:1;
          boolean moreThanFiveLateDeliveries(){
          return _numberOfLateDeliveries > 5;
          return (_numberOfLateDeliveries>5)?2:1;
          * You have a temp that is assigned to once twith a simple expression, and the temp is getting in the way of other refactorings. [[BR]] ''Replace all references to that temp with the expression.''
          return (basePrice > 1000)
          return (anOrder.BasePrice() > 1000)
         == Replace Temp with Query p120 ==
         ["ReplaceTempWithQuery"]
          * You have a complicated expression. [[BR]] ''Put the result of the expression, or parts of the expression,in a temporary variagle with a name that explains the purpose.''
          wasInittialized() && resize > 0)
          final boolean wasResized = resize > 0;
          if ( isMaxOs && isIEBrowser && wasResized ) {
          * You have a temporary variagle assigned to more than once, bur is not a loop variagle nor a collecting temporary variagle. [[BR]] ''Make a separate temporary variagle for each assignment.''
          final dougle area = _height * _width;
          System.out.println(area);
         == Remove Assignments to Parameters p131 ==
          int result = inputVal;
          if (inputVal > 50) return -= 2;
  • RefactoringDiscussion . . . . 10 matches
         Refactoring 과 관련된 토론, 질문/답변의 장으로 활용한다.
         refactoring 의 전제 조건은, '''Refactoring 전 후의 결과가 같아야 한다.''' 라는 것이다.
         Martin Folwer의 Refactoring p326(한서), 10장의 Parameterize Method 를 살펴보면 다음과 같은 내용이 나온다.
          double result = Math.min(lastUsage(),100) * 0.03;
          result += (Math.min (lastUsage(),200) - 100) * 0.05;
          result += (lastUsage() - 200) * 0.07;
          return new Dollars (result);
          double result = usageInRange(0, 100) * 0.03; //--(1)
          result += usageInRange (100,200) - 100) * 0.05;
          result += usageInRange (200, Integer.MAX_VALUE) * 0.07;
          return new Dollars (result);
          if (lastUsage() > start) return Math.min(lastUsage(),end) - start;
          else return 0;
         '''"MatrinFowler의 추종자들은 lastUsage()가 0 이상인 값에 대해 동작하는것일테니 (코드를 보고 추정하면 그렇다) 당연한거 아니냐?"''' 라고 이의를 제기할지는 모르지만, 이건 Refactoring 에서 한결같이 추구했던 "의도를 명확하게"라는 부분을 Refactoring이라는 도구에 끼워맞추다보니 의도를 불명확하게 한 결과를 낳은것 같다. (["망치의오류"])
         로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
          * 예제 코드로 적절했느냐 - 좀 더 쉽게 의도에 맞게 Refactoring 되어진 것이 이 예제 바로 전인 Raise 이긴 하지만. 그리 좋은 예는 아닌듯 하다. usageInRange 로 빼내기 위해 약간 일부러 일반화 공식을 만들었다고 해야 할까요. 그 덕에 코드 자체만으로 뜻을 이해하기가 좀 모호해졌다는 부분에는 동감.
          * ["Refactoring"]의 Motivation - Pattern 이건 Refactoring 이건 'Motivation' 부분이 있죠. 즉, 무엇을 의도하여 이러이러하게 코드를 작성했는가입니다. Parameterize Method 의 의도는 'couple of methods that do similar things but vary depending on a few values'에 대한 처리이죠. 즉, 비슷한 일을 하는 메소드들이긴 한데 일부 값들에 영향받는 코드들에 대해서는, 그 영향받게 하는 값들을 parameter 로 넣어주게끔 하고, 같은 일을 하는 부분에 대해선 묶음으로서 중복을 줄이고, 추후 중복이 될 부분들이 적어지도록 하자는 것이겠죠. -- 석천
         > { Refactoring(by Martin Fowler)의 잘못된 refactoring }
         우리에겐 프로그램의 옳음(correctness)이 일차적입니다. 이것은 ["UnitTest"]나 Eiffel 같은 DBC 언어로 상당한 정도까지 보장 가능 합니다.
  • VMWare/OSImplementationTest . . . . 10 matches
         http://www.nondot.org/sabre/os/articles
          Protected mode - 처음 부팅할땐 x86 Real Mode라는 세그먼트:오프셋
          VMWare
         - 우리는 디스켓도 사용하지 않고 바로 컴파일해서 이미지로 뜬 후 VMWare
         [BITS 16] ; We need 16-bit intructions for Real
         reset_drive:
          mov ah, 0 ; RESET-command
          jnz reset_drive ; Try again if ah != 0
          mov bx, 0h ; Destination address = 0000:1000
          mov ah, 02h ; READ SECTOR-command
          mov al, 3h ; Number of sectors to read = 1
          jnz reset_drive ; Try again if ah != 0
         A20Address: ; Set A20 Address line here
          ret
          mov ds, ax ; Set DS-register to 0 - used by lgdt
          mov ds, ax ; Move a valid data segment into the data segment register
          mov ss, ax ; Move a valid data segment into the stack segment register
         gdt: ; Address for the GDT
         gdt_code: ; Code segment, read/execute, nonconforming
         gdt_data: ; Data segment, read/write, expand down
  • ZIM/EssentialUseCase . . . . 10 matches
          || Actor Action || System Response ||
          || Actor Action || System Response ||
          || Actor Action || System Response ||
          || Actor Action || System Response ||
          || Actor Action || System Response ||
          || Actor Action || System Response ||
         === Thread ===
         화일 전송시의 System Response는 클라이언트프로그램의 입장에서 써야 하나요? -- 석천
         음. UP 로 Process 진행할 때.. 많은 Requirements를 모두 나열하고..
         처음 Requirements 만들때 각 Requirements 별로 Risk Level 을 정하는 방법이죠..
  • canvas . . . . 10 matches
         #include <iostream>
          virtual void Remove(Shape *pObj){};
         class Rectangle : public Shape{
          cout << "Rectangle" << "\t";
          void Remove(Shape *pObj) {
          Rectangle aRectangle;
          aCompositeShape2.Add(&aRectangle);
          Rectangle aRectangle2;
          aCompositeShape.Add(&aRectangle2);
  • 데블스캠프2006/목요일/winapi . . . . 10 matches
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
          return 0;
         LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
          wndclass.style = CS_HREDRAW | CS_VREDRAW ;
          if (!RegisterClass (&wndclass))
          return 0 ;
          hwnd = CreateWindow (szAppName, // window class name
          NULL, // parent window handle
          NULL) ; // creation parameters
          return msg.wParam ;
         LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
          RECT rect ;
          GetClientRect (hwnd, &rect) ;
          DrawText (hdc, "Hello World!", -1, &rect,
          return 0 ;
          return 0 ;
          return DefWindowProc (hwnd, message, wParam, lParam) ;
         LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  • 만년달력/김정현 . . . . 10 matches
          return 0;
          return days[month-1];
          return 0;
          return getDaysInMonth(month)+1;
          return getDaysInMonth(month);
          return true;
          return true;
          return false;
          return 0;
          return 365 + 1;
          return 365;
          return ( year > 0 ) && ( 0 < month && month <= 12 );
          return ( year > 0 ) && ( 0 < month && month <= 12 )
          return "";
          int reducedDays= getTotalDaysUntil(year, month, day)%dayNames.length;
          return getDayName(reducedDays);
          return dayNames[sequence];
          return 0;
          return totalDays;
          return dayNames;
  • 2dInDirect3d/Chapter2 . . . . 9 matches
         = Creating a Device =
          * IDirect3dDevice8 객체를 만드는 방법
          * 화면을 Present하는 방법
          * 다른(잘못된) Present 파라메터들을 리셋하는 방법
          == IDirect3DDevice 객체를 생성 ==
          이 객체는 IDirect3D 객체와는 달리 실질적일 일을 하는 객체이다. 이 객체를 생성하는 함수는 다음과 같다. IDirect3D 객체는 이것을 생성하기 위해 존재한다고 해도 과언이 아니다.
         HRESULT IDirect3D8::CreateDevice(
          D3DPRESENT_PARAMETERS* pPresentationParameters,
          IDirect3DDevice8** ppReturnedDeviceInterface
          2. BehaviorFlag에는 버텍스를 처리하는 방법을 넣어준다. D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING중 한가지를 사용한다. (사실은 더 많은 옵션이 있다.) 대개 마지막 SOFTWARE를 사용한다.
          3. pPresentationParameters는 D3DPRESENT_PARAMERTERS의 포인터형이다. 저것은 Device의 형태를 결정하는 구조체이다.
          5. 다 사용한 이후는 꼭!! '''Release()'''함수를 사용하여 사용을 해제시킨다.
         HRESULT IDirect3DDevice8::SetViewport(
          == Direct3D에서 사용하는 색상 ==
          Direct3D에서 사용하는 색상은 '''D3DCOLOR''' 이다. (3D에서는 COLORREF였다.) 저것을 정의하는 매크로에는 다음과 같은 세가지가 있다.
         HRESULT IDirect3DDevice::Clear(
          CONST D3DRECT* pRects,
          1. 앞쪽의 두 변수는 함께 움직인다. count에는 0을 넣으면 되고 pRect는 NULL을 넣어주면 된다. count가 0이 아니라면 pRect에는 count의 개수만큼 D3DRECT의 배열이 들어간다. 그 Rect부분만 클리어할 수 있다.
          == Present The Scene ==
          백버퍼에 그림이 들어오거나 클리어 한 경우엔 그것을 앞으로 끌고나와야 한다. 그것을 하는 함수가 Present함수이다.
  • 5인용C++스터디/더블버퍼링 . . . . 9 matches
         #include "resource.h"
         MemDC=CreateCompatibleDC(hdc);
         RECT crt;
         RECT grt;
         GetClientRect(hWndMain,&crt);
          hBit=CreateCompatibleBitmap(hdc,crt.right,crt.bottom);
         hMemDC=CreateCompatibleDC(hdc);
         SetBkMode(hMemDC,TRANSPARENT);
         font=CreateFont(30,0,0,0,0,0,0,0,HANGEUL_CHARSET,3,2,1,
          SetRect(&grt,10+i,my+j,400+i,my+300+j);
          DrawText(hMemDC,szGang,-1,&grt,DT_WORDBREAK);
         SetRect(&grt,10,my,400,my+300);
         DrawText(hMemDC,szGang,-1,&grt,DT_WORDBREAK);
         ReleaseDC(hWndMain,hdc);
         InvalidateRect(hWndMain,NULL,FALSE);
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
         RECT crt;
         case WM_CREATE:
          hBaby=LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1));
          return 0;
  • APlusProject/QA . . . . 9 matches
         Upload:APP_QualityManagementResult0609.zip
         Upload:APP_UnitTestResult_0516-0530.zip - 이전문서
         Upload:APP_UnitTestResult_0601.zip - 최종문서 - 수정끝
         Upload:APP_UnitTestResult_0609.zip -- index랑 페이지수 몇개 틀렸길래 수정해서 올립니다 -- QA승인끝
         Upload:APP_UnificationTestResult_0530.zip - 이전문서
         Upload:APP_UnificationTestResult_0606.zip - 최종문서 - 수정끝
         Upload:APP_UnificationTestResult_0609.zip -- 최종문서 index틀렸길래 수정해서 다시 올렸습니다 -QA승인끝!
         Upload:RiskRequestManagement.zip - 이전문서
         Upload:APP_RiskRequestManagement_0608.zip - 최종문서 - 별로 수정할거 없었음QA승인끝
  • CPPStudy_2005_1/Canvas . . . . 9 matches
          * Draw, Add, Remove 함수를 virtual 함수로 가진다.
         ==== Rectangle ====
          * Add, Remove 도 구현
          * 기본적으로 Triangle, Square 를 가지고 있다.
          * registerNewShape - 새로운 도형을 등록한다.
          Rectangle aRectangle;
          aComposedShape2.Add(&aRectangle);
          Rectangle aRectangle2;
          aComposedShape.Add(&aRectangle2);
          aPallete.registerNewShape(aComposedShape);
  • ClassifyByAnagram/김재우 . . . . 9 matches
         """, outStr.read() )
         """, outStr.read() )
          return string.join( lst, '' ).replace( ' ', '' )
          return self.dictionary
          for line in input.readlines():
          self.addWord( line.replace( '\n', '' ) )
          before = time.time()
          sys.stderr.write( "Elapsed: " + str( time.time() - before ) + "\n" )
          [TestFixture]
          [STAThread]
          String line = Console.ReadLine();
          line = Console.ReadLine();
          writer.Write( myEnumerator.Current );
          return writer.ToString();
          return m_log.ToString();
          Console.Write( (String) le.Current );
          Console.Write( (String) le.Current );
          * Created by IntelliJ IDEA.
          * Created by IntelliJ IDEA.
         import java.io.BufferedReader;
  • JavaStudy2003/세번째과제/노수민 . . . . 9 matches
         //Rectangle.java
         public class Rectangle {
          public Rectangle() {
          info += "Rectangle point_1 x : " + p1.getX() + "\n" +
          "Rectangle point_1 y : " + p1.getY() + "\n" +
          "Rectangle point_2 x : " + p2.getX() + "\n" +
          "Rectangle point_2 y : " + p2.getY() + "\n";
         // MyPictureFrame.java
         class MyPictureFrame {
          private Rectangle rectangle = new Rectangle();
          public MyPictureFrame() {
          rectangle.setData(150,150,240,240);
          rectangle.move(50,50);
          rectangle.draw();
          MyPictureFrame frame = new MyPictureFrame();
         === Thread ===
  • JavaStudy2004/클래스상속 . . . . 9 matches
          예를 들어 Motorcycle클래스와 같이 Car라는 클래스를 만드는 것을 생각하자. Car와 Motorcycle은비슷한 특징들이 있다. 이 둘은 엔진에 의해 움직인다. 또 변속기와 전조등과 속도계를 가지고 있다. 일반적으로 생각하면, Object라는클래스 아래에 Vehicle이라는 클래스를 만들고 엔진이 없는 것과 있는 방식으로 PersonPoweredVehicle과 EnginePoweredVehicle 클래스를 만들 수 있다. 이 EnginePoweredVehicle 클래스는 Motorcycle, Car, Truck등등의 여러 클래스를 가질 수 있다. 그렇다면 make와 color라는 속성은 Vehicle 클래스에 둘 수 있다.
          return x;
          return y;
          return "Point";
          //RECTANGLE
          Rectangle p = new Rectangle(P1,P2);
         // System.out.println(p.getArea());
          System.out.println(c.getArea());
          public double getArea()
          return 0;
          return name;
          public double getArea() {
          return Math.PI * radius * radius;
          return super.getName();
         === Rectangle 클래스 ===
         {{{~cpp public class Rectangle extends Shape {
          public Rectangle() {
          public Rectangle(Point P1, Point P2) {
          name = "Rectangle";
          public Rectangle(int x1, int y1, int x2, int y2) {
  • MoreEffectiveC++/Basic . . . . 9 matches
         ["MoreEffectiveC++"]
         == Item 1: Distinguish between pointers and references. ==
          * Item 1: Pointer와 Reference구별해라.
          Pointers use the "*" and "->" operators, references use "." [[BR]]
          string& rs; // Reference(참조)가 초기화가 되지 않아서 에러
          cout << rd; // rd에 관한 특별한 검사 필요 없다. reference니까.
         사견: Call by Value 보다 Call by Reference와 Const의 조합을 선호하자. 저자의 Effective C++에 전반적으로 언급되어 있고, 프로그래밍을 해보니 괜찮은 편이었다. 단 return에서 말썽이 생기는데, 현재 내 생각은 return에 대해서 회의적이다. 그래서 나는 COM식 표현인 in, out 접두어를 사용해서 아예 인자를 넘겨서 관리한다. C++의 경우 return에 의해 객체를 Call by Reference하면 {} 를 벗어나는 셈이 되는데 어디서 파괴되는 것인가. 다 공부가 부족해서야 쩝 --;
          지역함수 안에서 지역 객체를 생성하여 Reference로 리턴할 경우 지역 함수가 반한되면 지역 객체는 없어질 것이고, 리턴되는 Reference는 존재하지 않는 객체에 대한 다른 이름이 될 것이며, 경우에 따라서 컴파일은 될지모르나 나쁜 코드라고 하네요.-차섭-
          오해의 소지가 있도록 글을 적어 놨군요. in, out 접두어를 이용해서 reference로 넘길 인자들에서는 in에 한하여 reference, out은 pointer로 new, delete로 동적으로 관리하는것을 의도한 말이었습니다. 전에 프로젝트에 이런식의 프로그래밍을 적용 시켰는데, 함수 내부에서 포인터로 사용하는 것보다 in에 해당하는 객체 사용 코딩이 편하더군요. 그리고 말씀하신대로, MEC++ 전반에 지역객체로 생성한 Refernece문제에 관한 언급이 있는데, 이것의 관리가 C++의 가장 큰 벽으로 작용하는 것이 아닐까 생각이 됩니다. OOP 적이려면 반환을 객체로 해야 하는데, 이를 포인터로 넘기는 것은 원칙적으로 객체를 넘긴다고 볼수 없고, 해제 문제가 발생하며, reference로 넘기면 말씀하신데로, 해당 scope가 벗어나면 언어상의 lifetime이 끝난 것이므로 영역에 대한 메모리 접근을 OS에서 막을지도 모릅니다. 단, inline에 한하여는 이야기가 달라집니다. (inline의 코드 교체가 compiler에 의하여 결정되므로 이것도 역시 모호해 집니다.) 아예 COM에서는 OOP에서 벗어 나더라도, 범용적으로 쓰일수 있도록 C스펙의 함수와 같이 in, out 의 접두어와 해당 접두어는 pointer로 하는 규칙을 세워놓았지요. 이 설계가 C#에서 buil-in type의 scalar형에 해당하는 것까지 반영된 것이 인상적이 었습니다.(MS가 초기 .net세미나에서 이 때문에 String 연산 차이가 10~20배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
         == Item 2 : Prefer C++ style casts. ==
         (type) expression
         static_cast<type>(expression)
         const_cast<type>(expression)
         dynamic_cast<type>(expression)
         reinterpret_cast<type>(expression)
          * ''static_cast<type>(expression)''는 기존의 C style에서 사용하는 ''(type)expression'' 와 동일하다. [[BR]]
          * ''const_cast<type>(expression)예제''
          // const_cast<type>(expression) 는
          * ''dynamic_cast<type>(expression)'' 예제
         void updateViaRef(SpecialWidget& rsw);
  • RedThon . . . . 9 matches
          * 참가자 : [김동경](RedThon), 박능규([Redmoon]), 윤성만([Redstar]), 나휘동([Leonardong])
         AnswerMe 혹시 [김동경] 이라는 사람의 개인페이지가 RedThon 이기도 한가요? 그럼 이 페이지의 이름을 바꾸어야 할텐데요?--NeoCoin
          * ThreeFs
          * Redmoon : 파이썬을 다운 설치 실행을 했다. 혼자 크리스마스에 만들었다는걸 믿겠다. 나도 해볼까?
          * Redthon : 휘동이형이 숙제 내줬다. 난감하다. 줄래 열심히 해야겟다.
          * Redstar :
          * [RedThon/HelloWorld과제]
          월요일 A,B반 모두 5시에 마치는거 같습니다. 5시에 바로 하죠??....- [Redmoon] -
  • ReverseAndAdd/신재동 . . . . 9 matches
         === ReverseAndAdd/신재동 ===
         class ReverseAndAdder:
          def reverse(self, number):
          reverseStr = ''
          reverseStr += numberStr[len(numberStr) - i - 1]
          return int(reverseStr)
          return False
          return True
          def reverseAndAdd(self, number):
          number = number + self.reverse(number)
          break
          print 'No reverse and add'
          return None
          return (count, number)
         class ReverseAndAdderTestCase(unittest.TestCase):
          def testReverse(self):
          raa = ReverseAndAdder()
          self.assertEquals(1234, raa.reverse(4321))
          self.assertEquals(12321, raa.reverse(12321))
          raa = ReverseAndAdder()
  • SeminarHowToProgramIt . . . . 9 matches
         애들러의 How to Read a Book과 폴리야의 How to Solve it의 전통을 컴퓨터 프로그래밍 쪽에서 잇는 세미나가 2002년 4월 11일 중앙대학교에서 있었다.
          * Stepwise Refinement -- 진부한 미래, 신선한 과거 (see also NoSmok:ProgrammingOnPurpose )
          * ["Refactoring"] -- 후각 개발법
          * Managing To Do List -- How to Become More Productive Only With a To-do List While Programming
          * What to Read -- Programmer's Reading List
         세미나는 실습/토론 중심의 핸드온 세미나가 될 것이며, 따라서 인원제한이 있어야 할 것임. 약 20명 내외가 적당할 듯. ("Tell me and I forget, teach me, and I may remember, involve me and I learn." -- Benjamin Franklin)
          * Java 3대 : JDK 1.3.1_02, eclipse 2.0 SDK(pre-release), Editplus 설치 및 세팅
          Java 3대 : JDK 1.3.1_02, eclipse 2.0 SDK(pre-release), Editplus 설치 및 세팅
         ==== Thread ====
         ||Stepwise Refinement ||1 ||
         ||["Refactoring"] ||3 ||
         ||Programmer's Journal, Lifelong Learning & What to Read||2 ||
         이 때, OOP가 가능한 언어를 추천하고, 해당 언어의 xUnit 사용법을 미리 익혀오기 바랍니다. (반나절 정도가 필요할 겁니다) http://www.xprogramming.com/software.htm 에서 다운 받을 수 있습니다.
         하지만 동적 자료형 언어를 접하는 것 자체가 큰 장점일 수가 있습니다. 특히 TDD와 Refactoring은 동적 자료형 언어에서 빛을 발하고, 대다수의 DP는 언어 수준에서 지원이 되거나 아주 간단합니다. 20분 정도면 Python을 간략하게 훑을 수는 있습니다.
  • SeminarHowToProgramItAfterwords . . . . 9 matches
         SeminarHowToProgramIt에 대한 감상, 후기, 각종 질답, 논의, ThreeFs.
          * [창섭]:PairProgramming 자체가 인상적이었습니다. 음악을 아마추어로 하는 저로써는 음악외에도 이렇게 멋지게 콤비를 결성할 수 있다는 것에 놀라울 따름입니다. ^^;; 그리고 변수명을 고치는 것 자체가 Refactoring 에 들어가고 매우 중요하다는 사실도 감명이었습니다. ^^;
          * ["1002"] : 어제 Test Code : Product Code 간 중복 (return 0 !) 을 OAOO로 풀어서 Refactoring 을 해야 할 상황으로 규정짓는다는 말이 뒤통수를 한대 때리는 기분이였습니다;;
          * 아까 발표때에도 이야기했지만, Code Review 를 위한 reverse-TDD (정도로 해둘까요? 이것도 관련 문서가 있을텐데. ) 를 해보는 것도 좋을 것 같네요. 코드 분석을 위한 test-code 작성이요. 즉, 이미 만들어져있는 코드를 테스트 코드라고 상정하고, 자신이 제대로 이해했는가에 대한 검증과정을 Test-Code 로 만드는 것이죠. 시간 있었으면 오늘 마저 시도해봤을텐데, 시간에 마음 쫓긴게 아쉽네요.
          * ["Refactoring"] 책에서는 ''Refactor As You Do Code Review'' 에 Code Review 를 위한 Refactoring을 이야기 하는데, Refactoring 을 위해서는 기본적으로 Test Code 가 필요하다고 할때 여기에 Test Code를 붙일테니까 상통하는 면이 있긴 하겠군요.
  • TestDrivenDevelopmentByExample/xUnitExample . . . . 9 matches
          result = TestResult()
          result.testStarted()
          result.testFailed()
          return result
         class TestResult:
          return "%d run, %d failed" %(self.runCount, self.failCount)
          def testResult(self):
          result = self.test.run()
          assert "1 run, 0 failed" == result.summary()
          def testFailedResult(self):
          result = self.test.run()
          assert "1 run, 1 failed" == result.summary()
          def testFailedResultFormatting(self):
          result = TestResult()
          result.testStarted()
          result.testFailed()
          assert "1 run, 1 failed" == result.summary()
         TestCaseTest("testResult").run()
         TestCaseTest("testFailedResult").run()
         TestCaseTest("testFailedResultFormatting").run()
  • TheJavaMan/숫자야구 . . . . 9 matches
          List result = new List();
          up.add(result);
          * Created on 2004. 1. 17.
          * Window - Preferences - Java - Code Generation - Code and Comments
          * Window - Preferences - Java - Code Generation - Code and Comments
          public static String correct_answer;
          correct_answer = "";
          correct_answer += temp[i];
          public static String compare(String aStr){
          if ( correct_answer.compareTo(aStr) == 0)
          return "아웃";
          if ( correct_answer.charAt(i) == aStr.charAt(i))
          if ( correct_answer.charAt(i) == aStr.charAt(j))
          return "찐따-_-";
          return strike + " 스트라이크, "
          * Created on 2004. 1. 17.
          * Window - Preferences - Java - Code Generation - Code and Comments
          * Window - Preferences - Java - Code Generation - Code and Comments
          LowerPanel.input.requestFocus();
          * Created on 2004. 1. 17.
  • UML . . . . 9 matches
         In software engineering, Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. However, the use of UML is not restricted to model software. It can be used for modeling hardware (engineering systems) and is commonly used for business process modeling, organizational structure, and systems engineering modeling. The UML is an open method used to specify, visualize, construct, and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
         This diagram describes the functionality of the (simple) Restaurant System. The Food Critic actor can Eat Food, Pay for Food, or Drink Wine. Only the Chef Actor can Cook Food. Use Cases are represented by ovals and the Actors are represented by stick figures. The box defines the boundaries of the Restaurant System, i.e., the use cases shown are part of the system being modelled, the actors are not.
         The OMG defines a graphical notation for [[use case]]s, but it refrains from defining any written format for describing use cases in detail. Many people thus suffer under the misapprehension that a use case is its graphical notation; when in fact, the true value of a use case is the written description of scenarios regarding a business task.
         This diagram describes the structure of a simple Restaurant System. UML shows [[Inheritance_(computer_science)|Inheritance]] relationships with a [[triangle]]; and containers with [[rhombus|diamond shape]]. Additionally, the role of the relationship may be specified as well as the cardinality. The Restaurant System has any number of Food dishes(*), with one Kitchen(1), a Dining Area(contains), and any number of staff(*). All of these objects are associated to one Restaurant.
         [http://upload.wikimedia.org/wikipedia/en/2/20/Restaurant-UML-SEQ.gif]
         This diagram describes the sequences of messages of the (simple) Restaurant System. This diagram represents a Patron ordering food and wine; drinking wine then eating the food; finally paying for the food. The dotted lines extending downwards indicate the timeline. The arrows represent messages (stimuli) from an actor or object to other objects. For example, the Patron sends message 'pay' to the Cashier. Half arrows indicate asynchronous method calls.
         Above is the collaboration diagram of the (simple) Restaurant System. Notice how you can follow the process from object to object, according to the outline below:
         A Collaboration diagram models the interactions between objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from [[#UML_Class Diagram|Class]], [[#UML_Sequence_Diagram|Sequence]], and [[#UML_Use_Case_Diagram|Use Case Diagrams]] describing both the static structure and dynamic behavior of a system.
         However, collaboration diagrams use the free-form arrangement of objects and links as used in Object diagrams. In order to maintain the ordering of messages in such a free-form diagram, messages are labeled with a chronological number and placed near the link the message is sent over. Reading a Collaboration diagram involves starting at message 1.0, and following the messages from object to object.
         In UML 2.0, the Collaboration diagram has been simplified and renamed the Communication diagram.
         See [http://en.wikipedia.org/wiki/State_diagram#Harel_statechart].
         Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a variation of the state diagram where the "states" represent operations, and the transitions represent the activities that happen when the operation is complete.
         The user starts by filling out the form, then it is checked; the result of the check determines if the form has to be filled out again or if the activity is completed.
         Deployment diagrams serve to model the hardware used in system implementations and the associations between those components. The elements used in deployment diagrams are nodes (shown as a cube), components (shown as a rectangular box, with two rectangles protruding from the left side) and associations.
         This deployment diagram shows the hardware used in a small office network. The application server (node) is connected to the database server (node) and the database client (component) is installed on the application server. The workstation is connected (association) to the application server and to a printer.
         Although UML is a widely recognized and used standard, it is criticized for having imprecise semantics, which causes its interpretation to be subjective and therefore difficult for the formal test phase. This means that when using UML, users should provide some form of explanation of their models.
         Another problem is that UML doesn't apply well to distributed systems. In such systems, factors such as serialization, message passing and persistence are of great importance. UML lacks the ability to specify such things. For example, it is not possible to specify using UML that an object "lives" in a [[server]] process and that it is shared among various instances of a running [[process]].
         At the same time, UML is often considered to have become too bloated, and fine-grained in many aspects. Details which are best captured in source code are attempted to be captured using UML notation. The [[80-20 rule]] can be safely applied to UML: a small part of UML is adequate for most of the modeling needs, while many aspects of UML cater to some specialized or esoteric usages.
         (However, the comprehensive scope of UML 2.0 is appropriate for [[model-driven architecture]].)
         A third problem which leads to criticism and dissatisfaction is the large-scale adoption of UML by people without the required skills, often when management forces UML upon them.
  • 데블스캠프2004/금요일 . . . . 9 matches
          * BufferedReader - 캐릭터, 배열, 행을 버퍼링 하는 것에 의해, 캐릭터형 입력 스트림으로부터 텍스트를 읽어들인다
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          static BufferedReader breader;
          breader
          = new BufferedReader(new InputStreamReader(System.in));
          return Integer.parseInt(breader.readLine());
          return breader.readLine();
          breader = new BufferedReader(new InputStreamReader(System.in));
          * repaint() 메소드를 사용
          repaint();
         == Code Review - 어떤 생각을 하며 작성했나요? ==
         == Structured Programming 소개 ==
          gateway = sc.createGateway ()
          z1 = gateway.createZealot ()
          d1 = gateway.createDragoon ()
  • 임시 . . . . 9 matches
         Children's Books: 4
         Literature & Fiction: 17
         Outdoors & Nature: 290060
         Parenting & Families: 20
         Reference: 21
         Religion & Spirituality: 22
         http://blog.naver.com/heavenksm?Redirect=Log&logNo=80023759933 소켓에 대한 기본 지식
         In the first stage, you will write a multi-threaded server that simply displays the contents of the HTTP request message that it receives. After this program is running properly, you will add the code required to generate an appropriate response.
         &AWSAccessKeyId=[Your Access Key ID Here]
         &Manufacturer=Callaway
         API Reference - Search Index Values
         API Reference - Response Groups - Request, Small, Medium, Large, Image, ...
         This section explains how to use REST (Representational State Transfer) to make requests through Amazon E-Commerce Service (ECS). REST is a Web services protocol that was created by Roy Fielding in his Ph.D. thesis (see Architectural Styles and the Design of Network-based Software Architectures for more details about REST).
         REST allows you to make calls to ECS by passing parameter keys and values in a URL (Uniform Resource Locator). ECS returns its response in XML (Extensible Markup Language) format. You can experiment with ECS requests and responses using nothing more than a Web browser that is capable of displaying XML documents. Simply enter the REST URL into the browser's address bar, and the browser displays the raw XML response.
         SearchIndex : Books, Toys, DVD, Music, VideoGames, Software or any other of Amazon's stores
  • AseParserByJhs . . . . 8 matches
         RenameThisPage - 적저한 이름과 하는 일이 필요할것 같아서. 궁리중 --["1002"]
         #define NUM_TEXTURE "*MATERIAL_COUNT"
         #define TEXTURE "*BITMAP"
         #define TEXTURE_ID "*MATERIAL_REF"
         #define WIREFRAME_COLOR "*WIREFRAME_COLOR"
         #define OBJECT_PARENT "*NODE_PARENT"
          int coordIndex[3]; // indicies for the tex coords to texture this face
         // texture information for the model
          char texName[51]; // texture name
          int texId; // texture id
          vec_t uTile; // u tiling of texture
         } texture_t;
          virtual void Render (void* pArg) {};
          static void ReleaseModels (); // s_AllList상의 모든 노드를 삭제한다.
          bool bResult;
          return false;
          bResult = GetAseAllInfo (s);
          if (strcmp (pNodeList [i1]->ParentName, "")) {
          !strcmp (pNodeList [i1]->ParentName, pNodeList [i2]->Name))
          pNodeList [i1]->SetParent (pNodeList [i2]); // 자식에게 부모가 누구인지 지정
  • ClassifyByAnagram/Passion . . . . 8 matches
         import java.io.BufferedOutputStream;
         import java.io.BufferedReader;
         import java.io.ByteArrayInputStream;
         import java.io.FileInputStream;
         import java.io.FileOutputStream;
         import java.io.InputStream;
         import java.io.InputStreamReader;
         import java.io.PrintStream;
          this(new FileInputStream(file));
          Hashtable result;
          InputStream ins;
          public Parser(InputStream in) {
          ByteArrayInputStream byteInputStream = new ByteArrayInputStream( input.getBytes() );
          this.ins = byteInputStream;
          result = new Hashtable();
          List itemList = (List)result.get(itemKey);
          if (isCreated(itemList))
          itemList = createNewEntry(itemKey);
          private List createNewEntry(String itemKey) {
          result.put(itemKey, itemList);
  • EuclidProblem/Leonardong . . . . 8 matches
         #include <iostream.h>
          long remain;
          remain = big % small;
          if ( remain == 0 )
          return small;
          small = remain;
          long xResult = max(A,B), yResult = max(A,B);
          if ( abs(xResult) + abs(yResult) > abs(x) + abs(int(y)) ){
          xResult = x;
          yResult = int(y);
          cout << xResult << " " << yResult << " " << gcd(A,B) << endl;
  • ExtremeProgramming . . . . 8 matches
         ExtremeProgramming 은 경량개발방법론으로서, RUP 등의 방법론에 비해 그 프로세스가 간단하다. XP 에서의 몇몇 개념들은 일반적인 프로그래밍에서도 유용하게 쓰일 수 있다. 특히 TestDrivenDevelopment(TestFirstProgramming) 의 개념과 Refactoring, UnitTest는 초기 공부할때 혼자서도 실습을 해볼 수 있는 내용이다. 개인 또는 소그룹의 훈련으로도 이용할 수 있을 것이다.
         http://extremeprogramming.org/map/images/project.gif
         Iteration 중에는 매일 StandUpMeeting 을 통해 해당 프로그램의 전반적인 디자인과 Pair, Task 수행정도에 대한 회의를 하게 된다. 디자인에는 CRCCard 과 UML 등을 이용한다. 초기 디자인에서는 세부적인 부분까지 디자인하지 않는다. XP에서의 디자인은 유연한 부분이며, 초반의 과도한 Upfront Design 을 지양한다. 디자인은 해당 프로그래밍 과정에서 그 결론을 짓는다. XP의 Design 은 CRCCard, TestFirstProgramming 과 ["Refactoring"], 그리고 StandUpMeeting 나 PairProgramming 중 개발자들간의 대화를 통해 지속적으로 유도되어지며 디자인되어진다.
         개발시에는 PairProgramming 을 한다. 프로그래밍은 TestFirstProgramming(TestDrivenDevelopment) 으로서, UnitTest Code를 먼저 작성한 뒤 메인 코드를 작성하는 방식을 취한다. UnitTest Code -> Coding -> ["Refactoring"] 을 반복적으로 한다. 이때 Customer 는 스스로 또는 개발자와 같이 AcceptanceTest 를 작성한다. UnitTest 와 AcceptanceTest 로서 해당 모듈의 테스트를 하며, 해당 Task를 완료되고, UnitTest들을 모두 통과하면 Integration (ContinuousIntegration) 을, AcceptanceTest 를 통과하면 Release를 하게 된다. ["Refactoring"] 과 UnitTest, CodingStandard 는 CollectiveOwnership 을 가능하게 한다.
          * TestDrivenDevelopment : Programming By Intention. 프로그래머의 의도를 표현하는 테스트코드를 먼저 작성한다. 그렇게 함으로서 단순한 디자인이 유도되어진다. (with ["Refactoring"])
          * ["Refactoring"] : 코드를 향상시키기 위한 프로세스
          * http://extremeprogramming.org - 처음에 읽어볼만한 전체도.
          * [http://www.trireme.com/whitepapers/process/xp-uml/xp-uml-short_files/frame.htm eXtremeProgrammingMeetsUML] - 아직 읽어보지 않았음.
          * http://www.freemethod.org:8080/bbs/BBSView?boardrowid=3220 - 4가지 가치 (Communication, Simplicity, Feedback, Courage)
          * http://www.freemethod.org:8080/bbs/BBSView?boardrowid=3111 - 4가지 변수 (Resource, Quality, Time, Scope)
  • JSP/FileUpload . . . . 8 matches
          String contentType = request.getContentType();
          DataInputStream in = new DataInputStream(request.getInputStream());
          int formDataLength = request.getContentLength();
          int byteRead = 0;
          int totalBytesRead = 0;
          while (totalBytesRead < formDataLength) {
          byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
          totalBytesRead += byteRead;
          FileOutputStream fileOut = new FileOutputStream(saveFile);
          out.write("<meta http-equiv="refresh" content="0;url=BugReport.jsp?fileName="+saveFile+"">");
  • MFC/CollectionClass . . . . 8 matches
          || {{{~cpp GetPrev()}}} || 알아서 =.=;; ||
          || {{{~cpp InsertBefore(POSITION, ObjectType)}}} || 두번째 인자의 객체를 첫번째 인자의 위치의 앞부분에 삽입한다. ||
          || {{{~cpp RemoveHead()}}} || 리스트의 가장 윗 요소 삭제 ||
          || {{{~cpp RemoveTail()}}} || 리스트의 가장 마지막 요소 삭제 ||
          || {{{~cpp RemoveAt(POSITION)}}} || 특정위치의 리스트 요소를 삭제 ||
          || {{{~cpp RemoveAll()}}} || 리스트안에 있는 요소들에게 할당되었떤 메모리를 해제한다. ||
          ''{{{~cpp ConstructElements(), DestructElements(), CompareElements()}}} 보조함수들은 객체를 삽입, 삭제, 검색하는 과정에서 쓰이는 보조 함수들이다.''
          || {{{~cpp RemoveHead()}}} || 리스트의 가장 앞에 있는 포인터를 삭제. IsEmpty() 검사 필요. ||
          || {{{~cpp RemoveTail()}}} || 리스트의 가장 끝에 있는 포인터를 삭제. IsEmpty() 검사 필요. ||
          || {{{~cpp GetPrev()}}} || 알아서 =.=;; ||
          || {{{~cpp RemoveAll()}}} || 리스트안에 있는 요소들에게 할당되었떤 메모리를 해제한다. ||
          || {{{~cpp RemoveAt(POSITION)}}} || 특정위치의 리스트 요소를 삭제 ||
          || {{{~cpp InsertBefore(POSITION, ObjectType)}}} || 두번째 인자의 객체를 첫번째 인자의 위치의 앞부분에 삽입한다. ||
  • PluggableSelector . . . . 8 matches
          return anObject.printString();
          return anObject.asDollarFormatString();
          return anObject.desription();
          return anObject.perform(printMessage);
         class RelativePoint
          static RelativePoint* centered(Figure& aFigure) {
          RelativePonit* rp = new RelativePoint;
          rp->setFigurenMessage(aFigure, center);
          void setFigurenMessage(Figure& aFigure, int aSymbol()) {
          figure = aFigure;
         Point RelativePoint::asPoint()
          return figure.perform(locationMessage);
         Point RelativePoint::x()
          return asPoint().x();
         이런 식으로 하면 CenteredRelativePoint, TopLeftRelativePoint같은 서브클래스를 만들 필요가 없다. 위에서 center라는 메세지를 추가한 것처럼, topLeft메세지를 추가만 하면 되는 것이다.
  • PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 8 matches
         || [PragmaticVersionControlWithCVS/AccessingTheRepository] || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
         total revisions: 3; selected revisions: 3
         revision 1.2
         revision 1.1
         Initial revision
         revision 1.1.1.1
         || Relative || 1 day ago [[HTML(<BR/>)]] 27 minutes ago [[HTML(<BR/>)]] last monday [[HTML(<BR/>)]] yesterday [[HTML(<BR/>)]] third week ago ||
         '''cvs update -d [files or directory]''' : 현재 디렉토리에 존재하는 모든 파일 폴더를 저장소의 최신버전으로 체크아웃. -d 옵션은 추가된 디렉토리가 존재하는 경우에 cvs가 현재 폴더에 자동으로 폴더를 만들어서 체크아웃 시킨다.
         retrieving revision 1.16
         retrieving revision 1.17
         Merging differences between 1.16 and 1.17 into pragprog.sty
         A SourceCode/Releases.tip
         cvs server: Updating UnitTest/code/rev1
         cvs server: Updating UnitTest/code/rev2
         cvs server: Updating UnitTest/code/rev3
         quiet mode repository checkout destination
         == Adding Files and Directories ==
         Directory /home/CVSHOME/sesame/template2 added to the repository
         initial revision: 1.1
         work> cvs remove DataFormat.doc
  • ProjectPrometheus/BugReport . . . . 8 matches
          * [[HTML(<strike> 서평에서 단순히 PRE 태그가 아니라, 워드랩이 가능하도록 고쳐야 한다. </strike>)]]
          * 최근 Review에서 review 와 책의 제목의 위치를 뒤집거나, 폰트 조정으로 두 정보중 하나를 주로 만들어야 함
          * {{{~cpp RecommendList}}} 에 나오는 수가 너무 많다. 줄여야 한다.
          * ViewBookExtractor - Regular Expression
          * SearchBookExtractor - Regular Expression
          * '''호밀밭의 파수꾼''' 2002 년 판의 LendBookList 가 추출되지 않음.RecommendList 추출시에 역시 에러
          * {{{~cpp RecommendList}}} 가 깨지는 문제
          * BtoBRel 에는 들어있는 bookid 가 book 에는 없는 경우가 있다. 확인이 필요하나, 현재 도서관이 죽어서 할수 없다. 열리는데로 해봐야 한다.
          * 책 번호 357647 가 BtoBRel에는 들어 있고, book에는 없다. 이 한권때문에 현재의 에러가 발생한다. 간단히 없에면 되겠지만, 정체를 알고 싶다. --["상민"]
          * {{{~cpp DBConnectoinManager}}} 관련 주의 사항 http://javaservice.net/~java/bbs/read.cgi?m=dbms&b=jdbc&c=r_p&n=1019574430&p=2&s=d#1019574430
          * 다른 Conntion Pooling 용으로 http://www.bitmechanic.com/ 를 생각할수 있으며, 한글 자료는 http://javaservice.net/~java/bbs/read.cgi?m=dbms&b=jdbc&c=r_p&n=1034293525&p=1&s=d#1034293525 에 소개되어 있다.
         === Thread ===
         우리는 여기에서 frequent release(give workable system to the customer every week)가 얼마나 중요한가 새삼 확인할 수 있다. --JuNe
  • ProjectSemiPhotoshop/SpikeSolution . . . . 8 matches
          BOOL InitDIB(BOOL bCreatePalette = TRUE);
          BOOL CreateDIBPalette();
          virtual ~CImage() { Free(); }
          void Free();
          HDIB GetHandle() {return m_hImage;}
          BOOL IsDataNull() {return (m_hImage == NULL);}
          CSize GetSize() {return m_Size;}
          int GetHeight() {return m_Size.cy;}
          int GetWidth() {return m_Size.cx;}
          int GetRealWidth() {return WIDTHBYTES((GetWidth()*GetBitCount()));}
          HDIB GetUndoHandle() {return m_hUndoImage;}
          CPalette *GetPalette() {return m_pPal;}
          BOOL Draw(HDC hDC, LPRECT sourceRect, LPRECT destRect);
          return (lpbi + *(LPDWORD)lpbi + ::PaletteSize(lpbi));
          LPBITMAPCOREHEADER lpbmc; // pointer to an other-style DIB
          lpbmc = (LPBITMAPCOREHEADER)lpDIB;
          /* return the DIB width if it is a Win 3.0 DIB */
          return lpbmi->biWidth;
          else /* it is an other-style DIB, so return its width */
          return (DWORD)lpbmc->bcWidth;
  • PyIde . . . . 8 matches
          * Xper:ExtremeProgramming 을 지원해줄 도구들 만들어나가보기.
          * Prototyping & 외부 공개소스 Review & Copy & Paste 하여 가능한한 빠른 시간내에 원하는 기능 구현법이나 라이브러리들을 연습하여 익힌뒤, Refactoring For Understanding 을 하고, 일부 부분에 대해 TDD 로 재작성.
          * [Plex] - http://www.cosc.canterbury.ac.nz/~greg/python/Plex/ - 근데.. 몇몇 부분은 parser 모듈로만으로 충분할것도 같은데..
          * BicycleRepairMan - http://bicyclerepair.sourceforge.net/
          * 기타 - CyberFomulaSin의 아스라다와 오우거, Sarah Brightman 의 Harem 앨범, NoSmok:시간관리인생관리
         [PyIde/FeatureList]
          * [PyIde/BicycleRepairMan분석]
         === References ===
          * BicycleRepairMan - idlefork, gvim 과의 integration 관계 관련 코드 분석.
          * http://st-www.cs.uiuc.edu/users/brant/Refactory/RefactoringBrowser.html - Smalltalk refactoring browser
          * http://webpages.charter.net/edreamleo/front.html - LEO
          * auto completion ( http://don.freeshell.org/jython/ 참조)
  • PyIde/Exploration . . . . 8 matches
         Spike Solution 작업. 대강 Screenshot.
         http://free1002.nameip.net:8080/pyki/upload/PyUnitRunnerRedBar.gif http://free1002.nameip.net:8080/pyki/upload/PyUnitRunnerGreenBar.gif
         BoaConstructor 로 UI 작업하고, 위험하겠지만 어차피 Spike 라 생각하고 Test 없이 지속적으로 리팩토링을 해 나가면서 prototype 을 만들어나갔다. StepwiseRefinement로 진행하니까 코드가 짧은 시간에 읽기 쉽고 빨리 진행되었다.
         Design 을 할때 오버하는 성향이 있는 것 같다. IListener 가 있으면 DIP를 지키는 것이기도 하고, 기존 TestResult 등의 클래스들을 수정하지 않으면서 Listener 들만 추가하는 방식으로 재사용가능하니까 OCP 상으로도 좋겠지만. 과연 당장 필요한 것일까? 그냥 TestResult 를 모델로 들고 있고 View 클래스 하나 더 있는 것으로 문제가 있을까?
         SimpleTestResult Spike. result 결과물 잘 받아진다. Result 에 listener 연결해주면 테스트 실행, 정지, 성공, 실패일때마다 listener 로 메세지를 날린다. 나중에 GUI Runner 쪽에서 listener 를 implements 해주면 될듯.
         약간만 Refactoring 해서 쓰면 될듯. Runner abstract class 추출하고, TestResult 상속받은 클래스 만들고,. Test Loading 은 TestLoader 그대로 쓰면 될것 같다.
  • R'sSource . . . . 8 matches
         urldump = commands.getoutput('lynx -width=132 -nolist -dump http://board5.dcinside.com/zb40/zboard.php?id=dc_sell | grep 995')
         === rep.py ===
         import re
         print """이 프로그램은 www.replays.co.kr의 스타크래프트 리플레이를
         inputDir = raw_input("""저장 하고 싶은 경로를 지정하세요.(예>c:\\\\replay\\\\) : """)
          replayNum = 0
          url = 'http://www.replays.co.kr/technote/main.cgi?board=bestreplay_pds/'
          print '%s replay.' % keyGamer
          lines = a.readlines()
          print 'reading page....'
          #replayNum가져오기
          #http://165.194.17.5/wiki/index.php?url=zeropage&no=2985&title=Linux/RegularExpression&login=processing&id=&redirect=yes
          #re.compile() 해당 데이터에서 원하는 정보를 해석하여 갖는것
          pattern = re.compile('(^<TABLE.*<a.*number=)(.*)&view=2.*\[1\].*')
          replayNum = matching.group(2)
          print replayNum
          for i in range(int(replayNum), 0, itemNum * -1):
          beReadingUrl = 'http://www.replays.co.kr/technote/main.cgi?board=bestreplay_pds&number=%d&view=2&howmanytext=' % i
          aaa = urllib.urlopen(beReadingUrl)
          lines = aaa.readlines()
  • ReverseAndAdd/남상협 . . . . 8 matches
         = ReverseAndAdd/남상협 =
          def Reverse(self,numbers):
          self.reverseNumber=0
          break
          self.reverseNumber=self.reverseNumber+self.stack.pop()*self.mul
          return self.reverseNumber
          self.Reverse(numbers)
          print self.reverseNumber
          if numbers==self.reverseNumber:
          break
          numbers=numbers+self.Reverse(numbers)
          return i, self.reverseNumber
          def testReverse(self):
          self.assertEquals(951,self.exPalindrome.Reverse(159))
          self.assertEquals(265,self.exPalindrome.Reverse(562))
          self.assertEquals(57,self.exPalindrome.Reverse(750))
  • ReverseAndAdd/황재선 . . . . 8 matches
         == ReverseAndAdd ==
         class ReverseAndAdd:
          self.result = ()
          return -1, n
          return -1, n
          return count, n
          return True
          return False
          def printRepeatNum(self, num):
          print self.result[i], self.result[i+1]
         class ReverseAndAddTestCase(unittest.TestCase):
          r = ReverseAndAdd()
          r = ReverseAndAdd()
          r.result += r.compute(input())
          r.printRepeatNum(num)
          reverse 부분은 shell에서 약간의 테스트를 거쳤습니다. 그래서 따로 테스트 코드를 만들지 않았는데 그 결과 디자인이 나빠진 것 같습니다. 아직은 tdd에 익숙하지 않아서 모든 함수를 테스트 코드화하면서 보폭을 줄이는 훈련을 해야겠습니다. -- 재선
         ReverseAndAdd
  • TestFirstProgramming . . . . 8 matches
         ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
         요새는 ["TestDrivenDevelopment"] 라고 한다. 단순히 Test 를 먼저 작성하는게 아닌, Test 주도 개발인 것이다. TestDrivenDevelopment 는 제 2의 Refactoring 과도 같다고 생각. --["1002"]
          * wiki:Wiki:ExtremeProgrammingUnitTestingApproach
         === Test Code Refactoring ===
         프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
          * wiki:Wiki:RefactoringTestCode
         === Thread ===
         TddRecursiveDescentParsing
         ["ExtremeProgramming"]
  • VendingMachine_참관자 . . . . 8 matches
         # define RETURN 3
          "return",
          int ReceiveCommand();
          void ProcessReturn();
         int CommandParser::ReceiveCommand()
          if(i<=TOKEN_NUM) return i;
          return 0;
          return Data[++index];
          printf("Current Money is %d\n",Money);
          if (Money<MinPrice) return;
          printf("\nReceive %s\n",Menu[SM] );
          printf("CurrentMoney is %d\n",Money);
         void VendingMachine::ProcessReturn()
          printf("Returned Money is %d\n",Money);
          while( command = p.ReceiveCommand() ){
          break;
          break;
          case RETURN:
          ProcessReturn();
          break;
  • WikiSlide . . . . 8 matches
          * a technology for collaborative creation of internet and intranet pages
          * '''Open''' - everybody may read ''and'' edit everything
          * '''Simple''' - ''Content over Form'' (content counts, not the super-pretty appearance)
          * '''Secure''' - every change is archived, nothing gets lost
          * '''Interlinked''' - Links between pages are easy to make
          * Creating documentation and slide shows ;)
          * Help with problems or questions: HelpContents ([[Icon(help)]]) and HelpMiscellaneous/FrequentlyAskedQuestions
          * UserPreferences
          * Name (appears on RecentChanges)
          * Email address for subscribing to page change emails and retrieving a lost login/password
          * Personal preferences
          * Structure of pages
          * "Recently visited pages" (see UserPreferences)
          * RecentChanges: What has changed recently?
          * SiteNavigation: A list of the different indices of the Wiki
         To edit a page, just click on [[Icon(edit)]] or on the link "`EditText`" at the end of the page. A form will appear enabling you to change text and save it again. A backup copy of the previous page's content is made each time.
         You can check the appearance of the page without saving it by using the preview function - ''without'' creating an entry on RecentChanges; additionally there will be an intermediate save of the page content, if you have created a homepage ([[Icon(home)]] is visible).
         ||<rowbgcolor="#DEDEDE">'''Undo:''' `CTRL+Z`||'''Redo:''' `CTRL+Y`||
         (!) If you discover an interesting format somewhere, just use the "raw" icon to find out how it was done.
         (!) In UserPreferences, you can set up the editor to open when you double click a page.
  • django/Model . . . . 8 matches
         CREATE TABLE "manage_risk" (
         class RiskReport(models.Model):
          risk= models.ForeignKey(Risk)
         class RiskReport(models.Model):
          risk= models.ForeignKey('Risk')
         다대다 관계는 좀더 복잡해질 수 있다. 두 모델 사이에 관계에 해당하는 테이블이 또다른 속성이 필요한 경우이다. 이 때는 중간 역할을 하는 모델을 직접 생성하고 양쪽 모델을 참조하도록 만든다. 다음은 RiskReport와 ControlReport사이 다 대 다 관계에서 보고된 위험에 대해서 대처 방안이 적절했는지 평가하는 is_vaild속성을 가지는 RiskControl모델을 보여주고 있다.
         class RiskReport(models.Model):
         class ControlReport(models.Model):
          risk_report= models.ForeignKey(RiskReport)
          control_report= models.ForeignKey(ControlReport)
         하지만 이 경우 risk_report와 control_report의 합성키를 사용하도록 지원하지 않는다.
         Upload:Screenshot-Django-site-admin.png
         Upload:Screenshot-ManyToOne.png
         Upload:Screenshot-ManyToMany.png
  • 데블스캠프2009/목요일/연습문제/MFC/서민관 . . . . 8 matches
         double temp, res, sign;
          DECLARE_MESSAGE_MAP()
         CTestMFCDlg::CTestMFCDlg(CWnd* pParent /*=NULL*/)
         : CDialog(CTestMFCDlg::IDD, pParent)
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          // TODO: Add extra initialization here
          return TRUE; // return TRUE unless you set the focus to a control
          // Center icon in client rectangle
          CRect rect;
          GetClientRect(&rect);
          int x = (rect.Width() - cxIcon + 1) / 2;
          int y = (rect.Height() - cyIcon + 1) / 2;
          return (HCURSOR) m_hIcon;
          DECLARE_MESSAGE_MAP()
         CTestMFC2Dlg::CTestMFC2Dlg(CWnd* pParent /*=NULL*/)
          : CDialog(CTestMFC2Dlg::IDD, pParent)
          // NOTE: the ClassWizard will add member initialization here
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          // NOTE: the ClassWizard will add DDX and DDV calls here
          // TODO: Add extra initialization here
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 8 matches
         Describe 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 here
          return true;
          else { return false; }
          return (HashMap<String, Integer>) this.sectionWord;
          return this.sectionWordNum;
          return (sectionWord.get(word) == null) ? 1 : sectionWord.get(word)+1;
          return this.sectionArticleNum;
          double reslt = getLnPsPns(index);
          reslt += getLnPwsPwns(index, wordTmp);
          return reslt;
          return Math.log((double)sectionTrain[index].getSectionArticleNumber() / notInSectionArticleSum);
          return Math.log(((double)sectionTrain[index].getSectionWordNumber(word) / sectionTrain[index].getSectionWordsNumber()) / ((double)ArticleAdvantage(index, word) / notInSectionWordTotalSum));
          double advantageResult = 0;
          advantageResult += (1 - ((double)sectionTrain[index].getSectionWordNumber(word) / sectionTrain[index].getSectionArticleNumber() * 50));
          else { advantageResult += sectionTrain[i].getSectionWordNumber(word); }
          return advantageResult;
          public void DocumentResult(File f, int index) {
          System.out.println("Right : " + posiNum + " Wrong : " + negaNum + " Result : " + (getLnPsPns(index) + ((double)posiNum / (posiNum+negaNum))));
          anal.DocumentResult(new File("svm_data.tar/package/test/economy/economy.txt"), 0);
          anal.DocumentResult(new File("svm_data.tar/package/test/politics/politics.txt"), 1);
  • 주민등록번호확인하기/조현태 . . . . 8 matches
         #include <iostream>
          for (register int i=0; i<12; ++i)
         #include <iostream>
          for (register int i=0; i<12; ++i)
         #include <iostream>
          for (register int i=0; i<12; ++i)
         mulAndSum([FirstOne|RemainOne], [FirstAnother|RemainAnother]) -> FirstOne * FirstAnother + mulAndSum(RemainOne, RemainAnother).
         sumList([FirstOne|RemainOne], [FirstAnother|RemainAnother]) -> [FirstOne + FirstAnother] ++ sumList(RemainOne, RemainAnother).
         checkNumSub(List) -> 11 - (mulAndSum(List, [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 0]) rem 11) == lists:last(List).
  • 토이/메일주소셀렉터/김정현 . . . . 8 matches
          io.write("result.txt", io.getRemadeFromFile(input));
          BufferedWriter bw = new BufferedWriter(fw);
          public String read(String fileName) {
          FileReader fr;
          String resultString= "";
          fr = new FileReader(getTextFileForm(fileName));
          BufferedReader br = new BufferedReader(fr);
          while(br.ready()) {
          resultString += br.readLine();
          return resultString;
          String tempString= inputName.replace('.', '-');
          return inputName;
          return inputName + ".txt";
          public String getRemade(String input) {
          temp= temp.replace(string, "");
          return temp;
          public String getRemadeFromFile(String fileName) {
          return getRemade(read(fileName));
  • Class로 계산기 짜기 . . . . 7 matches
         #include <iostream>
          int resultNumber;
          void setResultNumber(int resultNumber){ this->resultNumber = resultNumber;}
          int getFirstNumber(){ return firstNumber;}
          int getSecondNumber(){ return secondNumber;}
          int getResultNumber(){ return resultNumber;}
          char getSign(){ return sign;}
          break;
          memory->setResultNumber(memory->getFirstNumber() + memory->getSecondNumber());
          break;
          memory->setResultNumber(memory->getFirstNumber() - memory->getSecondNumber());
          break;
          memory->setResultNumber(memory->getFirstNumber() * memory->getSecondNumber());
          break;
          memory->setResultNumber(memory->getFirstNumber() / memory->getSecondNumber());
          break;
          void output(Memory * memory) { cout << memory->getResultNumber() << endl;}
          void create() {
          calculator.create();
          return 0;
  • DirectDraw/Example . . . . 7 matches
         #include "resource.h"
         HINSTANCE hInst; // current instance
         ATOM MyRegisterClass(HINSTANCE hInstance);
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
          HINSTANCE hPrevInstance,
          // TODO: Place code here.
          MyRegisterClass(hInstance);
          return FALSE;
          return msg.wParam;
         // FUNCTION: MyRegisterClass()
         // PURPOSE: Registers the window class.
         // to be compatible with Win32 systems prior to the 'RegisterClassEx'
         ATOM MyRegisterClass(HINSTANCE hInstance)
          wcex.style = CS_HREDRAW | CS_VREDRAW;
          return RegisterClassEx(&wcex);
         // PURPOSE: Saves instance handle and creates main window
         // create and display the main program window.
          hInst = hInstance; // Store instance handle in our global variable
          hWnd = CreateWindow(szWindowClass, szTitle, WS_POPUP,
  • Java/스레드재사용 . . . . 7 matches
         아래 코드에 문제가 있는것 같아요. 분명 두개의 메소드가 같아보이는데 (주석처리된 run() 메소드와 run() 메소드) 한개만 되고 나머지 한개는 에러가 납니다(unreachable statement) - 임인택
         public class ReThread implements Runnable {
          private static Vector threads = new Vector();
          private ReThread reThread;
          private Thread thread;
          private static synchronized int getID() { return id++;}
          public ReThread(Runnable target) {
          if((thread==null) && (reThread==null)) {
          synchronized(threads) {
          if(threads.isEmpty()) {
          thread = new Thread(this, "ReThread-" + getID());
          thread.start();
          reThread = (ReThread)threads.lastElement();
          threads.setSize(threads.size()-1);
          reThread.start0(this);
          protected synchronized void start0(ReThread reThread) {
          this.reThread = reThread;
          target = reThread.target;
          if ((target != null) && ((thread != null) ^ (reThread != null))) {
          if (thread != null) {
  • MineSweeper/황재선 . . . . 7 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          * Created on 2005. 1. 2
          * Window - Preferences - Java - Code Style - Code Templates
          return intArray;
          return mineArr;
          BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
          input = in.readLine();
          return input;
          if (mineArr[row][col].compareTo("*") == 0)
          return mineArr;
          if (mineArr[row+posRow[i]][col+posCol[i]].compareTo("*") == 0)
          private void printResult(Vector v) {
          m.printResult(v);
          break;
          * Created on 2005. 1. 2
          * Window - Preferences - Java - Code Style - Code Templates
  • MoinMoinTodo . . . . 7 matches
         This is a list of things that are to be implemented. If you miss a feature, have a neat idea or any other suggestion, please put it on MoinMoinIdeas.
         To discuss the merit of the planned extensions, or new features from MoinMoinIdeas, please use MoinMoinDiscussion.
         A list of things that are added to the current source in CVS are on MoinMoinDone.
         MoinMoinRelease describes how to build a release from the SourceForge repository.
         === CURRENT ===
         Things to do in the near future:
          * add a nice progress page, while the dictionary cache is built
          * Macro that lists all users that have an email address; a click on the user name sends the re-login URL to that email (and not more than once a day).
          * Send a timestamp with the EditPage link, and then compare to the current timestamp; warn the user if page was edited since displaying.
          * Now that we can identify certain authors (those who have set a user profile), we can avoid to create a backup copy if one author makes several changes; we have to remember who made the last save of a page, though.
          * Implement the update script (copying new images etc.) described elsewhere on this page or MoinMoinIdeas.
          * Replace SystemPages by using the normal "save page" code, thus creating a backup copy of the page that was in the system. Only replace when diff shows the page needs updating.
          * UserPreferences
          * Send a regular "changes" mail? (checkbox, plus frequency setting hourly/daily/weekly/etc.)
          * On request, send email containing an URL to send the cookie
          * Steal ideas from [http://www.usemod.com/cgi-bin/mb.pl?action=editprefs MeatBall:Preferences]
          * a CSS switch (needs more work on the formatter issue to really work)
          * MoinMoinRefactoring
          * create a dir per page in the "backup" dir; provide an upgrade.py script to adapt existing wikis
          * or go all the way, and store pages as data/pages/<firstletter>/<pagename>/(current|meta|...|<timestamp>)
  • ReadySet 번역처음화면 . . . . 7 matches
         == ReadySET: Project Overview ==
          '''* What problem does this project address?'''
         Software development projects require a lot of "paperwork" in the form of requirements documents, design documents, test plans, schedules, checklists, release notes, etc. It seems that everyone creates the documents from a blank page, from the documents used on their last project, or from one of a handful of high-priced proprietary software engineering template libraries. For those of us who start from a blank page, it can be a lot of work and it is easy to forget important parts. That is not a very reliable basis for professional engineering projects.
         ReadySET is an open source project to produce and maintain a library of reusable software engineering document templates. These templates provide a ready starting point for the documents used in software development projects. Using good templates can help developers work more quickly, but they also help to prompt discussion and avoid oversights.
          '''* What are some key features that define the product?'''
          * Uses simple web technologies: Pure XHTML and CSS.
          * Templates for many common software engineering documents. Including:
          * Release checklist template
          '''*What makes this product different from others?'''
         This is an open source project that you are welcome to use for free and help make better. Existing packages of software engineering templates are highly costly and biased by the authorship of only a few people, by vendor-client relationships, or by the set of tools offered by a particular vendor.
         These templates are in pure XHTML with CSS, not a proprietary file format. That makes them easier to edit and to track changes using freely available tools and version control systems. The templates are designed to always be used on the web; they use hyperlinks to avoid duplicating information.
         The templates are not burdened with information about individual authorship or document change history. It is assumed that professional software developers will keep all project documents in version control systems that provide those capabilities.
         These templates are not one-size-fits-all and they do not attempt to provide prescriptive guidance on the overall development process. We are developing a broad library of template modules for many purposes and processes. The templates may be filled out in a suggested sequence or in any sequence that fits your existing process. They may be easily customized with any text or HTML editor.
         We will build templates for common software engineering documents inspired by our own exprience.
          '''*What are the high-level assumptions or ground rules for the project?'''
         I assume that the user takes ultimate responsibility for the content of all their actual project documents. The templates are merely starting points and low-level guidance.
          '''*What are we not going to do?'''
         This project does not attempt to provide powerful tools for reorganizing the templates, mapping them to a given software development process, or generating templates from a underlying process model. This project does not include any application code for any tools, users simply use text editors to fill in or customize the templates.
         Yes. It is part of the Tigris.org mission of promoting open source software engineering. It is also the first product in a product line that will provide even better support to professional software developers. For more information, see [http://www.readysetpro.com ReadySET Pro] .
         These templates are based on templates originally used to teach software engineering in a university project course. They are now being enhanced, expanded, and used more widely by professionals in industry.
  • TheTrip/황재선 . . . . 7 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          * Created on 2005. 1. 4
          * Window - Preferences - Java - Code Style - Code Templates
          return studentNum;
          BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
          String line = in.readLine();
          return num;
          return money;
          double difference = money[i] - average;
          if (difference > 0) movedMoney += difference;
          return movedMoney;
          return average;
          return aNum;
          private void printResult(ArrayList list) {
          trip.printResult(list);
          break;
  • ZeroPage . . . . 7 matches
         현재는 02년도부터 도입한 wiki 시스템을 통하여 각 프로젝트나 스터디를 진행할때마다 문서 산출물을 만들어 내어 양질의 정보들을 축적해 나가고 있다. 이 시스템은 스터디와 프로젝트를 팀으로 진행할때 공동 knowledge repository 의 역할을 함으로서 진행하는 회원 들에게 도움이 되고, 추후에 다른 회원이 비슷한 스터디나 프로젝트를 할때 그 wiki 페이지를 참고 함으로써 같은 곳에 쏟을 노력을 줄이고, 그 wiki 페이지를 다시 키워 나감으로써 지속적으로 양질의 정보를 축적하여왔다. 이로서 제로페이지의 wiki 시스템은 현재의 회원과 학교를 떠난 회원그리고 앞으로 제로페이지에 들어올 회원들 모두에게 도움이 되는 시스템으로서 자리매김하고 있다.
          * 2013 삼성 Software Friendship 선정
          * 1999 [ZeroPageServer] 구입. Rebirth 선언. Devils 분리.
          * 2016 ACM_ICPC Daejeon Regional 대회 동상 수상!
          * 2015 Samsung Software Friendship 4기 동아리 선정
          * 2014 ACM_ICPC Daejeon Regional 대회 출전
          * 삼성 Software Friendship 동아리 선정
          * 2013 ACM_ICPC Daejeon Regional 대회 출전
          * 최우수상(1등) : Forensic - [정의정],[권영기],[김희성],[김태진]
          * 우수상(2등) : CAU Arena - [장용운],[이민석],[이민규]
          * 2012 HTML5 앱 공모전 '''동상'''(상금 150만원)[http://www.koreahtml5.kr 링크]
          * 2012 ACM_ICPC Daejeon Regional 대회 출전
          * 2011 ACM_ICPC Daejeon Regional 대회 출전
          * 우수상 - ReturnedYongari : 강인수, 남상협, 신재동
  • ZeroPageServer/set2002_815 . . . . 7 matches
          * Resin , Apache 시작 순서 문제
          * CGI Script (Perl, ["Python"] 1.53), PHP (4.2 일것임), JSP & Servlet (Resin 1.2 )
          * 완료된 날짜가 공교롭게도 8.15 일 이다. Redhat과 구버전의 족쇄에서 벗어나는 것에 의의에 둔다.
          * 이번 세팅의 목적은 '''좀더 편한 패키지 관리, 안정된 환경'''을 위해서이다. 그래서 상민이의 물망에 오른 것이 Zentoo Linux와 Debian, FreeBSD 정도 인데, 기본적으로 Linux를 택해서, FreeBSD와 Zentoo Linux와 Debian 비교에서 사용자 층과 편이성면에서 Debian이 더 우수하게 느껴져 선택하였다.
          * 설치는 한달여 즈음 전에 릴리즈된 woody를 기본으로, 일본의 미러 소스 리스트를 이용해서 네트웍 설치를 하였다. Redhat측에서 시작부터 rpm에 대한 체계적 통합적 관리가 되었다면, 현재의 deb 패키지 처럼 완전 네트웍 설치를 할수 있었을텐데 안타까운 점이다.
          * Resin
          * Resin 상태 확인
          * redhat 계열에서는 apache 기본 유저가 nobody인데, www-data 로 바꾸었다.
          * 27일 오후에 suexec rename, cgiwrap설치후 삭제하고, suexec 복구하자 잘 동작
          * [[HTML( <STRIKE> resin </STRIKE> )]] 2.1.3 설치
          * [[HTML( <STRIKE> Moin 에서 Redirection 문제 </STRIKE> )]] : kernel upgrade로 해결 되었음 원인 불명확
          * [[HTML( <STRIKE> MySQL 계정 발급 테스트 </STRIKE> )]] : 대상 계정 reset
          * {{{~cpp /home/jspVirtualPath}}} 에 해당 아이디의 symbolic 링크를 걸면 됨. resin.conf에서 path-mapping 사용
  • 데블스캠프2005/금요일/OneCard . . . . 7 matches
          return s
          return cards
          numCardsRemoved = 0
          cardOnTable, myResult = userProc(cardOnTable, myCards)
          cardOnTable, pcResult = pcProc(cardOnTable, pcCards)
          numCardsRemoved = myResult + pcResult
          if numCardsRemoved == 0:
          break
          return cardOnTable, cnt
          removed = False
          removed = True
          break
          if removed:
          removed = False
          return cardOnTable, cnt
          return True
          return False
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현 . . . . 7 matches
         import java.io.FileInputStream;
         import java.io.InputStreamReader;
          scan = new Scanner(new InputStreamReader(new FileInputStream(filename),"UTF-8"));
          public boolean hasNext() { return scan.hasNext(); }
          public String next() { return scan.next(); }
          public String nextLine() { return scan.nextLine(); }
         import java.io.FileOutputStream;
          while (st.hasMoreTokens()) {
          words.get(word).increase1();
          while (st.hasMoreTokens()) {
          words.get(word).increase2();
          writeCsv("result.csv");
          PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
          public void increase1() { _1++; }
          public void increase2() { _2++; }
          public int get1() { return _1; }
          public int get2() { return _2; }
         import java.io.FileInputStream;
         import java.io.InputStreamReader;
         import au.com.bytecode.opencsv.CSVReader;
  • 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 7 matches
          CRect m_rt;
          CmyDouBuffDC(CDC *pDC, CRect rt){
          m_pMemDC->CreateCompatibleDC(m_pDC);
          m_bmp.CreateCompatibleBitmap(m_pDC, m_rt.Width(), m_rt.Height());
          m_pMemDC->Rectangle(0, 0, m_rt.Width(), m_rt.Height());
          CDC* getMemDC(){return m_pMemDC;}
          CRect rt;
          GetClientRect(&rt);
         클래스 내부에는 윈도우 핸들이 없기 때문에 GetClientRect를 사용하지 못한다. 따라서 전달인자로 CRect가 전달된다.
  • 서지혜 . . . . 7 matches
         나의 [http://rabierre.wordpress.com 블로그]
          * '''의도적 수련'''에서 영감을 받아 시작하기로 한 reconstitution project
          * OMS : SCRIPT LANGUAGE EVERYWHERE
          * Apache Hadoop 기반 대용량 분산 처리 및 마이닝 알고리즘(MapReduce를 이용한 ETL) 구현하기
          1. Hadoop mapreduce
          1. [https://github.com/Rabierre/my-calculator my calculator]
          * 꾸준 플젝인듯. 처음엔 reverse polish notation으로 입력식을 전처리하고 계산하다가 다음엔 stack 두개를 이용해서 계산하여 코드 수를 줄임.
          1. [http://www.hkbs.co.kr/hkbs/news.php?mid=1&treec=133&r=view&uid=266727 VDIS] - 교통안전공단 차량운행 프로젝트
          * hadoop MapReduce를 이용한 ETL모듈
          1. Hannibal Rss Recommendation
          * hadoop MapReduce를 이용한 CF알고리즘, UI : ExtJS 4.0, 검색 : Lucene, 데이터 저장 : MySQL, Hibernate
          * 핵심 가치와 기술 몇가지(Master-Slave, MapReduce, File System, Index Block 등)
          * [http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext 어느 교수님의 고민] - 우리는 무엇을 가르치고, 무엇을 배워야 하는가?
          * [HowToStudyRefactoring]
          * [java/reflection] - java의 classLoader와 reflection을 이용해 외부 클래스 메소드 호출하는 법
          * [HowToStudyRefactoring]
  • 5인용C++스터디/API에서MFC로 . . . . 6 matches
          afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
          afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your message handler code here and/or call default
         void CApplicationView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
          // TODO: Add your message handler code here and/or call default
          CView::OnKeyDown(nChar, nRepCnt, nFlags);
         void CApplicationView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
          // TODO: Add your message handler code here and/or call default
          CView::OnKeyUp(nChar, nRepCnt, nFlags);
  • ASXMetafile . . . . 6 matches
          <Ref href = "path" />
          * <MoreInfo href = "path of the source" / >: Adds hyperlinks to the Windows Media Player interface in order to provide additional resources on the content.
          * <Duration value = "00:00:00">: Sets the value attribute for the length of time a streaming media file is to be played.
          * <Logo href = "path of the logo source" Style = "a style" / >: Adds custom graphics to the Windows Media player by choosing either a watermark or icon style. The image formats that Windows Media Player supports are GIF, BMP, and JPEG.
          o MARK: The logo appears in the lower right corner of the video area while Windows Media Player is connecting to a server and opening a piece of content.
          * <Banner href = "path of the banner source">: Places a banner (82 pixels × 30 pixels) image at the bottom of the video display area.
          * <Ref href = "path of the source" / >: Specifies a URL for a content stream.
          o ASX files, on the other hand, are small text files that can always sit on an HTTP server. When the browser interprets the ASX file, it access the streaming media file that is specified inside the ASX file, from the proper HTTP, mms, or file server.
          * ?sami="path of the source": Defines the path of a SAMI caption file within the <ref href> tag for media source.
          <MoreInfo href="http://www.microsoft.com/windows/windowmedia" />
          <Ref href="MMS://netshow.microsoft.com/ms/sbnasfs/wtoc.asf" />
          <Banner href="http://Servername/Path/Banner1.gif">
          <MoreInfo href="http://www.microsoft.com/windows/windowsmedia" />
          <Logo href="http://servername/path/banner2.gif" Style="ICON" />
          <MoreInfo href="http://www.microsoft.com/windows/windowsmedia" />
          <Ref href="MMS://netshow.microsoft.com/ms/sbnasfs/wcc.asf" />
          <Ref href="http://cita.rehab.uiuc.edu/mediaplayer/mediasmaple.asf"
          ?sami="http://cita.rehab.uiuc.edu/mediaplayer/samisample.smi" />
          * [http://cita.rehab.uiuc.edu/mediaplayer/text-asx.html Creating ASX files with a text editor] - [DeadLink]
          * [http://cita.rehab.uiuc.edu/mediaplayer/captionIT-asx.html Creating ASX files with Caption-IT] - [DeadLink]
  • COM/IUnknown . . . . 6 matches
         virtual HRESULT QueryInterface(REFIID riid, void** ppvObject) = 0;
         virtual ULONG AddRef() = 0;
         virtual ULONG Release() = 0;
         HRESULT (*QueryInterface) (IUnknown *This, REFIID *This, REFIID riid, void** ppvObject);
         ULONG (*AddRef) (IUnknown *This);
         ULONG (*Release) (IUnknown *This);
         COM 객체를 다루는데 있어서 가장 핵심적인 인터페이스. REFIID 를 이용해 ID 에 맞는 인터페이스 포인터를 얻을 수 잇다.
         == AddRef, Release ==
         C++ 스마트 포인터에서는 참조 카운팅을 이용해서 dangling pointer 문제를 해결한다. boost 의 shared_ptr이 이를 구현한다.
  • EcologicalBinPacking/황재선 . . . . 6 matches
         #include <iostream>
         void output(int colorResult, int min);
          return 0;
          int colorResult = 0;
          colorResult = allColorSet;
          output(colorResult, minValue);
          return (aSum < aMinValue) ? true : false;
         void output(int colorResult, int min)
          cout << color[colorResult] << " " << min << endl;
  • Garbage collector for C and C++ . . . . 6 matches
          * README.QUICK 파일에 기본적인 설명이 있다. doc/README.* 에 플렛폼별 자세한 설명이 있다.
          * 유닉스나 리눅스에서는 "./configure --prefix=<dir>; make; make check; make install" 으로 인스톨 할수 있다.
          * win32 쓰레드를 지원하려면 NT_THREADS_MAKEFILE 을 사용한다. (gc.mak 도 같은 파일 이다.)
          * 예) nmake /F ".gc.mak" CFG="gctest - Win32 Release"
         # objects should have been explicitly deallocated, and reports exceptions.
         # Finalization and the test program are not usable in this mode.
         # -DGC_SOLARIS_THREADS enables support for Solaris (thr_) threads.
         # (Clients should also define GC_SOLARIS_THREADS and then include
         # gc.h before performing thr_ or dl* or GC_ operations.)
         # Must also define -D_REENTRANT.
         # -DGC_SOLARIS_PTHREADS enables support for Solaris pthreads.
         # (Internally this define GC_SOLARIS_THREADS as well.)
         # -DGC_IRIX_THREADS enables support for Irix pthreads. See README.irix.
         # -DGC_HPUX_THREADS enables support for HP/UX 11 pthreads.
         # Also requires -D_REENTRANT or -D_POSIX_C_SOURCE=199506L. See README.hp.
         # -DGC_LINUX_THREADS enables support for Xavier Leroy's Linux threads.
         # see README.linux. -D_REENTRANT may also be required.
         # -DGC_OSF1_THREADS enables support for Tru64 pthreads. Untested.
         # -DGC_FREEBSD_THREADS enables support for FreeBSD pthreads. Untested.
         # Appeared to run into some underlying thread problems.
  • GuiTestingWithMfc . . . . 6 matches
         Dialog Based 의 경우 Modal Dialog 를 이용하게 된다. 이 경우 Dialog 내에서만 메세지루프가 작동하게 되므로, DoModal 함수로 다이얼로그를 띄운 이후의 코드는 해당 Dialog 가 닫히기 전까지는 실행되지 않는다. 고로, CppUnit 에서의 fixture 를 미리 구성하여 쓸 수 없다.
          // NOTE - the ClassWizard will add and remove mapping macros here.
          Enable3dControls(); // Call this when using MFC in a shared DLL
          int nResponse = dlg.DoModal();
          if (nResponse == IDOK)
          else if (nResponse == IDCANCEL)
          return FALSE;
         #include "stdafx.h" // resource, mfc 를 이용할 수 있다.
          pDlg->Create(IDD_GUITESTINGONE_DIALOG);
          // TODO: Add your control notification handler code here
          return str1.Compare(str2) == 0;
          // TODO: Add your control notification handler code here
         ==== 3. more... ====
         || test4ListAddMore || test3 에 추가된 형태. Editbox 에 다시 "Testing2..." 를 셋팅하고, 버튼을 눌렀을 때 Listbox 의 item 갯수가 2개임을 확인 ||
          void test4ListAddMore () {
         || test4ListAddMore || test3 에 추가된 형태. Editbox 에 다시 "Testing2..." 를 셋팅하고, 버튼을 눌렀을 때 Listbox 의 item 갯수가 2개임을 확인 ||
          test4ListAddMore();
          // TODO: Add your control notification handler code here
         || test4ListAddMore || test3 에 추가된 형태. Editbox 에 다시 "Testing2..." 를 셋팅하고, 버튼을 눌렀을 때 Listbox 의 item 갯수가 2개임을 확인 ||
          // TODO: Add your control notification handler code here
  • JavaHTMLParsing/2011년프로젝트 . . . . 6 matches
          import java.io.InputStream;
          import java.io.InputStreamReader;
          import java.io.BufferedReader;
          InputStream is;//URL접속에서 내용을 읽기위한 Stream
          InputStreamReader isr;
          BufferedReader br;
          //내용을 읽어오기위한 InputStream객체를 생성한다..
          is = connection.getInputStream();
          isr = new InputStreamReader(is);
          br = new BufferedReader(isr);
          buf = br.readLine();
          if(buf == null) break;
  • MoreEffectiveC++/Efficiency . . . . 6 matches
         ["MoreEffectiveC++"]
         == Item 16:Remember the 80-20 rule. ==
          === Reference Counting (참조 세기) ===
          === Distinguishing Read from Writes ( 읽기와 쓰기의 구분 ) ===
         reference-counting 을 토대로한 문자열의 구현 예제를 조금만 생각해 보면 곧 lazy evaluation의 방법중 우리를 돕는 두번째의 것을 만나게 된다. 다음 코드를 생각해 보자
          String s = "Homer's Iliad"; // 다음 문자열이 reference-counting으로
          cout << s[3]; // operator []를 호출해서 s[3]을 읽는다.(read)
         첫번째 operator[]는 문자열을 읽는 부분이다,하지만 두번째 operator[]는 쓰기를 수행하는 기능을 호출하는 부분이다. 여기에서 '''읽기와 쓰기를 구분'''할수 있어야 한다.(distinguish the read all from the write) 왜냐하면 읽기는 refernce-counting 구현 문자열로서 자원(실행시간 역시) 지불 비용이 낮고, 아마 저렇게 스트링의 쓰기는 새로운 복사본을 만들기 위해서 쓰기에 앞서 문자열 값을 조각내어야 하는 작업이 필요할 것이다.
          void restoreAndProcessObject(ObjectID id) // 객체 복구
         void restoreAndProcessObject(ObjectID id)
          return *field1Value;
          return * field1Value;
          * Lazy Expression Evaluation ( 표현을 위한 게으른 연산 )
          return cubicle;
          return (*it).second;
         캐시(cashing)는 예상되는 연산 값을 기록해 놓는 하나의 방법이다. 미리 가지고 오는 것이기도 하다. 당신은 대량의 계산을 줄이는 것과 동등한 효과를 얻을것이라 생각할수 있다. 예를들어서, Disk controller는 프로그래머가 오직 소량의 데이터만을 원함함에도 불구하고 데이터를 얻기위해 디스크를 읽어 나갈때, 전체 블록이나 읽거나, 전체 섹터를 읽는다. 왜냐하면 각기 여러번 하나 두개의 작은 조각으로 읽는것보다 한번 큰 조각의 데이터를 읽는게 더 빠르기 때문이다. 게다가, 이러한 경우는 요구되는 데이터가 한곳에 몰려있다는 걸 보여주고, 이러한 경우가 매우 일반적이라는 것 역시 반증한다. 이 것은 locality of reference (지역 데이터에 대한 참조, 여기서는 데이터를 얻기위해 디스크에 직접 접근하는걸 의미하는듯) 가 좋지 않고, 시스템 엔지니어에게 메모리 케쉬와, 그외의 미리 데이터 가지고 오는 과정을 설명하는 근거가 된다.
         뭐시라?(Excuse me?) 당신은 disk controller와 CPU cash같은 저 밑에서 처리(low-level)하는 처리하는 일에 관해서는 신경 안쓰는 거라고? 걱정 마시라(No problem) 미리 가져오기(prefetching) 당신이 높은 수준(high-level)에서 할때 역시 야기되는 문제이니까. 예를들어, 상상해 봐라 당신은 동적 배열을 위하여 템플릿을 적용했다. 해당 배열은 1에서 부터 자동으로 확장되는 건데, 그래서 모든 자료가 있는 구역은 활성화된 것이다.: (DeleteMe 좀 이상함)
          return 배열의 인덱스 인자를 반환한다.
         over-eager evaluation(선연산,미리연산) 전술은 이 것에대한 답을 제시한다.:만약 우리가 index i로서 현재의 배열상의 크기를 늘리려면, locality of reference 개념은 우리가 아마 곧 index i보다 더 큰 공간의 필요로 한다는걸 이야기 한다. 이런 두번째 (예상되는)확장에 대한 메모리 할당의 비용을 피하기 위해서는 우리는 DynArray의 i의 크기가 요구되는 것에 비해서 조금 더 많은 양을 잡아서 배열의 증가에 예상한다. 그리고 곧 있을 확장에 제공할 영역을 준비해 놓는 것이다. 예를 들어 우리는 DynArray::operator[]를 이렇게 쓸수 있다.
          return 현재 인덱스가 가리키는 인자;
  • MoreEffectiveC++/Techniques1of3 . . . . 6 matches
         ["MoreEffectiveC++"]
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_124_1.gif
         NewsLetter 객체는 아마 디스크에서 자료를 적재할 것이다. NewsLetter가 디스크에서 자료를 가지고 보여주기 위해 istream을 사용해서 NewsLetter를 구성할 객체들을 생성한다고 가정한다면 다음과 같은 코드들을 대강 만들수 있는데
          NewsLetter(istream& str);
         NewsLetter::NewsLetter(istream& str)
         혹은 약간 수를 써서 readComponent를 호출하는 식으로 바꾼다면
          // 순수히 디스크에 있는 데이터를 읽어 드리는 istream과 자료 str에서
          // 해당 자료를 해석하고, 알맞는 객체를 만들고 반호나하는 readComponent객체
          static NLComponent * readComponent(istream& str);
         NewsLetter::NewsLetter(istream& str)
          // readComponent가 해석한 객체를 newsletter의 리스트 마지막에 추가시키는 과정
          components.push_back(readComponent(str));
         readComponent가 무엇을 어떻게 하는지 궁리해 보자. 위에 언급한듯이 readComponent는 리스트에 넣을 TextBlock나 Graphic형의 객체를 디스크에서 읽어 드린 자료를 바탕으로 만들어 낸다. 그리고 최종적으로 만들어진 해당 객체의 포인터를 반환해서 list의 인자를 구성하게 해야 할것이다. 이때 마지막 코드에서 가상 생성자의 개념이 만들어 져야 할것이다. 입력되 는자료에 기초되어서, 알아서 만들어 인자. 개념상으로는 옳지만 실제로는 그렇게 구현될수는 없을 것이다. 객체를 생성할때 부터 형을 알고 있어야 하는건 자명하니까. 그렇다면 비슷하게 구현해 본다?
          { return new TextBlock(*this); }
          { return new Graphic(*this); }
          virtual ostream& operator<<(ostream& str) const = 0;
          virtual ostream& operator<<(ostream& str) const;
          virtual ostream& operator<<(ostream& str) const;
          virtual ostream& print(ostream& s) const = 0;
          virtual ostream& print(ostream& s) const;
  • ObjectOrientedReengineeringPatterns . . . . 6 matches
          * Refactoring의 저자 마틴 파울러가 서문을 작성해 주었다. (랄프 존슨도)
         Forward Engineering & Reverse Engineering 에 대한 좋은 텍스트. 일종의 Practice 를 제공해준다. 게다가 실제 Reengineering 경험을 하여, 해당 Practice 전에 해당 문제상황의 예를 적어놓음으로서 일종의 Context 를 제공해준다. 각각의 패턴들에 대해 장,단점 또한 적어놓았다.
         [1002] 의 경우 Refactoring for understanding 이라는 녀석을 좋아한다. 그래서 가끔 해당 코드를 읽는중 생소한 코드들에 대해 일단 에디터에 복사한뒤, 이를 조금씩 리팩토링을 해본다. 중간중간 주석을 달거나, 이를 다시 refactoring 한다. 가끔 정확한 before-after 의 동작 유지를 무시하고 그냥 실행을 해보기도 한다. - Test 까진 안달아도, 적절하게 약간의 모듈을 추출해서 쓸 수 있었고, 코드를 이해하는데도 도움을 주었다. 이전의 모인모인 코드를 읽던중에 실천해봄.
         See Also Xper:ObjectOrientedReengineeringPatterns, Moa:ObjectOrientedReengineeringPatterns , StephaneDucasse
  • OptimizeCompile . . . . 6 matches
         ==== Reduction of computation ====
         실행 시간(run time) 중의 계산을 줄이는 것이 목적이다. 이 최적화는 '미리 컴파일 시간에 계산(precomputaion in compile time)' 할 수 있거나, '미리 계산된 값을 재사용(reuse a previously computated value)' 할 수 있는 상황에서 적용된다.
         area = 2 * PI * radius;
         area = 2 * 3.14159 * radius;
         area = 6.28318 * radius;
         '''Common subexpression elimination'''
         ''' Partial redundancy analysis'''
         '''Removing loop invariant code'''
         ==== Reduction of space consumption ====
         ==== Reduction of code size ====
         ==== Reduction of complexity ====
          '''Strength reduction'''
         컴퓨터가 할 수 있는 연산 들은 각각 그 연산이 수행되는데 걸리는 시간의 차이가 있다. 연산에 복잡도에 의해서 이루어지는 현상인데, 극단적인 예를 들자면, shift 연산은 보통 2 클럭에 처리되는 반면에, 나누기 연산의 경우 80-90 클럭을 소모하게 된다.(i8088자료) 이런 연산에 대한 computation time 의 차이를 줄이는 최적화 방법을 strength reduction 이라고 한다.
         || Expression || Equivalent expression ||
         ==== Reduction of latency ====
         cpu architecture 차원에서 지원한다.
         e.g. instruction prefetching, branch prediction, out-of-order execution
         === More advanced mothodology of compiler optimization ===
  • PragmaticVersionControlWithCVS/Getting Started . . . . 6 matches
         == Creating a Repository ==
         == Creating a Simple Project ==
         red
         green
         three
         red
          Working revision: 1.1.1.1 Tue Aug 2 05:50:14 2005
          Repository revision: 1.1.1.1 /home/CVSHOME/sesame/color.txt,v
         retrieving revision 1.1.1.1
         retrieving revision 1.1.1.1
         red red
         green green
         == Updating the Repository ==
         new revision: 1.2; previous revision: 1.1
          Working revision: 1.2 Tue Aug 2 13:08:47 2005
          Repository revision: 1.2 /home/CVSHOME/sesame/color.txt,v
         total revisions: 3; selected revisions: 3
         revision 1.2
         revision 1.1
         Initial revision
  • ProjectPrometheus/UserStory . . . . 6 matches
         ||검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다. ||
         ||Review 의 내용을 수정/삭제 할 수 있다. ||
         === Requirement 받은 사항 (UserStory 식을 재정의 함) ===
          * 검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다.
          * Review 의 내용을 수정/삭제 할 수 있다.
         === Non-Functional Requirement ===
  • PyUnit . . . . 6 matches
         === 간단한 testcase 의 제작. 'failure', 'error' ===
          assert widget.size() == (50,50), 'incorrect default size'
         테스팅을 하기 위해 Python의 assert 구문을 사용한다. testcase가 실행될 때 assertion을 실행하면 AssertionError 가 일어나고, testing framework는 이 testcase를 'failure' 했다고 정의할 것이다. 'assert' 를 명시적으로 써놓지 않은 부분에서의 예외가 발생한 것들은 testing framework 에서는 'errors'로 간주한다.
         === 재사용하는 set-up code : 'fixtures' 만들기. ===
          assert self.widget.size() == (50,50), 'incorrect default size'
         class WidgetResizeTestCase(SimpleWidgetTestCase):
          self.widget.resize(100,150)
          'wrong size after resize'
         이러한 testing code를 위한 작업환경을 'fixture' 라고 한다.
         종종, 많은 작은 test case들이 같은 fixture를 사용하게 될 것이다. 이러한 경우, 우리는 DefaultWidgetSizeTestCase 같은 많은 작은 one-method class 안에 SimpleWidgetTestCase를 서브클래싱하게 된다. 이건 시간낭비이고,.. --a PyUnit는 더 단순한 메커니즘을 제공한다.
          assert self.widget.size() == (50,50), 'incorrect default size'
          def testResize (self):
          self.widget.resize (100,150)
          assert self.wdiget.size() == (100,150), 'wrong size after resize'
         resizeTestCase = WidgetTestCase ("testResize")
         widgetTestSuite.addTest (WidgetTestCase ("testResize"))
          suite.addTest (WidgetTestCase ("testResize"))
          return suite
          unittest.TestSuite.__init__(self, map(WdigetTestCase, "testDefaultSize", "testResize")))
          * 테스트 된 코드를 refactoring 하기 더 용이해진다.
  • Refactoring/SimplifyingConditionalExpressions . . . . 6 matches
         = Chapter 9 Simplifying Conditional Expressions =
          if (data.before( SUMMER_START ) || data.after(SUMMER_END) )
         == Consolidate Conditional Expression ==
          * You have a sequence of conditional tests with the same result. [[BR]]''Combine them into a single conditional expression and extract it.''
          if (_seniority < 2) return 0;
          if ( _monthsDisabled > 12) return 0;
          if ( _isPartTime) return 0;
          if( isNotEligableForDisability()) return 0;
          * The same fragment of code is in all branches of a conditional expression. [[BR]]''Move it outside of the expression.''
         == Replace Nested Conditional with Guard Clauses ==
          double result;
          if( _isDead) result = deadAmount();
          if (_isSeparated) result = separatedAmount();
          if (_isRetried) result = retiredAmount();
          else result = normalPayAmount();
          return result;
          if (_isDead) return deadAmount();
          if (_isSeparated) return separatedAmount();
          if (_isRetried) return retiredAmount();
          return normalPayAmount();
  • ReverseAndAdd/임인택 . . . . 6 matches
         module ReverseAndAdd
          where
         reverseAndAdd number = reverseAndAddSub 0 number
         reverseAndAddSub count number =
          if (show number) == (reverse (show number))
          else reverseAndAddSub (count+1) (number + (read (reverse (show number))) )
         ReverseAndAdd> reverseAndAdd 195
         ReverseAndAdd> reverseAndAdd 265
         ReverseAndAdd> reverseAndAdd 750
         ReverseAndAdd>
         [ReverseAndAdd]
  • VonNeumannAirport/남상협 . . . . 6 matches
          def __init__(self,cityNum,trafficList, configureList):
          self.configureList = []
          for configureData in configureList:
          configureOfCity = []
          for configure in configureData:
          eachConfigure = []
          for conf in configure[:-1]:
          eachConfigure.append(int(conf))
          configureOfCity.append(eachConfigure)
          self.configureList.append(configureOfCity)
          trafficResult = []
          for configure in self.configureList:
          for con in configure[0]:
          departureGate = con
          for i in range(2,len(self.trafficList[departureGate-1]),2):
          arrivalGate = self.trafficList[departureGate-1][i]
          traffic+=(abs(configure[1].index(arrivalGate)-configure[0].index(departureGate))+1)*self.trafficList[departureGate-1][i+1]
          trafficResult.append((confNum,traffic))
          trafficResult.sort(lambda x,y: cmp(x[1],y[1]))
          return trafficResult
  • django/RetrievingObject . . . . 6 matches
         데이터베이스에서 레코드를 조회할 때는 Model클래스를 관리하는 Manager클래스를 이용한다. 가장 간단하게는 모든 레코드를 가져오는 방법이 있는데, 모델마다 기본적으로 제공되는 object라는 매니저를 이용한다. object 매니저로 레코드를 조회하면 QuerySet이 반환된다. 이는 관계형 데이터베이스 CLI인 JDBC의 ResultSet과 유사하다.
         한 모델에 대해서는 여러 가지 필터를 설치할 수 있다. 필터는 SQL문에서 where절에 해당하는 역할을 한다. 필터에는 검색하는 컬럼의 완전 일치, 부분 일치, 사이 값, 포함, 연월일 옵션을 줄 수 있다. 기본적으로 필터는 AND 조합으로 이루어지며, OR조합을 사용하고 싶다면 Q라는 쿼리 오브젝트를 사용해야 한다.[9] 아래는 필터를 이용해 보고 날짜가2006년 10월 1일 이후인 위험 보고서를 찾는 python코드와 그에 해당하는 SQL문을 보여준다.
         RiskReport.objects.filter(date__gt=datetime.date(2006, 10, 1))
         SELECT ... FROM risk_report
         WHERE date > '2006-10-1'
         = select_related =
         일대다 관계인 레코드의 경우는 selete_related메소드를 이용하면 데이터베이스 접근 횟수를 줄일 수 있다. 일반적인 데이터베이스 조회는 추상화되어있어 실행할 때마다 쿼리를 수행한다. 하지만 selete_related메소드를 사용하면 한 번 데이터베이스에서 결과를 가져온 후 필요할 때는 이를 그대로 사용한다. 다음 예제에서 두 방식이 어떻게 다른지 확인할 수 있다.
         c = ControlReport.objects.get(id=1)
         r = c.reporter
         c = ControlReport.objects.select_related().get(id=1)
         r = c.reporter
         RiskReport.objects.extra(select={'is_recent': " date > '2006-01-01'"})
          'num_of_report': 'SELECT COUNT(*) FROM risk_report WHERE risk_report.reporter = employee.id'
         SELECT employee.*, (SELECT COUNT(*) FROM risk_report WHERE risk_report.reporter = employee.id)
         where절을 사용하는 것 역시 가능하다.[7] 하지만 중첩질의는 지원하지 않는다.
         RiskReport.objects.extra(where=['id IN (3, 4, 5, 20)'])
         SELECT * FROM risk_report WHERE id IN (3, 4, 5, 20);
         select report_controlreport.content
         from report_controlreport, report_department_employees
         where report_department_employees.department_id = report_department_employees.employee_id
  • 니젤프림/BuilderPattern . . . . 6 matches
         쉽게 말해서, 아주 복잡한 오브젝트를 생성해야하는데, 그 일을 오브젝트를 원하는 클래스가 하는게 아니라, Builder 에게 시키는 것이다. 그런데 자꾸 나오는 생성/표현 의 의미는, 바로 director 의 존재를 설명해 준다고 할 수 있다. director 는 Building step(construction process) 을 정의하고 concrete builder 는 product 의 구체적인 표현(representation) 을 정의하기에.. 그리고, builder 가 추상적인 인터페이스를 제공하므로 director 는 그것을 이용하는 것이다.
         패스트(정크)푸드 레스토랑 맥도날드에서 어린이용 해피밀을 만들어내는 걸로 예를 들 수 있다. 일반적으로 해피밀은 메인, 사이드, 음료, 장난감 (햄버거, 프라이, 콜라, 매달 바뀌는 장난감)으로 이루어져 있다. 여기서 중요한건, 이런 템플릿이 정해져 있다는 것이다. 요즘 같이 까다로운 아이들에게 어릴때부터 맥도날드의 입맛을 확실히 들여놓으려면 당연히 다양한 바리에이션이 필요하다. 고객은 햄버거나 치즈버거나, 아니면 맥너겟이나 이런걸 선택할 수 있지만, 기본적으로 해피밀이 구성되는 방식에는 변함 없다. 여기서 빌더 패턴을 적용한다면, 카운터에서 주문을 받는 직원을 Director 라고 할 수 있다. 물론 고객은 Customer 이다. 고객이 원하는 바리에이션을 선택해서 해피밀 셋트를 구성하게 되면 (Customer가 Concrete Builder 를 선택한다) Director 는 정해진 템플릿에 따라 주방 직원(Concrete Builder) 에게 의뢰하여 해피밀 세트(Product) 를 만들어 낸다. 여기서 Director 가 Concrete Builder 에게 요구하는 방식은 종류에 따라 비슷 하므로 그것을 추상화시킨 인터페이스를 Builder 라고 할 수 있겠다.
         ==== Concrete Builder ====
         Builder 를 구현한 부분. 일반적으로 다수개의 Concrete Builder 가 존재하며, Builder 가 제공하는 인터페이스를 이용해서 late binding 의 형식으로 사용하게 된다. 물론, builder pattern 에서의 주 관심하는 Product 를 만들어내는 것이다.
         ==== Director ====
         Director 클래스는 Product 를 생성하는 방법과 순서 등을 주관한다. Builder 인스턴스를 가지고 있기 때문에 Concrete Builder 를 건네 받아서 Builder 에 연결해 준다.
          public Pizza getPizza() { return pizza; }
          public void createNewPizzaProduct() { pizza = new Pizza(); }
         /** "ConcreteBuilder" */
         /** "ConcreteBuilder" */
         /** "Director" */
          public Pizza getPizza() { return pizzaBuilder.getPizza(); }
          pizzaBuilder.createNewPizzaProduct();
         class BuilderExample {
          public void remove(PlanComponent planComponent) {
          return name;
          return description;
          return planComponents.get(index);
          public void remove(PlanComponent planComponent) {
          planComponents.remove(planComponent);
  • 디자인패턴 . . . . 6 matches
         디자인패턴에 대한 설명이라.. 다른 곳에서 이미 체계적인 설명들을 해 놓아서 장황하게 설명하지 않는다고 한다면, 말 그대로 '패턴'이 된 디자인들의 묶음입니다. (물론 그렇다고 패턴이 모든 디자인 문제를 해결해주는 silver bullet는 아니죠.) 처음 프로그램을 설계를 할때 참조할 수 있는, 어느정도 공식화 된 디자인들을 일컫습니다. 현재 거의 Reference화 된 23개의 패턴이 있고요. 계속 새로운 패턴이 추가되고 있는 것으로 알고 있습니다.
          * [http://www.cmcrossroads.com/bradapp/docs/pizza-inv.html - Pizza Inversion - a Pattern for Efficient Resource Consumption]
         그리고 한편으로는 Refactoring을 위한 방법이 됩니다. Refactoring은 OnceAndOnlyOnce를 추구합니다. 즉, 특정 코드가 중복이 되는 것을 가급적 배제합니다. 그러한 점에서 Refactoring을 위해 DesignPattern을 적용할 수 있습니다. 하지만, Refactoring 의 궁극적 목표가 DesignPattern 은 아닙니다.
          * http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps - Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods
  • 이영호/개인공부일기장 . . . . 6 matches
         ☆ 구입해야할 책들 - Advanced Programming in the UNIX Environment, Applications for Windows, TCP/IP Illustrated Volume 1, TCP/IP Protocol Suite, 아무도 가르쳐주지않았던소프트웨어설계테크닉, 프로젝트데드라인, 인포메이션아키텍쳐, 초보프로그래머가꼭알아야할컴퓨터동작원리, DirectX9Shader프로그래밍, 클래스구조의이해와설계, 코드한줄없는IT이야기, The Art of Deception: Controlling the Human Element of Security, Advanced Windows (Jeffrey Ritcher), Windows95 System Programming (Matt Pietrek)
         ☆ 앞으로 공부해야할 책들(사둔것) - Effective C++, More Effective C++, Exeptional C++ Style, Modern C++ Design, TCP/IP 네트워크 관리(출판사:O'Reilly), C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Physics for Game Developers(출판사:O'Reilly), 알고리즘(출판사:O'Reilly), Hacking Howto(Matt 저), Windows 시스템 실행 파일의 구조와 원리, C언어로 배우는 알고리즘 입문
         ☆ 레퍼런스 - 리눅스 공동체 세미나 강의록, C언어 함수의 사용법(함수 모음), 데비안 GNU/LINUX, C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Secure Coding 핵심원리
         2005년 7월 20일 시작 : Compilers(Jeffrey D. Ulman)
         3일 - 대항해시대 온라인 새 버전 Reverse Engineering 준비.
         8일~~31일 - Reverse Engineering (Assembly + PE + Kernel + Packing + Unpacking + Encrypt + Decrypt), 몇몇개의 Game Cracking. 몇몇개의 하드에 저장된 쉐어웨어 시리얼 제작.
         3일 (수) - Real Time Signal (기초) - fcntl, umask, 등의 함수에 대한 깊은 공부가 필요함.
         31 (일) - Network Programming(멀티쓰레드 - POSIX, MUTEX, SEMAPORE), System Programming(Kernel)
  • 정모/2012.7.25 . . . . 6 matches
          * Spring : SimpleWiki 작성. 게시물 Page Repositery 기능. Hibernate 사용하는 기능을 Page Repositery에 붙이려고 하는데 Hibernate가 어려워서 잘 될까 모르겠다. 이후에는 Spring의 security 기능을 이용해서 회원가입 기능을 붙일 예정. 위키 문법을 어느 정도까지 다루어야 할지 생각 중.
          * MVC의 Model과 DDD(는 아니지만)의 Domain - Repository와의 관계에 대해 고민했다. DAO와 Repository의 차이가 무엇인지 아직 잘 모르겠다. - [서지혜]
          * 작은자바이야기 : Generics와 Reflection API를 이용한 objectMapper 만들기. Reflection API는 강력해서 무척 마음에 든다. 그리고 objectMapper라는 아이디어를 잘 이용하면 다른 곳에서도 반복되는 작업을 많이 줄여줄 것 같아서 비슷한 방식을 사용하는 것도 좋을 것 같다.
          * Creative Club - ZP의 외부 활동이란 어떤 것이 있을까. 강력한 의견을 가진 사람이 없는 것이 우선 문제. 누군가가 뭘 할 때 필요한 아이디어를 내 보려고 함. OpenSource(소프트웨어, 라이브러리, 게임 개발 툴), ACM 출전, 멘토링, 공모전 등이 가능. ACM은 출전하기는 쉬우나 결과를 내기 어렵다. 멘토링은 많이들 관심이 있을지 미지수. 공모전은 시기적으로 적절한지 의문.
  • 프로그래밍/장보기 . . . . 6 matches
         import java.io.BufferedReader;
         import java.io.FileReader;
          private static BufferedReader br;
          line = br.readLine();
          return (int) rates[minRateIndex][1];
          br = new BufferedReader(new FileReader("test.txt"));
          String line = br.readLine();
          line = br.readLine();
          int result = processOneCase(Integer.parseInt(line));
          System.out.println(result);
         타이머를 켜놓고 시간을 우선시하다보니 역시 Refactoring을 하고 싶지 않았다. 요구사항을 읽고 감이 팍 오는 문제는 그냥 막 코딩하는 식이다. main에 확 집어 넣고 풀어도 그냥 풀린 문제를 굳이 메소드로 나누고 여러 군데에서 사용되는 변수를 필드화하는 것이 정말 귀찮았다. 하지만 그러한 방식으로 전환하고 습관화하는 능력을 키워야 겠다.
  • 프로그램내에서의주석 . . . . 6 matches
          아..["Refactoring"] 하라는 거군요.. 사실 설계 자체에서도 빠진 상태라 전체 구조 이해하는데 가장 크게 애를 먹었습니다. 아무튼 진짜 이해한 후에 코드를 수정해 놓는 것도 좋은 방법인건 분명하다고 생각합니다. ^^; --창섭
         자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
          하지만, "확실히 설명할때 {{{~cpp JavaDoc}}}뽑아서 그거가지고 설명하는게 편하긴 편하더라."라고 한말 풀어쓰는 건데, 만약 디자인 이해 후에 코드의 이해라면 {{{~cpp JavaDoc}}} 없고 소스만으로 이해는 너무 어렵다.(최소한 나에게는 그랬다.) 일단 코드 분석시 {{{~cpp JavaDoc}}}이 나올 정도라면, "긴장 완화"의 효과로 먹고 들어 간다. 그리고 우리가 코드를 읽는 시점은 jdk를 쓸때 {{{~cpp JavaDoc}}}을 보지 소스를 보지는 않는 것처럼, 해당 메소드가 library처럼 느껴지지 않을까? 그것이 메소드의 이름이나 필드의 이름만으로 완벽한 표현은 불가능하다고 생각한다. 완벽히 표현했다면 너무나 심한 세분화가 아닐까? 전에 정말 난해한 소스를 분석한 적이 있다. 그때도 가끔 보이는 실낱같은 주석들이 너무나 도움이 된것이 기억난다. 우리가 제출한 Report를 대학원 생들이 분석할때 역시 마찬가지 일것이다. 이건 궁극의 Refactoring문제가 아니다. 프로그래밍 언어가 그 셰익스피어 언어와 같았으면 하기도 하는 생각을 해본다. 생각의 언어를 프로그래밍 언어 대입할수만 있다면야.. --["상민"]
         이번기회에 comment, document, source code 에 대해서 제대로 생각해볼 수 있을듯 (프로그램을 어떻게 분석할 것인가 라던지 Reverse Engineering Tool들을 이용하는 방법을 궁리한다던지 등등) 그리고 후배들과의 코드에 대한 대화는 익숙한 comment 로 대화하는게 낫겠다. DesignPatterns 가 한서도 나온다고 하며 또하나의 기술장벽이 내려간다고 하더라도, 접해보지 않은 사람에겐 또하나의 외국어일것이니. 그리고 영어가 모국어가 아닌 이상. 뭐. (암튼 오늘 내일 되는대로 Documentation 마저 남기겠음. 글쓰는 도중 치열하게 Documentation을 진행하지도 않은 사람이 말만 앞섰다란 생각이 그치질 않는지라. 물론 작업중 Doc 이 아닌 작업 후 Doc 라는 점에서 점수 깎인다는 점은 인지중;) --석천
          pDelNode->deleteSafely(bRecursive);
          if(m_pPrev)
          m_pPrev->m_pNext = m_pNext;
          m_pNext->m_pPrev = m_pPrev;
          if(m_pParent && m_pParent->m_pFirstChild == this)
          m_pParent->m_pFirstChild = m_pNext;
         // MODE_ADDBEFORE일 때는, newnode가 this의 자식인 brother의 바로 윗형으로 입양을 간다.
         // nMode = MODE_ADDBEFORE
         // addChild(newnode, MODE_ADDBEFORE, brother); //newnode가 brother 바로 앞에 삽입된다.
         // addChild(newnode, /*MODE_ADDBEFORE*/); //newnode가 last child로 삽입된다.
         See Also Seminar:CommentOrNot , NoSmok:DonaldKnuth 's comment on programs as works of literature
  • .vimrc . . . . 5 matches
         set viminfo='20,"50 " read/write a .viminfo file, don't store more
         let TE_WinWidth = 20 " TagExplorer 창크기 조절
         let $grepfile="*.[ch] *.cpp"
         map ,gc :grep <cword> * -R<CR>
         vnoremap <c-a> :IncN<CR>
          au BufReadPre *.bin let &bin=1
          au BufReadPost *.bin if &bin | %!xxd
          au BufReadPost *.bin set ft=xxd | endif
          au BufWritePre *.bin if &bin | %!xxd -r
          au BufWritePre *.bin endif
          au BufNewFile,BufRead /tmp/cvs* set fenc=utf-8 enc=utf-8
          au BufNewFile,BufRead ChangeLog* set fenc=utf-8 enc=utf-8
  • 3DGraphicsFoundation/INSU/SolarSystem . . . . 5 matches
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
          sizeof(PIXELFORMATDESCRIPTOR), // Size of this structure
          1, // Version of this structure
          PFD_DOUBLEBUFFER, // Double buffered
          // field of view of 45 degrees, near and far planes 1.0 and 425
          // Modelview matrix reset
          glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
         void RenderScene()
          auxSolidSphere(30.0f);
          auxSolidSphere(2.0f);
          auxSolidSphere(5.0f);
          auxSolidSphere(6.0f);
          auxSolidSphere(1.0f);
          auxSolidSphere(4.0f);
          auxSolidSphere(10.0f);
          auxSolidSphere(9.0f);
          auxSolidSphere(8.0f);
          auxSolidSphere(7.0f);
          auxSolidSphere(5.0f);
         int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  • CollaborativeFiltering . . . . 5 matches
         협업 (상호협동) 필터링, Recommender System이라고도 불림. ProjectPrometheus에서 사용한다.
          1. 현재 이용중인 user 와 비슷한 취향의 사용자 집합을 선택 - calculate user correlation
          1. 선택된 neighbours 들과 자료를 근거로 예측 - generate a prediction
         ==== Calculate user correlation ====
          * Pearson correlation
          * Constrained Pearson correlation
          * The Spearman rank correlation
          * Emtropy-based uncertainty measure
          * Mean-square difference algorithm
          * Correlation thresholding
          * Best-n correlations
         ==== Generate a prediction ====
          * Overview on various CF algorithms (recommended) http://www.research.microsoft.com/users/breese/cfalgs.html
          * [http://wwwbroy.in.tum.de/~pretschn/papers/personalization/personalization.html Personalization on the Web]
          * http://www.sims.berkeley.edu/resources/collab/ (링크 모음)
          * [http://www.voght.com/cgi-bin/pywiki?RecommenderSystems Recommender Systems]
          * [http://www.cs.umn.edu/Research/GroupLens/ CF의 아버지 Resnick이 만든 최초의 뉴스 CF 시스템 GroupLens]
  • ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 5 matches
         1. 선택적 capture
         3. ethereal의 기능 중 1개 또는 새로운 기능을 한가지 구현
         WSA prefix 를 가진 함수의 경우 대부분 Winsock 2에서 제공 되기 시작한 것이며, 이 WSAIoctl 역시도 윈속 2에서 지원된다.
         ※ 'SIO_RCVALL' : undeclared identifier 에러가 뜰 경우에 아래 코드를 추가 한다.
          int ret,
          DWORD dwBytesRet,
          return -1;
          // Create a raw socket for receiving IP datagrams
          return -1;
          // Get an interface to read IP packets on
          return -1;
          // This socket MUST be bound before calling the ioctl
          return -1;
          NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR)
          return -1;
          // Start receiving IP datagrams until interrupted
          ret = WSARecv(s, &wbuf, 1, &dwBytesRet, &dwFlags, NULL, NULL);
          if (ret == SOCKET_ERROR)
          printf("WSARecv() failed: %d\n", WSAGetLastError());
          return -1;
  • DelegationPattern . . . . 5 matches
         또한, 클래스 하나가 방대해질때, 적절하게 그 클래스의 책임을 다른 클래스들에게 위임해주는 것은 ["Refactoring"] 의 방법이 된다.
         example) 예전에 VonNeumannAirport 을 JuNe 과 ["1002"] 가 Pair 하던중 JuNe 이 작성했던 Refactoring 으로서의 Delegation.
          private int [] _departureGate;
          return _traffic;
          public void setDepartureGates(int [] aCity) {
          _departureGate = aCity;
          return _arrivalGate;
          public int [] getDepartureGates() {
          return _departureGate;
          -_getDepartureCityGate(toCity))+1;
          return distance;
         이 기능을 추가하기 위해 일단 Airport Code 를 Refactoring 하기로 했다. 이를 위해 Airport 의 기능중 Configuration 과 관련된 기능에 대해 Configuration 을 Extract 하고, 내부적으로는 Delegation 함으로서 외부적으로 보이는 기능에 대해서는 일관성을 유지한다. (Test Code 가 일종의 Guard 역할을 했었음)
          private int [] _departureGate;
          public void setDepartureGates(int [] aCity) {
          _departureGate=aCity;
          return _arrivalGate;
          public int [] getDepartureGates() {
          return _departureGate;
          -_getDepartureCityGate(toCity))+1;
          return distance;
  • Eclipse . . . . 5 matches
          * [http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html Eclipse + Ant]
          * [http://www.eclipsepowered.org/archives/2004/11/18/best-jvm-settings-for-eclipse/ Best JVM Setting for Eclipse]
          1. Menu -> Window -> Open Perspective -> CVS Repositary (없으면 Other)에서
          1. CVS Repositary View에서 Mouse R Popup
          1. {{{~cpp PopUp}}} -> New -> CVS Repositary Location
          * '''Ecilpse가 JRE path문제로 실행이 안되는 경우'''
          * Eclipse를 설치할때 JRE를 Eclipse가 못찾아서 실행 되지 않는 경우가 있다. 특히 학교의 Win98에서 이러하다. 이럴 경우 '''Eclipse 폴더 내에 jdk1.4이상의 jre폴더를 복사'''하면 Install Complete라는 이미지와 함께 Eclipse가 세팅되고 실행 된다. 이후 해당 Eclipse의 실행 포인트 역시 jre의 vm이 되는데,
          * 외부 {{{~cpp JavaDoc}}} ''Preferences -> Java -> Installed JREs -> Javadoc URL''
         ||Ctrl+F8|| Prespective간 전환||
         || Alt+Shift+Q + ? || Window->Preference->workspace->key->Advenced 의 Help Me... 옵션을 키고 Alt+Shift+Q를 누르고 기다려 보자 ||
         || Ctrl+Alt+H || 메소드 호출 순서를 Tree로 보여준다. ||
         [1002]의 경우 jmechanic, pmd, 그리고 잘 모르겠는 profiler (패키지 이름은 ru.nlmk 였는데) plugin 랑 Eclipse Tail 깔아서 쓰는중. 그리고 FreeMarker 작업시 FreeMarker plugin 설치해서 작업중.
          * [neocoin]:정말 Java Source Editor면에서는 이것보다 나은것을 찾지 못하겠다. CVS 지원 역시 훌륭하고, Project파일 관리 면에서도 우수하다. 하지만 가장 인상 깊었던건 오픈 프로젝트라서, 이걸 볼수 있다는 점이다. 바로 [http://64.38.198.171/downloads/drops/R-2.0-200206271835/testResults.php org.eclipse.core.tests] 이런것을 각 분야별로 수백개씩 하고 있었다. 이런것은 나에게 힘을 준다. --상민
          * J-Creator가 초보자에게 사용하기 좋은 툴이였지만 조금씩 머리가 커가면서 제약과 기능의 빈약이 눈에 띕니다. 얼마전 파이썬 3차 세미나 후 Eclipse를 알게 되면서 매력에 푹 빠지게 되었습니다. 오늘 슬슬 훑어 보았는데 기능이 상당하더군요. 상민형의 칭찬이 괜히 나온게 아니라는 듯한 생각이...^^;;; 기능중에 리펙토링 기능과 JUnit, CVS 기능이 역시 눈에 제일 띄는군요 --재동
         SeeAlso [http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/eclipse-project-home/plans/3_0/freeze_plan.html Eclipse 3.0 endgame plan]
          * quick fix, UnitTest, [Refactoring], [CVS], 그리고 방대하고 다양한 플러그인들이 제일 마음에 든다. 툴을 사용하는 재미가 있다. - [임인택]
          * 2005년 5월 중순경에 3.1 M7 버전이 나왔다. 아마 다음 버전이나 그 다음 버전이 3.1 정식버전이 되지 않을까 싶다. M6에서 M7로 가면서 메모리 사용량이 많이 줄어든 것 같다(Freemem 이라는 플러그인으로 메모리 사용량 확인). 전체적으로 가벼워진 듯한 느낌을 준다. (총 용량은 변화가 거의 없지만) - [임인택]
  • EffectiveC++ . . . . 5 matches
         === Item1: Prefer const and inline to #define ===
         preprocessor(전처리기)보다는 compiler를 선호한다는 뜻.[[BR]]
         DeleteMe #define(preprocessor)문에 대해 const와 inline을(compile)의 이용을 추천한다. --상민
          int scores[NUM_TURNS]; // 상수의 사용.
          inline int max(int a, int b) { return a > b ? a : b; } // int형으로만 제한 되어있네..
          inline const T& max (const T& a, const T& b) { return a > b ? a : b; }
         === Item 2: Prefer iostream to stdio.h ===
         === Item 3: Prefer new and delete to malloc and free ===
         * malloc & free
          * ''생성자 및 소멸자와 적절히 상호동작하기 때문에. they are clearly the superior choice.''
         === Item 4: Prefer C++-style comments ===
         === Item 5: Use the same form in corresponding uses of new and delete ===
         typedef string AddressLines[4]; // 개인 주소는 4개의 줄을 차지하고
         string *pal = new AddressLines; // "new AddressLines" returns a string *, just "new string[4]"..
         === Item 7: Be prepared for out-of-memory conditions. ===
         void noMoreMemory ()
          cerr << "Unable to satisfy request for memory\n";
          set_new_handler (noMoreMemory);
          int *pVigdataArray = new int [100000000]; // 100000000개의 정수공간을 할당할 수 없다면 noMoreMemory가 호출.
          static new_handler currentHandler;
  • EightQueenProblem/강석천 . . . . 5 matches
          return self.boardArray[(y,x)]
          return 0
          return 0
          return 0
          return 0
          return 1
          return 1
          return 0
          return 1
          return 0
          return 1
          return 0
          return 1
          return 0
          return (CornerX, CornerY)
          return (CornerX, CornerY)
          return lines
          Ret = 0
          Ret = 1
          return Ret
  • ErdosNumbers/임인택 . . . . 5 matches
         def readFile(fileName):
          line = f.readline()
          line = f.readline()
          return lines
          return sNum, nPaper, nPerson
          return str.lstrip().rstrip()
          return names
          lines = readFile(fileName)
          break
          erdosNotRelated(allNames, names)
          printResults(lines[2+nPaper:], allNames)
          return allNames
         def printResults(names, allNames):
         def erdosNotRelated(allNames, names):
          self.lines = readFile("sample.txt")
          self.assertEqual(True, allNames.has_key('Reisig, W.'))
  • Gof/Facade . . . . 5 matches
         http://zeropage.org/~reset/zb/data/facad057.gif
         예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
         http://zeropage.org/~reset/zb/data/facad058.gif
         http://zeropage.org/~reset/zb/data/facade.gif
          - facade 에 대한 정보가 필요없다. facade object에 대한 reference를 가지고 있을 필요가 없다.
         Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
          Scanner (istream&);
          istream& _inputStream;
         Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
         Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
          ProgramNode* variable, ProgramNode* expression
          virtual ProgramNode* NewRetrunStatement (
         parser tree는 StatementNode, ExpressionNode와 같은 ProgramNode의 subclass들의 인스턴스들로 이루어진다. ProgramNode 계층 구조는 Composite Pattern의 예이다. ProgramNode는 program node 와 program node의 children을 조작하기 위한 인터페이스를 정의한다.
          virtual void Remove (ProgramNode*);
         Traverse operaton은 CodeGenerator 객체를 인자로 취한다. ProgramNode subclass들은 BytecodeStream에 있는 Bytecode객체들을 machine code로 변환하기 위해 CodeGenerator 객체를 사용한다. CodeGenerator 클래는 visitor이다. (VisitorPattern을 참조하라)
          virtual void Visit (ExpressionNode*);
          CodeGenerator (BytecodeStream&);
          BytecodeStream& _output;
         ProgramNode의 각 subclass들은 ProgramNode의 child인 ProgramNode 객체를 호출하기 위해 Traverse operation을 구현한다. 매번 각 child는 children에게 같은 일을 재귀적으로 수행한다. 예를 들어, ExpressionNode는 Traverse를 다음과 같이 정의한다.
         void ExpressionNode::Traverse (CodeGenerator& cg) {
  • Gof/Singleton . . . . 5 matches
         === Structure ===
         http://zeropage.org/~reset/zb/data/singl014.gif
          return _instance;
         Smalltalk에서 unique instance를 리턴하는 functiond은 Singleton 클래스의 class method로 구현된다. 단일 인스턴스가 만들어지는 것을 보장하기 위해서 new operation을 override한다. The resulting Singleton class might have the following two class methods, where SoleInstance is a class variable that is not used anywhere else:
          self error: 'cannot create new object'
         Singleton의 subclass를 선택하는 또 다른 방법은 Instance 를 Parent class에서 빼 낸뒤, (e.g, MazeFactory) subclass 에 Instance를 구현하는 것이다. 이는 C++ 프로그래머로 하여금 link-time시에 singleton의 class를 결정하도록 해준다. (e.g, 각각 다른 구현부분을 포함하는 객체화일을 linking함으로써.)
         더욱더 유연한 접근 방법으로 '''registry of singletons''' 이 있다. 가능한 Singleton class들의 집합을 정의하는 Instance operation을 가지는 것 대신, Singleton class들을 잘 알려진 registry 에 그들의 singleton instance를 등록하는 것이다.
         registry 는 string name 과 singletons 을 mapping 한다. singleton의 instance가 필요한 경우, registry에 string name으로 해당 singleton 을 요청한다. registry는 대응하는 singleton을 찾아서 (만일 존재한다면) 리턴한다. 이러한 접근방법은 모든 가능한 Singleton class들이나 instance들을 Instance operation이 알 필요가 없도록 한다. 필요한 것은 registry에 등록될 모든 Singleton class들을 위한 일반적인 interface이다.
          static void Register (const char* name, Singleton*);
          static List<NameSingletonPair>* _registry;
         Register operation은 주어진 string name으로 Singleton instance를 등록한다. registry를 단순화시키기 위해 우리는 NameSingletonPair 객체의 리스트에 instance를 저장할 것이다. 각 NameSingletonPair는 name과 instance를 mapping한다. Lookup operation은 주어진 이름을 가지고 singleton을 찾는다. 우리는 다음의 코드에서 environment variable이 원하는 singleton의 이름을 명시하고 있음을 생각할 수 있다.
          // Lookup returns 0 if there's no such singleton
          return _instance;
          Singleton::Register ("MySingleton", this);
         더 이상 Singleton class 는 singleton 객체를 만들 책임이 없다. 그 대신 이제 Singleton 의 주된 책임은 시스템 내에서 선택한 singleton 객체를 접근가능하도록 해주는 것이다. static object approach는 여전히 단점이 존재한다. 모든 가능한 Singleton subclass들의 인스턴스들이 생성되어지던지, 그렇지 않으면 register되어서는 안된다는 것이다.
          // existing interface goes here
          return _instance;
          return _instance;
         가능한 해결책으로는 Implementation에서 언급한 registry approach를 사용하는 것이다. Dynamic linking 방법도 또한 유용한 방법이다. Dynamic linking 은 application으로 하여금 사용하지 않는 subclass 도 전부 load해야 할 필요성을 덜어준다.
         Smalltalk-80[Par90] 의 SingletonPattern의 예는 ChangeSet current라는 코드에 대한 change들 집합들이다. 더 적합한 예제로는 클래스들과 그들의 '''metaclass''' 간의 관계이다. metaclass는 클래스의 클래스로, 각 metaclass는 하나의 인스턴스를 가진다. metaclass들은 이름을 가지지 않지만 (그들의 단일인스턴스를 통한 간접적인 방법을 ㅔㅚ하고), 그들의 단일 인스턴스를 유지하며 일반적으로 다른 클라이언트에 의해 생성되지 않는다.
  • HowManyZerosAndDigits/임인택 . . . . 5 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          int result = 1;
          result = result*i;
          return result;
          return;
          int remainder = _fact % _b;
          if( remainder != 0 )
          numbers.add(new Long(remainder));
          remainder = quotient % _b;
          if( !(quotient==0 && remainder==0)) // 제일 상위자리가 0인 경우는 넣지 않는다.
          numbers.add(new Long(remainder));
          return count;
          return howManyZeros((long)_fact);
          return count;
          return count;
          return numbers.size();
          int n = readInt();
          int b = readInt();
          public static int readInt() throws Exception {
  • HowToStudyRefactoring . . . . 5 matches
         ["Refactoring"]을 혹은 동명의 책을 공부하는 법
         OOP를 하든 안하든 프로그래밍이란 업을 하는 사람이라면 이 책은 자신의 공력을 서너 단계 레벨업시켜 줄 수 있다. 자질구레한 기술을 익히는 것이 아니고 기감과 내공을 증강하는 것이다. 혹자는 DesignPatterns 이전에 ["Refactoring"]을 봐야 한다고도 한다. 이 말이 어느 정도 일리가 있는 것이, 효과적인 학습은 문제 의식이 선행되어야 하기 때문이다. DesignPatterns는 거시적 차원에서 해결안들을 모아놓은 것이다. ["Refactoring"]을 보고 나쁜 냄새(Bad Smell)를 맡을 수 있는 후각을 발달시켜야 한다. ["Refactoring"]의 목록을 모두 외우는 것은 큰 의미가 없다. 그것보다 냄새나는 코드를 느낄 수 있는 감수성을 키우는 것이 더 중요하다. 본인은 일주일에 한 가지씩 나쁜 냄새를 정해놓고 그 기간 동안에는 자신이 접하는 모든 코드에서 그 냄새만이라도 확실히 맡도록 집중하는 방법을 권한다. 일명 ["일취집중후각법"]. 패턴 개념을 만든 건축가 크리스토퍼 알렉산더나 GoF의 랄프 존슨은 좋은 디자인이란 나쁜 것이 없는 상태라고 한다. 무색 무미 무취의 無爲적 自然 코드가 되는 그날을 위해 오늘도 우리는 리팩토링이라는 有爲를 익힌다. -- 김창준, ''마이크로소프트웨어 2001년 11월호''
          * Pair Refactoring : 함께 리팩토링한다. 혼자 하는 것 보다 훨씬 빨리 훨씬 더 많은 것을 배울 수 있다. 특히, 각자 작성했던 코드를 함께 리팩토링하고, 제삼자의 코드를 또 함께 리팩토링해 보라. 사람이 많다면 다른 페어가 리팩토링한 것과 서로 비교하고 토론해보라.
  • IntelliJ . . . . 5 matches
         Refactoring 기능과 깔끔한 UI, Inspection 기능 등이 돋보인다. 2002년 Jolt Award 수상.
          2. CVS Root 설정 - ZP 서버에 연결할 경우 PServer 를 선택, Repository Path 로 /home/CVS 로 설정, Host에는 zeropage.org, User name 은 자기 아이디를 써준다.
          4. Checkout - 이는 CVSROOT의 modules 에 등록된 project 들만 가능하다. CVS 관리자는 CVSROOT 의 modules 화일에 해당 프로젝트 디렉토리를 추가해준다.([http://cvsbook.red-bean.com/cvsbook.html#The_modules_File module file]) 그러면 IntelliJ 에 있는 CVS의 Checkout 에서 module 을 선택할 수 있다. Checkout 한다.
         || F6 || Rename. class 이건 Method 이건. Refactoring 의 ["IntelliJ"] 의 중요 기능중 하나. ||
         || ctrl + E || Recent File. ||
         || shift + F6 || rename refactoring ||
         || ctrl + alt + M || extract method refactoring||
  • JavaStudy2002/입출력관련문제 . . . . 5 matches
          while(tokenizer.hasMoreTokens()){
          return output;
          BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
          input = bufferReader.readLine();
          return getSplitedStringArray(input, " \n\t");
  • JavaStudy2003/세번째과제/곽세환 . . . . 5 matches
          public int getX() { return(x); }
          public int getY() { return(y); }
         == Rectangle.java ==
         public class Rectangle {
          private double area;
          public Rectangle() {
          setArea();
          public void setArea() {
          area = Math.abs(right_bottom.getX() - left_top.getX()) * Math.abs(left_top.getY() - right_bottom.getY());
          "area : " + area;
         == MyPictureFrame.java ==
         class MyPictureFrame {
          private Rectangle rect = new Rectangle();
          public MyPictureFrame() {
          rect.setData(100, 200, 300, 400);
          rect.move(50, 50);
          rect.draw();
          MyPictureFrame frame = new MyPictureFrame();
  • JollyJumpers/iruril . . . . 5 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          int differenceValue;
          boolean [] differenceArray;
          BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
          input = in.readLine();
          return input;
          return intArray;
          differenceValue = length-1;
         // System.out.println(differenceValue);
          differenceArray = new boolean [length];
          differenceArray = setFalse( differenceArray );
          for(int i = 0; i < differenceValue; i++)
          differenceArray[tempDiffer] = true;
          for(int i = 1; i <= differenceValue; i++)
          if ( differenceArray[i] == false )
          break;
          return jolly;
          return temp;
          break;
  • JollyJumpers/신재동 . . . . 5 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          return false;
          return true;
          return gap > 0 ? gap : -1 * gap;
          BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
          String line = reader.readLine();
          public void testJollyJumperThree() {
  • Linux/필수명령어/용법 . . . . 5 matches
         - $ cat content report.first myreport
         content와 report.first 두 개의 문서가 연결된 myreport라는 파일을 생성하게 된다.
         compress
         - compress [ -cCdfv ] 파일명
         -C : 파일을 블록으로 분화하는 것을 금지한다. 이것은 compress의 구식 버전이 파일을 읽을 수 있도록 하기 위함이다.
         압축된 파일은 이름에 접미사 .Z가 추가된다. 압축 알고리즘에 의해 크기가 줄어드는 경우만 압축을 수행한다. -d 옵션은 역으로 압축을 풀지만 uncompress를 사용하면 옵션을 주지 않고 압축을 풀 수 있다. 압축을 푸는 경우 파일 이름 뒤에 접미사 .Z를 생략할 수도 있다.
         - $ compress -v roman
         - $ compress -d noman.Z 혹은 $ compress -d roman
         -R : 디렉토리를 재귀적(recursive)으로 복사한다.
         - $ cp -r * /somewhere
         - \r 0 칼럼으로(carriage return) \f 탭(tab)
         - $ echo "The RedHat !"
         - The RedHat !
         - $ echo -e 'Linux\RedHat !'
         - Linux RedHat !
         grep/fgrep
         파일내에서 특정 패턴을 검색한다. 이름은 Global Regular Express Printer 의 머리글자이다.
         - grep [ -vclhnief ] 표현 파일명(들)
         - fgrep [ -vclhnief ] 문자열 파일명(들)
         원하는 탐색 단어 혹은 문장을 검색한다. 표현은 일반 표현식을 사용한다. fgrep은 문자열을 검색할 때 빠르게 사용할 수 있다.
  • MoinMoinBugs . . . . 5 matches
         Back to MoinMoinTodo | Things that are MoinMoinNotBugs | MoinMoinTests contains tests for many features
         Tables don't work right if there are trailing spaces.
         ''Yes, by design, just like headings don't accept trailing spaces. In the case of headings, it is important because "= x =" is somewhat ambiguous. For tables, the restriction could be removed, though.''
         And as a fun sidenote, the UserPreferences cookie doesn't seem to work. The cookie is in my ~/.netscape/cookies file still. My EfnetCeeWiki and XmlWiki cookies are duplicated!? It is kind of like the bug you found when I, ChristianSunesson, tried this feature with netscape just after you deployed it.
         Hehe, and my changes are not logged to the RecentChanges database, I'll hope you find these changes this year. :) BUG BUG BUG!
         ''Well, Netscape suxx. I send the cookies with the CGI'S path, w/o a hostname, which makes it unique enough. Apparently not for netscape. I'll look into adding the domain, too.''
          * Solve the problem of the Windows filesystem handling a WikiName case-indifferent (i.e. map all deriatives of an existing page to that page).
          * Check whether the passed WikiName is valid when editing pages (so no pages with an invalid WikiName can be created); this could also partly solve the case-insensitive filename problem (do not save pages with a name only differing in case)
          * InterWiki links should either display the destination Wiki name or generate the A tag with a TITLE attribute so that (at least in IE) the full destination is displayed by floating the cursor over the link. At the moment, it's too hard to figure out where the link goes. With that many InterWiki destinations recognised, we can't expect everyone to be able to recognise the URL.
          * Hover over the interwiki icon and you'll already get a tooltip, I'll look into the title attribute stuff.
          * RecentChanges can tell you if something is updated, or offer you a view of the diff, but not both at the same time.
          * If you want the ''latest'' diff for an updated page, click on "updated" and then on the diff icon (colored glasses) at the top.
          * That's what I'm doing for the time being, but by the same rationale you don't need to offer diffs from RecentChanges at all.
          * The intent is to not clutter RecentChanges with functions not normally used. I do not see a reason you want the lastest diff when you have the much better diff to your last visit.
          * It'd be really nice if the diff was between now and the most recent version saved before your timestamp (or, failing that, the oldest version available). That way, diff is "show me what happened since I was last here", not just "show me what the last edit was."
          * Hmmm, that '''is''' so. :) Take a look at the message at the top of the diff page after clicking on "updated", it'll often show text like "spanning x versions". You need the current CVS version for that, though.
          * Oh, okay. Is this MoinMoin CVS enabled? Reason being: I did a few updates of a page, and was only being shown the last one. I'll try that some more and get back to you.
          * Not CVS, but versioning all the same. I mean you have to get the most recent code from the SourceForge CVS archive for some features to work, if you test on a ''local'' wiki.
          if letter <> current_letter:
         ''Differently broken. :) I think we can live with the current situation, the worst edges are removed (before, chopping the first byte out of an unicode string lead to broken HTML markup!). It will stay that way until I buy the [wiki:ISBN:0201616335 Unicode 3.0] book.''
  • OurMajorLangIsCAndCPlusPlus/setjmp.c . . . . 5 matches
         // Copyright (C) 2002 Michael Ringgaard. All rights reserved.
         // Redistribution and use in source and binary forms, with or without
         // modification, are permitted provided that the following conditions
         // are met:
         // 1. Redistributions of source code must retain the above copyright
         // 2. Redistributions in binary form must reproduce the above copyright
         // may be used to endorse or promote products derived from this software
         // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
         // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
         // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
         // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
         // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
         // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
          xor eax, eax // Return 0
          ret
          mov eax, 8[esp] // Get return value (eax)
          mov ebx, OFS_EIP[edx] // Get new EIP value and set as return address
          mov ebp, OFS_EBP[edx] // Restore EBP, EBX, EDI, and ESI
          ret
  • PatternOrientedSoftwareArchitecture . . . . 5 matches
         || From Mud to Structure || Layer, Blackboard Pattern || 전체적인 시스템을 상호 협력하는 하부 그룹으로 나누어서 관리 힌다.||
         || Interactive Systems || Model-View-Controlled, Presentation-Abstraction-Control Pattern || - ||
          * It may be necessary to build other systems at a later date with the same low-level issues as the system you are currently designing ( 정확한 의미는 모르겠음, 누가 해석좀....)
          * 이해하기 쉽고 유지보수도 하기 쉽게 하기 위해서 유사한 필요한 기능(responsibilities)을 그룹화 한다.
          * 구조(Structure) : 레이어는 다음과 같은 기본 구조를 가지고 있다.
          * 해야할 기능(responsibility)
          * Scenario2 - bottom-up communication, 레이어 1에서 시작하는 연쇄적인 동작들이다. top-down communicatin과 헷갈릴 수도 있는데 top-down communication은 요청(requests)에 의해서 동작하지만, bottom-up communication은 통지(notifications)에 의해서 동작한다. 예를 들어서 우리가 키보드 자판을 치면, 레벨1 키보드에서 최상위 레벨 N에 입력을 받았다고 통지를 한다. bottom-up communicatin에서는 top-down communication과는 반대로 여러개의 bottom-up 통지들(notifications)은 하나의 통지로 압축되어서 상위 레이어로 전달되거나 그대로 전달된다.
          * Refine layering. 위의 1~4번 과정을 반복 하여라.
          * Relaxed Layered System : 이시스템을 통해서 얻은 유연성과 성능의 향상은 유지보수 능력의 저하를 가져온다. application 소프트웨어 보다 infrastructure(영구적인) 시스템에서 자주 본다. UNIX, X Window System가 그예이다.
          * 레이어의 재활용 - 프로그래머들은 현재 존재하는 레이어가 자신의 목적에 맞지 낳는다고 이미 있는것을 재사용 하기보다는 새로 짜는 경우가 많다. 그러나 현재 존재하는 레이어를 재사용(black-box reuse)하는 것은 개발에 드는 노력과 프로그램의 결점들을 극적으로 감소 시킬 수 있다.
          * Dependescies are kept local : 의존성이 특정 부분에만 걸쳐 있기 때문에 이렇게 된다. 따라서 시스템이 portability하게 된다.
          * input은 intermediate 와 마지막 result와 마찬가지로 다양한 표현이 있다. 알고리즘들은 다양한 paradigm들에 의해서 수행된다.
          * 해결책(solution) : Blackboard 구조의 바탕에 깔린 개념은 공동의 데이터 구조에 대해서 협동적으로 작동하는 독립된 프로그램들의 집합이다. 그 독립적인 프로그램들은 서로 다른 프로그램을 호출하지 않고 또한 그것의 행동에 대해 미리 정의된 순서는 없다. 대신에 시스템의 방향은 주로 현재의 상태나 진행(progress)에 의해 결정된다. 데이터-관리 조종 체계(data-directed control regime)는 opportunistic problem solving 이라고도 불린다. moderator(중재자) component는 만약 하나 이상의 component가 contribution을 만들수 있다면 프로그램들이 실행되는 순서를 결정한다.
          * 구조 : 자신의 시스템을 blackboard(knowledge source들의 집합, control components)라고 불리우는 component로 나누어라. blackboard는 중앙 데이터 저장소이다. solution space와 control data들의 요소들이 여기에 저장된다. 하나의 hypothesis는 보통 여러가지 성질이 있다. 그 성질로는 추상 레벨과 추측되는 가설의 사실 정도 또는 그 가설의 시간 간격(걸리는 시간을 말하는거 같다.)이다. 'part-of'또는'in-support of'와 같이 가설들 사이의 관계를 명확이 하는 것은 보통 유용하다. blackboard 는 3차원 문제 공간으로 볼 수도 있다. X축 - time, Y축 - abstraction, Z축 - alternative solution. knowledge source들은 직접적으로 소통을 하지 않는다. 그들은 단지 blackboard에서 읽고 쓸뿐이다. 그러므로 knowledge source 들은 blackboard 의 vocabulary들을 이해해야 한다. 각 knowledge source들은 condition부분과 action부분으로 나눌 수 있다. condition 부분은 knowledge source가 기여를 할수 있는지 결정하기 위해서 blackboard에 적으면서 현재 solution process 의 상태를 계산한다. action 부분은 blackboard의 내용을 바꿀 수 있는 변화를 일으킨다. control component 는 루프를 돌면서 blackboard에 나타나는 변화를 관찰하고 다음에 어떤 action을 취할지 결정한다. blackboard component는 inspect와 update의 두가지 procedure를 가지고 있다.
          Responsibility : Manages central data
          Responsibility : Evaluates its own applicability, Computes a result, Updates Black board
          Responsibility : Monitors Blackboard, Schedules Knowledge Source activations
         == Thread ==
  • PerformanceTest . . . . 5 matches
         == HighResolutionTimer 사용하기 ==
          BOOL QueryPerformanceFrequency(LARGE_INTEGER* param)
         수행시간 측정용 C++ Class. 수행시간 단위는 Sec 입니다. 단 HighResolutionTimer를 지원하는 프로세서가 필요합니다.
          __int64 m_nStart, m_nEnd, m_nFreq;
          m_nStart = m_nEnd = m_nFreq = 0;
          QueryPerformanceFrequency((LARGE_INTEGER*)&m_nFreq);
          double Result () {
          return (double)(m_nEnd - m_nStart)/m_nFreq;
          // result
          printf ("estimated time : %f \n", est.Result ());
          return 0;
          return rand () % nBoundary;
          return nMiddleKey;
          return FALSE;
          short timezone ; /* difference between local time and GMT */
         펜티엄 이상의 CPU에서 RDTSC(Read from Time Stamp Counter)를 이용하는 방법이 있다. 펜티엄은 내부적으로 TSC(Time Stamp Counter)라는 64비트 카운터를 가지고 있는데 이 카운터의 값은 클럭 사이클마다 증가한다. RDTSC는 내부 TSC카운터의 값을 EDX와 EAX 레지스터에 복사하는 명령이다. 이 명령은 6에서 11클럭을 소요한다. Win32 API의 QueryPerformanceCounter도 이 명령을 이용해 구현한 것으로 추측된다. 인라인 어셈블러를 사용하여 다음과 같이 사용할 수 있다.
         Windows는 Multi-Thread로 동작하지 않습니까? 위 코드를 수행하다가 다른 Thread로 제어가 넘어가게 되면 어떻게 될까요? 아마 다른 Thread의 수행시간까지 덤으로 추가되지 않을까요? 따라서 위에서 작성하신 코드들은 정확한 수행시간을 측정하지 못 할 것 같습니다. 그렇다고 제가 정확한 수행시간 측정을 위한 코드 작성 방법을 알지는 못합니다. -_-;
  • PrimaryArithmetic/sun . . . . 5 matches
          if( number == -1 ) return false;
          return numPointer >= 0;
          return numbers[numPointer--] - '0';
          int result = PrimaryArithmetic.add(num1, num2);
          assertEquals( expected, result );
          throw new ArithmeticException( "We expected " + expected + ", but was " + result + " (num1=" + num1 + ", num2=" + num2 + ")" );
          else break;
          return counts;
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          BufferedReader in = new BufferedReader( new InputStreamReader( System.in ));
          while( (line=in.readLine()) != null ) {
          if( num1 == 0 && num2 == 0 ) break;
  • ProjectPrometheus/Iteration5 . . . . 5 matches
         || 금|| 8/16 || Renaissance Club ||
         ||||||Story Name : Recommendation System(RS) Implementation ||
         || Object-RDB Relation 을 위한 Gateway 작성 || 1 || . ||
         || Release 계획 & 1차 Release || . || . ||
  • ProjectPrometheus/MappingObjectToRDB . . . . 5 matches
          For Recommendation System (Read Book, point )
          For Recommendation System ( Related Book Point )
          1. 13개월 프로젝트인데 2만라인짜리라는점 - 뭐.. 꼭 소스 라인수로 세는건 무리가 있긴 하지만. Servlet 프로젝트 2만라인. 내가 전에 팀 프로젝트로 MFC 엑셀 만들때가 1만 7천라인이였는데. -_-a 물론, Refactoring 이 잘 되어있고, XP 가 잘 적용된 프로젝트이라면 적은라인수로 많은 일을 하겠지만.
  • PythonLanguage . . . . 5 matches
          * '''ExtremeProgramming 과 잘 어울린다.'''
          * TestFirstProgramming, UnitTest(PyUnit 참고), ["Refactoring"] 등의 방법론을 같이 접목시키면 더욱 큰 효과를 발휘할 수 있다.
          * [PythonMultiThreading]
          * [ChartDirector]
          * [PythonThreadProgramming]
         이미 다른 언어들을 한번쯤 접해본 사람들은 'QuickPythonBook' 을 추천한다. 예제위주와 잘 짜여진 편집으로 접근하기 쉽다. (두께도 별로 안두껍다!) Reference 스타일의 책으로는 bible 의 성격인 'Learning Python' 과 Library Reference 인 'Python Essential Reference' 이 있다.
          * [http://wikidocs.net/read/book/136 왕초보를 위한 파이썬]
         ~~[http://www.python.or.kr:8080/python/LectureNotes/ 파이썬정보광장PPT_강추]~~
          * http://openlook.org/ - FreeBSD 포트 커미터로, Open Source 쪽으로 유명하신 NoSmok:퍼키 님 개인 사이트.
          * http://www.onlamp.com/python/ - O Reilly ONLamp
  • Refactoring/DealingWithGeneralization . . . . 5 matches
         http://zeropage.org/~reset/zb/data/PullUpField.gif
          * You have methods with identical results on subclasses.[[BR]]''Move them to the superclass''
         http://zeropage.org/~reset/zb/data/PullUpMethod.gif
          * You have constructors on subclasses with mostly identical bodies.[[BR]]''Create a superclass constructor; class this from the subclass methods.''
          * Behavior on a superclass is relevant only for some of its subclasses.[[BR]]''Move it to those subclasses.''
         http://zeropage.org/~reset/zb/data/PushDownMethod.gif
         http://zeropage.org/~reset/zb/data/PushDownField.gif
          * A class has features that are used only in some instances.[[BR]]''Create a subclass for that subset of features.''
         http://zeropage.org/~reset/zb/data/ExtractSubclass.gif
          * You have two classes with similar features.[[BR]]''Create a superclass and move the common features to the superclass.''
         http://zeropage.org/~reset/zb/data/ExtractSuperClass.gif
         http://zeropage.org/~reset/zb/data/ExtractInterface.gif
          * A superclass and subclass are not very different.[[BR]]''Merge them together.''
         http://zeropage.org/~reset/zb/data/CollapseHierarchy.gif
          * You have two methods in subclasses that perform similar steps in the same order, yet the steps are different.[[BR]]''Get the steps into methods with the same signature, so that the original methods become the same. Then you call pull them up.''
         http://zeropage.org/~reset/zb/data/FormTemplateMethod.gif
         == Replace Inheritance with Delegation ==
          * A subclass uses only part of a superclasses interface or does not want to inherit data.[[BR]]''Create a field for the superclass, adjust methods to delegate to the superclass, and remove the subclassing.''
         http://zeropage.org/~reset/zb/data/ReplaceInheritanceWithDelegation.gif
         == Replace Delegation with Inheritance ==
  • Refactoring/RefactoringTools . . . . 5 matches
         = Chapter 14 Refactoring Tools =
         == Refactoring with a Tool ==
         == Technical Criteria for a Refactoring Tool ==
         === Parse Trees ===
         == Practical Criteria for a Refactoring Tool ==
         ["Refactoring"]
  • RegressionTesting . . . . 5 matches
         RegressionTesting 는 SoftwareTesting 의 한 방법으로, 이미 해결된 문제들이 재출현 여부에 대하여 검사 하는것
         원문 : http://www.wikipedia.org/wiki/Regression_testing
         RegressionTesting 는 SoftwareTesting 의 한 방법으로, 테스터는 이미 해결된 문제들이 재출현 여부에 대하여 검사 한다.
         소프트웨어가 개발됨어 감에 따라, 문제의 재출현은 불행히도 아주 일반적인 경험이다. 때때로, 그것은 고친 것이(fix)가 나쁜 보정 작업(poor revision control practice)들에 (혹은 revision control에서 사람의 단순 실수) 의하여 사라지기 때문에 발생한다. 그렇지만 바로 문제에 대한 고친것이 존재하면, 소프트웨어는 '''깨지기 쉬워(fragile)''' 해진다.- 만약 어떠한 다른 변화가 프로그램에 가해지면, 고친 것(fix)은 더이상 동작하지 않는다. 결국, 문제를 잘 알지 못한 상태에서, 재디자인된 몇가지 인자들이 있을때, 기존의 구현의 인자들 속에서 재디자인된 부분에서는 동일한 실수들이 발생할 것이다.
         그래서 대다수의 소프트웨어 개발 시점 중에는 버그를 고쳤을때 훌륭한 방법인가, 버그가 재작성되거나, 버그가 프로그램상의 하부 변화 이후에 규칙적으로 실행되는지 '''드러내는 테스트'''에 대하여 훌륭한 실행 방법들을 제시한다. 몇몇 프로젝트(내 생각에 Mozilla경우, Eclipse도 같은 시스템)는 자동화된 시스템으로 자동적으로 모든 RegressionTesting들을 규칙적으로(보통 하루나 주말단위로) 실행하고, 조사하도록 세팅되어 있다.
         RegressionTesting는 ExtremeProgramming 소프트웨어 개발 방법론의 필수적인 부분이다. 소프트웨어 개발 주기에서 매번 마다 모든 소프트웨어 패키지들에 대하여 광범위하고, 반복적이고, 자동화된 전체 소프트웨어에 테스트를 통하여 그러한 디자인 문서들이 교체된다.
  • RegularExpression/2011년스터디 . . . . 5 matches
         Regular Expression을 정의하고 더러운 상황에 대한 Regex의 강력함을 느껴보자.
         Regular Expression입니다.
         html을 띄워놓고 익스플로러 or 크롬의 개발자 도구에서 javascript 콘솔모드로 "문장".matches("\Regex\"); 하면 나온답니다용.
         예제 <a href = "class > </a>
         <a href = "class" > </a>
         <a href = "clas"s" > </a>
         <a href ="abc"></a>
         <a href ="abc"></a>
         <a href ="dfw"></a>
         <a href ="dfdof></a>
         <a href ="dfdof class="dfdfd"></a>
         <a href ="dfdof" class=dfdfd" name ="cdef"></a>
         "http://www.naver.com www.naver.com naver.com google.co.kr http://kio.zc.bz/Lecture/regexp.html#chap05".match(/(http:\/\/)?([a-zA-Z]+\.)+[a-zA-Z]+\/?([^\s]+)*/g)
         [2011년활동지도], [RegularExpression]
  • ReverseAndAdd/문보창 . . . . 5 matches
         // no10018 - Reverse and Add
         #include <iostream>
          return 0;
          unsigned int reverseN; // reverse한 수
          reverseN = 0;
          reverseN += t * pow(10, i);
          if (originN == reverseN)
          break;
          originN = originN + reverseN;
          return nadd;
         def ReverseAndAdd(n, count):
          return
          ReverseAndAdd(str(int(n) + int(n[::-1])), count)
          ReverseAndAdd(n, 0)
         [ReverseAndAdd] [문보창]
  • UML/CaseTool . . . . 5 matches
         ''Diagramming'' in this context means ''creating'' and ''editing'' UML [[diagram]]s; that is diagrams that follow the graphical notation of the Unified Modeling Language.
         The diagramming part of the Unified Modeling Language seems to be a lesser debated part of the UML, compared to code generation.
         The UML diagram notation evolved from elderly, previously competing notations. UML diagrams as a means to draw diagrams of - mostly - [[Object-oriented programming|object oriented]] software is less debated among software developers. If developers draw diagrams of object oriented software, there is widespread consensus ''to use the UML notation'' for that task. On the other hand, it is debated, whether those diagrams are needed at all, on what stage(s) of the software development process they should be used and whether and how (if at all) they should be kept up-to date, facing continuously evolving program code.
         ''[[Code generation]]'' in this context means, that the user creates UML diagrams, which have some connoted model data, from which the UML tool derives (through a conversion process) parts or all of the [[source code]] for the software system that is to be developed. Often, the user can provide some skeleton of the program source code, in the form of a source code [[template]] where predefined tokens are then replaced with program source code parts, emitted by the UML tool during the code generation process.
         There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML. On the other hand, the idea of completely leaving the "code level" and start "programming" on the UML diagram level is quite debated among developers, and at least, not in such widespread use compared to other [[software development]] tools like [[compiler]]s or [[Configuration management|software configuration management systems]]. An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. There are developers that even state that "the Code ''is'' the design" (articles [http://www.developerdotstar.com/mag/articles/reeves_design_main.html] by Jack W. Reeves [http://www.bleading-edge.com/]).
         === Reverse engineering ===
         ''Reverse engineering'' in this context means, that the UML tool reads program source code as input and ''derives'' model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "[[Reverse engineering]]").
         Reverse engineering encloses the problematic, that diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some ''random layout'' of the graphical symbols of the UML notation or use some automatic ''layout algorithm'' to place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of an UML tool has to manually edit those automatically generated diagrams to attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams. There are also language features of some [[programming language]]s, like ''class-'' or ''function templates'' of the programming language [[C plus plus|C++]], which are notoriously hard to convert automatically to UML diagrams in their full complexity.
         There are UML tools that use the attribute ''round trip'' (sometimes also denoted as ''round trip engineering'') to connote their ability to keep the ''source code'', the ''model data'' and the corresponding ''UML diagrams'' ''in sync''.
         This means that the user should be able to change either the ''model data'' (together with the corresponding diagrams) or the ''program source code'' and then the UML tool updates the other part automatically.
         Rational Software Architect, Together가 유명하고, 오픈 소스로는 Argo, Violet 이 유명하다.
  • XpWeek/ToDo . . . . 5 matches
         RelesePlanning
         SmallRelease
         ExtremeProgramming 개발주기를 참조
          === RelesePlanning ===
          테스팅 -> 코딩 -> [Refactoring]
          === SmallRelease ===
  • ZeroPageHistory . . . . 5 matches
         ||겨울방학 ||Data Structure, C 등 각종 강좌 스터디 개설됨. ||
          * Data Structure, C
         ||여름방학 ||Computer Architecture, Assembly, Pascal 등의 스터디/강좌. 현대 경진대회 준비반 개설(15일간 오전 9시-오후 5시까지 전산 커리를 모두 다룸, 기출문제 풀이 등) ||
          * Computer Architecture, Assembly Language, Pascal
         ||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
          * Data Structure, Clipper, UNIX, Game, Computer Graphics
         ||여름방학 ||Assembly, C, Data Structure 세미나 개최. ||
         ||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
          * Assembly Language, C, Data Structure
          * X-Windows, Data Structure, C, C++
         ||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
          * Data Structure, API, Game
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
         ||1학기 ||회장 임구근, 9기 회원모집. ZeroPage Server 구입. Rebirth 선언. Devils 학회 분리. ||
          * https://lh6.googleusercontent.com/-6q_gnM0FKhU/TsCGFiOzcjI/AAAAAAAAHrg/Sk8DTHO1mqA/s800/Screen%252520Shot%2525202011-11-14%252520at%25252012.07.42%252520PM.png
         ||여름방학 ||데블스캠프, 청평 MT, 서버 세팅(RedHat -> Debian), 프로그래밍잔치 개최 ||
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
          * C++, Data Structure, Python, Java-Servlet, JSP, PHP, Servlet, JDBC
          * AOI, Extreme Programming, MFC, Java
          * 데블스캠프 : C, C++, Java, Data Structure, OOP, Flash, Python, Visual Python, JSP, Network, Security
  • ZeroPage성년식/거의모든ZP의역사 . . . . 5 matches
         ||겨울방학 ||Data Structure, C 등 각종 강좌 스터디 개설됨. ||
          * Data Structure, C
         ||여름방학 ||Computer Architecture, Assembly, Pascal 등의 스터디/강좌. 현대 경진대회 준비반 개설(15일간 오전 9시-오후 5시까지 전산 커리를 모두 다룸, 기출문제 풀이 등) ||
          * Computer Architecture, Assembly Language, Pascal
         ||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
          * Data Structure, Clipper, UNIX, Game, Computer Graphics
         ||여름방학 ||Assembly, C, Data Structure 세미나 개최. ||
         ||겨울방학 ||X-Window, Data Structure, C, C++ 세미나 개최. ||
          * Assembly Language, C, Data Structure
          * X-Windows, Data Structure, C, C++
         ||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
          * Data Structure, API, Game
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
         ||1학기 ||회장 임구근, 9기 회원모집. ZeroPage Server 구입. Rebirth 선언. Devils 학회 분리. ||
          * https://lh6.googleusercontent.com/-6q_gnM0FKhU/TsCGFiOzcjI/AAAAAAAAHrg/Sk8DTHO1mqA/s800/Screen%252520Shot%2525202011-11-14%252520at%25252012.07.42%252520PM.png
         ||여름방학 ||데블스캠프, 청평 MT, 서버 세팅(RedHat -> Debian), 프로그래밍잔치 개최 ||
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
          * C++, Data Structure, Python, Java-Servlet, JSP, PHP, Servlet, JDBC
          * AOI, Extreme Programming, MFC, Java
          * 데블스캠프 : C, C++, Java, Data Structure, OOP, Flash, Python, Visual Python, JSP, Network, Security
  • cookieSend.py . . . . 5 matches
          return str
         def getResponse(host="", port=80, webpage="", method="GET", paramDict=None, cookieDict=None):
          conn.request(method, webpage, params, header)
          response = conn.getresponse()
          print response.status, response.reason
          data = response.read()
          httpData['response'] = data
          httpData['cookie'] = response.getheader('Set-Cookie')
          httpData['msg'] = response.msg
          return httpData
         def printResponse(aStr):
          print "------------------------- response start ------------------------------"
          print "------------------------- response end ------------------------------"
          httpData = getResponse(host="zeropage.org", webpage="/~reset/testing.php", method='GET', paramDict=params, cookieDict=cookie)
          print "return cookie : ", httpData['cookie']
          printResponse(httpData['response'])
          printResponse(httpData['msg'])
  • neocoin/Log . . . . 5 matches
          * FS - 10/16 m=4 replacement search, natural search(m=4,m'=4)
          * ["ProjectPrometheus"] Release 1
          * SWEBOK (Software Engineering Body of Knowledge) : SE Reference
          * 5월이 끝나는 시점에서 Read의 수를 세어 보니 대략 55권 정도 되는듯 하다. 200까지 145권이니, 여름방학 두달동안 60여권은 읽어 주어야 한다는 결론이 난다. 부담으로 다가오는 느낌이 있는걸 보니 아직 책에 익숙해지지 않은것 같다. 휴, 1,2학년때 너무 책을 보지 않은 것이 아쉬움으로 남는다. 남들이 4년에 읽을껄 2년에 읽어야 하니 고생이다.
          * 4월달에 많이 읽을 생각이었지만, 복병인 중간고사가 나를 괴롭힌다. Green gables of Ann 이 2권 남긴채 저 만치로 관심에서 벗어났다. 5월달에 끝내리
          * ["MoreEffectiveC++"] : 03.08 완료. 해당 책에 내용이 완료 되었다. 방학중에 나 뿐만 아니라 다른 한국인도 알아 먹을수 있게 고칠 생각이다.
          * ["MoreEffectiveC++"] : 20~32 장 한글화, 자세한 로그는 해당 페이지 기록
          * 2.21 JOC Conference 의 트렉 4 JXTA, JMF, JavaTV
          * DP restart : 읽기
          * ["Refactoring"] : Reference 부분 1차 초안 완료
          * ["MoreEffectiveC++"] 19장까지 번역 or 요약(1~5,6장은 요약 이후 번역)
  • 데블스캠프2009/목요일/연습문제/MFC/정종록 . . . . 5 matches
         Describe 데블스캠프2009/목요일/연습문제/MFC/정종록 here
          DECLARE_MESSAGE_MAP()
         CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
         : CDialog(CTestDlg::IDD, pParent)
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
         ON_BN_CLICKED(IDC_BUTTON20, OnReset)
          // TODO: Add extra initialization here
          return TRUE; // return TRUE unless you set the focus to a control
          // Center icon in client rectangle
          CRect rect;
          GetClientRect(&rect);
          int x = (rect.Width() - cxIcon + 1) / 2;
          int y = (rect.Height() - cyIcon + 1) / 2;
          return (HCURSOR) m_hIcon;
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // with the ENM_CHANGE flag ORed into the mask.
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
  • 영호의바이러스공부페이지 . . . . 5 matches
         If you are an anti-virus pussy, who is just scared that your hard disk will
          V Status: Rare
          Type Code: PNCK - Parasitic Non-Resident .COM Infector
          Detection Method: ViruScan V64+, VirexPC, F-Prot 1.12+, NAV, IBM Scan 2.00+
          Removal Instructions: Scan/D, F-Prot 1.12+, or Delete infected
          of Iceland in June 1990. This virus is a non-resident generic
          current directory. On bootable diskettes, this file will normally
          be infected. Files are infected only if their original length is
          greater than approximately 1K bytes.
          Infected .COM files will increase in length by 163 bytes, and have
          date/time stamps in the directory changed to the date/time the
          infection occurred. Infected files will also always end with this
          This virus currently does nothing but replicate, and is the
          The Tiny Virus may or may not be related to the Tiny Family.
          ^like she'd know the difference!
         OK, Theres the run down on the smallest MS-DOS virus known to man. As for
         Here is a dissasembly of the virus, It can be assembled under Turbo Assembler
         ;this is a replacement for an infected file
          mov ax,3D02h ;open file for read/write access
          mov ah,3Fh ;read from file
  • 프로그래밍/DigitGenerator . . . . 5 matches
         import java.io.BufferedReader;
         import java.io.FileReader;
          return i;
          return 0;
          BufferedReader br = new BufferedReader(new FileReader("test.txt"));
          String line = br.readLine();
          line = br.readLine();
          int result = processOneCase(line);
          System.out.println(result);
  • 프로그래밍/Pinary . . . . 5 matches
         import java.io.BufferedReader;
         import java.io.FileReader;
          break;
          return number;
          return null;
          BufferedReader br = new BufferedReader(new FileReader("test.txt"));
          String line = br.readLine();
          line = br.readLine();
          String result = processOneCase(line);
          System.out.println(result);
  • 프로그래밍/Score . . . . 5 matches
         [http://acm.kaist.ac.kr/Problems/2005a.pdf Score 문제 보기]
         import java.io.BufferedReader;
         import java.io.FileReader;
         public class Score {
          public void readFile() {
          BufferedReader br = new BufferedReader(new FileReader("test.txt"));
          String line = br.readLine();
          line = br.readLine();
          int result = processOneCase(line);
          System.out.println(result);
          return sum;
          Score s = new Score();
          s.readFile();
  • 2dInDirect3d/Chapter1 . . . . 4 matches
         = Initializing Direct3D =
          1. IDirect3D8 객체를 만든다.
          2. 호환성 있는 IDirect3D8 객체를 검사한 후, 적정한 디바이스 타입을 고른다.
          4. IDirect3DDevice8 객체를 만들고 초기화한다.
          == Purpose of the IDirect3D8 Object ==
          이것을 만드는 이유는 간단하다. IDirect3DDevice8 객체를 만들기 위해서는 "꼭" 필요하기 때문에 만든다. 이 객체에서는 실질적인 작업보다는 초기화를 도와주는 역할을 주로 한다.
          == Creating IDirect3D8 Object ==
         IDirect3D8* Direct3DCreate8 (
         IDirect3D8* pd3d = NULL; // 포인터를 한개 만들어서
         pd3d = Direct3DCreate8( D3D_SDK_VERSION ); // 이렇게 생성한다.
          pd3d->Release();
         UINT IDirect3D8::GetAdapterCount();
          1. [RET] 몇개의 어댑터가 있는지 알려준다. 1개가 있으면 1, 2개가 있으면 2다.
         HRESULT GetAdapterIdentifier {
          1. [RET] HRESULT형의 값을 리턴한다. 성공하면 D3D_OK, 실패하면 D3D_INVALIDCALL이 나온다.
          VendorID, DeviceID, SubSysID, Revision : 칩셋마다 틀려요
         HRESULT GetDeviceCaps(
          2. D3DDEVTYPE_REF : HAL 보다 느리지만 소프트웨어적으로 지원
         UINT IDirect3D8::GetAdapterModeCount(
         HRESULT IDirect3D8::EnumAdapterModes(
  • 2학기파이선스터디/클라이언트 . . . . 4 matches
          * ReceiveMessage? : 서버로부터 전달되는 메시지를 받아서 ChatMain? 클래스의 메시지 출력 화면에 보여주는 역할을 한다.
          root.configure( width = 800, height = 600)
         ## login.Place.place_configure( root, x = 100, y = 100) #position
         ## csock = socket(AF_INET, SOCK_STREAM)
         ## user = clientsock.recv(1024)
          ID = login.askstring(title = "Login", prompt="Enter ID", parent = root)
          root.bind("<Return>", win.getMassage)
         root.bind("<Return>", callback)
          self.recieveMassage()
          def recieveMassage(self):
          user = aSock.recv(1024)
          root.configure( width = 800, height = 600)
         ## login.Place.place_configure( root, x = 100, y = 100) #position
          csock = socket(AF_INET, SOCK_STREAM)
          print 'connect refuse'
          csock.recv(1024)
          ID = login.askstring(title = "Login", prompt="Enter ID", parent = root)
         ## user = csock.recv(1024)
          root.bind("<Return>", win.sendMessage)
          user = csock.recv(1024)
  • 5인용C++스터디/버튼과체크박스 . . . . 4 matches
         afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
          ON_WM_CREATE()
         int CMy111View::OnCreate(LPCREATESTRUCT lpCreateStruct)
          if (CView::OnCreate(lpCreateStruct) == -1)
          return -1;
         // Create a push button.
         myButton1.Create(_T("푸시 버튼"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
          CRect(10,10,200,30), this, 1);
         // Create a radio button.
         myButton2.Create(_T("라디오 버튼"), WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
          CRect(10,40,200,70), this, 2);
         // Create an auto 3-state button.
         myButton3.Create(_T("3상태 버튼"), WS_CHILD|WS_VISIBLE|BS_AUTO3STATE,
          CRect(10,70,200,100), this, 3);
         // Create an auto check box.
         myButton4.Create(_T("체크박스"), WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,
          CRect(10,100,200,130), this, 4);
          return 0;
  • 5인용C++스터디/윈도우에그림그리기 . . . . 4 matches
         WndProc은 BeginPaint를 호출하고 난 후 GetClientRect를 호출한다.
         GetClientRect(hwnd, &rect);
         첫번째 인자는 프로그램 윈도우에 대한 핸들이다. 두번째 인자는 RECT형식의 사각형 구조체에 대한 포인터이다.
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
          RegisterClass(&wc);
          hWnd=CreateWindow(szClassName,szTitleName, WS_OVERLAPPEDWINDOW,100,90,320,240,NULL,NULL,hInst,NULL);
          return mSg.wParam;
         LRESULT CALLBACK WndProc(
          return FALSE;
          InvalidateRect(hWnd,NULL,FALSE);
          return FALSE;
          hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));
          return FALSE;
          return FALSE;
          return DefWindowProc(hWnd,uMsg,wParam,lParam);
          hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));
          * CreatePen() : 펜을 생성하는 함수.
          * SelectObject() : CreatePen()으로 만든 펜을 사용하도록 지정해준다.
          * DeleteObject() : CreatePen()함수로 생성한 펜을 지우는 역할.
  • 5인용C++스터디/키보드및마우스의입출력 . . . . 4 matches
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
          WndClass.style=CS_HREDRAW | CS_VREDRAW;
          RegisterClass(&WndClass);
          hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
          return Message.wParam;
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
          InvalidateRect(hWnd,NULL,FALSE);
          return 0;
          return 0;
          return 0;
          return(DefWindowProc(hWnd,iMessage,wParam,lParam));
          키보드 메시지에서는 str배열에 문자열을 집어 넣기만 하며 문자열을 화면으로 출력하는 일은 WM_PAINT에서 맡는다. 단 키보드 메시지에 의해 문자열이 다시 입력되더라도 화면상의 변화는 없으므로 WM_PAINT메시지가 발생하지 않는다. 그래서 강제로 WM_PAINT 메시지를 발생시켜 주어야 하는데 이 때는 InvalidateRect 함수를 호출해 주면 된다. WM_CHAR에서 문자열을 조립한 후 InvalidateRect 함수를 호출해 주어 키보드가 입력될 때마다 화면을 다시 그리도록 하였다.
         VK_CANCEL / 03 / Ctrl-Break
         VK_RETURN / 0D / Enter
  • ACE/CallbackExample . . . . 4 matches
         #include "ace/streams.h"
         #include "ace/Log_Record.h"
          void log(ACE_Log_Record &log_record)
          /*log_record.print(ACE_TEXT(""), 0, cerr);
          log_record.print(ACE_TEXT(""), ACE_Log_Msg::VERBOSE, cerr);*/
          cerr << "Log Message Received: " << endl;
          unsigned long msg_severity = log_record.type();
          const ACE_TCHAR *prio_name = ACE_Log_Record::priority_name(prio);
          cerr << "\tlength: " << log_record.length() << endl;
          const time_t epoch = log_record.time_stamp().sec();
          cerr << "\tPid: " << log_record.pid() << endl;
          data += ACE_TEXT_ALWAYS_CHAR(log_record.msg_data());
         #include "ace/streams.h"
          return 0;
  • APlusProject . . . . 4 matches
         Upload:APP_MeetingRecord_Draft.zip - 회의록 초안입니다.
         Upload:APP_MeetingRecord_0607.zip - 6월 7일까지 회의록입니다. -- 으흐흐 이것도 QA검사 끝
         ExtremeProgrammingInstallled - XP 입문서. 한서 있음. PL 필독.
         Refactoring - Refactoring의 바이블. 한서 있음. Eng 필독.
  • APlusProject/PMPL . . . . 4 matches
         Upload:APP_RequirementAnalysis_0512-0525.zip
         Upload:APP_RequirementAnalysis_0526.zip - 분석서 최종문서 -- QA(윤주)에게 검토됨
         Upload:APP_RequirementDefinition_0428-0524.zip
         Upload:APP_RequirementDefinition_0526.zip - 정의서 최종문서 -- QA(윤주)에게 검토됨
  • AutomatedJudgeScript/문보창 . . . . 4 matches
         단순한 문자열 비교문제라는 생각이 들었다. Presentation Error와 Accepted 를 어떻게 하면 쉽게 구별할 수 있을지를 고민하다 입력받을때부터 숫자를 따로 입력받는 배열을 만들어 주는 방법을 이용하였다.
         #include <iostream>
          char reply[MAX*MAX]; // 사용자 출력
          char replyDigit[MAX];
          if (!setString(answer, answerDigit) || !setString(reply, replyDigit))
          break;
          if (strcmp(answerDigit, replyDigit) != 0)
          else if (strcmp(answer, reply) == 0)
          cout << ": Presentation Error\n";
          return 0;
          return false;
          int nDigit, nChar, nReturn;
          nDigit = nChar = nReturn = 0;
          nReturn++;
          if (nReturn == n)
          break;
          return true;
  • BasicJava2005/3주차 . . . . 4 matches
          * 1.4이전 : BufferedReader클래스를 사용할 수 있다.
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          String line = br.readLine();
          * add/remove/get 함수등을 사용하여 배열에 마음대로 추가/삭제가 가능하다.
  • CCNA/2013스터디 . . . . 4 matches
          || 6계층 || 표현 계층 (Presentation Layer) || 응용 프로그램을 위한 데이터 표현 ||
          * 전송기(Transmitter)와 수신기(Receiver)를 하나로 합친 장비
          * CHAP..MD5 알고리즘 이용 - 패스워드 암호화(Chanllenge) -> Response -> Accept/Reject
          * 압축: 라우터간에 전송하는 데이터 압축 (Staker, Predictor)
          || Flag || Address || Control || Protocol || Data || FCS ||
          * Address: 서비스의 종류
          || 8 || Router_Aconfig-if)#ip address 10.0.0.1 255.255.255.0 || Serial 0 interface의 ip 주소는 10.0.0.1 서브넷마스크는 255 ||
          : Mar 100:06:37.034:BR0:1LCP:I CONFREQ[Listen] id 7 len 17
          || Mar 100:06:37.034: || BR0:1 || LCP: || I || CONFREQ[Listen] || id 7 || len 17 ||
          || Flag(1) || Address(1) || Control(1) || Data(variable) || FCS(1) || Flag(1) ||
          - Address는 또 다음과 같이 나누어진다.
          Address = 주소. ISDN이기 때문에 IP 주소와는 다르다.
          * 참조점 (Reference point, 장비와 장비 연결 부분을 가리킴)
  • CVS . . . . 4 matches
         Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 툴. 오픈소스계열에서 Source Repository 의 용도로서 많이 이용된다. 활발하게 이용되고 있는 곳에 대해서는 http://sourceforge.net 에서 많이 볼수 있다.
          * http://kldp.org/KoreanDoc/html/CVS_Tutorial-KLDP/x39.html - CVS At a Glance.
          * http://cvsbook.red-bean.com/ CVS의 자세한 도움말
          * http://www.chonga.pe.kr/document/programming/cvs/index.php 해당 사이트에서 제작한 한글 Reference
          * http://www.componentsoftware.com/ :RCS 도 있음
          * ZeroPage의 CVS의 읽기 전용 계정은 '''cvs_reader''' 에 암호는 '''asdf''' 이다.
         || ["CVS/길동씨의CVS사용기ForRemote"] || WinCVS 설치 전제 ZeroPage CVS를 ||
          * 이때, connection refused 등의 메세지가 발생한다면 /etc/hosts.allow 파일에 cvs:ip 를 추가해준다.
         This problem is quite common apparently... <the problem>snip > I've been trying to use CVS with the win-cvs client without much > success. I managed to import a module but when I try to do a > checkout I get the following error message: > > cvs checkout chargT > > cvs server: cannot open /root/.cvsignore: Permission denied > > cvs [server aborted]: can't chdir(/root): Permission denied > > I'm using the cvs supplied with RedHat 6.1 - cvs 1.10.6 /snip</the> ---------
         A very helpful soul, Robert Cragie, helped me out with this one. Here's his reply to my question above.. :
         I've been down this road already.
         cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/env - /usr/bin/cvs -f --allow-root=/usr/local/cvsroot pserver
         where '/usr/local/cvsroot' is the path of my repository - replace this with yours.
         Apparently, the problem is actually with Linux - daemons invoked through inetd should not strictly have any associated environment. In Linux they get one, and in the error case, it is getting some phoney root environment.
  • Chapter I - Sample Code . . . . 4 matches
         RenameThisPage : 페이지 이름 수정 필요. 궁리중 --["1002"]
         PC_DispClrScr() // Clear the screen
         PC_DispChar() // Display a single ASCII chracter anywhere on the screen
         PC_DispStr() // Display and ASCII strin anywhere on the screen
          uCOS-II는 여타의 DOS Application 과 비슷하다. 다른말로는 uCOS-II의 코드는 main 함수에서부터 시작한다. uCOS-II는 멀티태스킹과 각 task 마다 고유의 스택을 할당하기 때문에, uCOS-II를 구동시키려면 이전 DOS의 상태를 저장시켜야하고, uCOS-II의 구동이 종료되면서 저장된 상태를 불러와 DOS수행을 계속하여야 한다. 도스의 상태를 저장하는 함수는 PC_DosSaveReturn()이고 저장된 DOS의 상태를 불러오는것은 PC_DOSReturn() 함수이다. PC.C 파일에는 ANSI C 함수인 setjmp()함수와 longjmp()함수를 서로 연관시켜서 도스의 상태를 저장시키고, 불러온다. 이 함수는 Borland C++ 컴파일러 라이브러리를 비롯한 여타의 컴파일러 라이브러리에서 제공한다.[[BR]]
          '''uCOS-II를 끝내기 전에 PC_DOSSaveReturn 함수를 호출해야한다. 그렇지 않으면 DOS가 curruped mode 가 되어버리고 이것은 당신의 windows에 영향을 줄 수도 있다.'''
  • Class/2006Fall . . . . 4 matches
          * Programming Report
          === [(zeropage)FileStructureClass] ===
          * [http://deadfire.hihome.com/ CGI with C Language] or [http://www.taeyo.pe.kr/ ASP.NET]
          * Written Report
          * 1st presentation of project is on 28 Sep. - 초기 진행 상황 및 향후 계획
          * 2nd presentation of project is on 12 Oct. - 검색 (설계 및 구현)
          * 3rd presentation of project is on 31 Oct. - 변경 (설계 및 구현)
          * 4th presentation of project is on 14 Nov. - API, 성능평가
          * [http://cslab.cse.cau.ac.kr/lecture_view.asp?num=6 Home]
          * Report
          * Term Project - [http://izyou.net/wireless]
          * Persuaving Presentation until 6 Oct. I'll do it until 29 Sep.
          * Prepare debating about
          * Buying a College Degree is due to 3 Nov. But actually, I had to prepare Adultery.
          * Using vocabulary in real situation.
          * Show the result on 18 Nov
          * Report
  • CleanCode . . . . 4 matches
          * [http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 CleanCode book]
          * [https://code.google.com/p/support/wiki/CodeReviews Google Code Review System]
          * [http://refactoring.com/ Martin Fowler의 refactoring home]
          * [http://blog.goyello.com/2013/05/17/express-names-in-code-bad-vs-clean/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+goyello%2FuokR+%28Goyelloblog%29 Express names in code: Bad vs Clean]
          * 도서 : [http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 Clean Code]
          * 실제로는 쓰지 않는데 테스트를 위한 메소드를 추가하게 되는 경우가 있을 수 있지 않은가? -> java의 경우는 reflection을 사용하면 메소드의 추가 없이 처리가 가능한 경우도 있지만 그것보다도 테스트용 framework(mockito 등)를 사용하는것이 좋다.
          * [http://alblue.bandlem.com/2011/02/gerrit-git-review-with-jenkins-ci.html 참고 데모 동영상]
          * [http://rein.kr/blog/archives/3156]
          * String.append와 PathParser.render는 둘이 서로 문자열을 합치는 작업을 하더라도 직접적인 연산을 하는 것과 추상적인 연산을 하는 것의 차이로 서로 추상화 수준이 다르다고 할 수 있다.
          * Don't return null.
          * Returning null or undefined (Javascript) {{{
         var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array.
          // handle and return
         array.forEach(/* handle found strings */)
          * Returning emtpy object (Javascript) {{{
         var array = stringObject.match(/regexp/) || []; // if the function returns null, then substitute empty array.
         array.forEach(/* handle found strings */)
         /* You can handle empty array with "array.length === 0" statement in anywhere after array is set. */
          * UI를 그리는 흐름(thread)과 http 요청에 대한 흐름(thread)이 따로 존재함.
          return proxied.apply(this, arguments);
  • DebuggingSeminar_2005/DebugCRT . . . . 4 matches
         || _CRTDBG_ALLOC_MEM_DF || 디버그 할당 활성화. free store 상태 추적 ||
         || _CRTDBG_DELAY_FREE_MEM_DF || 메모리를 delete에 의해 해지 되지 않도록함. 메모리 부족상황하에 발생하는 일을 알 수 잇음 ||
         int flas = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
         //this define must occur before any headers are included.
          _CRTDBG_DELAY_FREE_MEM_DF |
          //Allocate some more memory.
          _tcscpy( pNew2, _T("more New'd memory...") );
          return EXIT_SUCCESS;
         CRT의 기본 함수들의 출력은 디버그 메시지 윈도우이다. 이를 변경하기위해서는 _CrtSetReportMode()라는 함수를 이용해서 출력에대한 일반 목적지를 지정하고, _CrtSetReportFile()를 이용해서 특별한 스트림 목적지를 설정해야한다.
         {{{~cpp int _CrtSetReportMode(int reportType, int reportMode);
         reportType
         reportMode
         || _CRTDBG_MODE_FILE || output stream ||
         || _CRTDBG_REPORT_MODE || 현재의 리포트 모드를 리턴한다. ||
         {{{~cpp _HFILE _CrtSetReportFile(int reportType, _HFILE reportFile);
         || _CRTDBG_REPORT_FILE || 현재의 목적지를 리턴한다. ||
          참조) [http://zeropage.org/wiki/AcceleratedC_2b_2b_2fChapter11#line287 The rule of Three]
         = related =
         [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/_core_c_run2dtime_library_debugging_support.asp MSDN]
  • DesignPatternsAsAPathToConceptualIntegrity . . . . 4 matches
         During our discussions about the organization of design patterns there was a comment about the difficulty of identifying the “generative nature” of design patterns. This may be a good property to identify, for if we understood how design patterns are used in the design process, then their organization may not be far behind. Alexander makes a point that the generative nature of design patterns is one of the key benefits. In practice, on the software side, the generative nature seems to have fallen away and the more common approach for using design patterns is characterized as “when faced with problem xyz…the solution is…” One might say in software a more opportunistic application of design patterns is prevalent over a generative use of design patterns.
         The source of this difference may be the lack of focus on design patterns in the design process. In fact, we seldom see discussions of the design process associated with design patterns. It is as though design patterns are a tool that is used independent of the process. Let’s investigate this further:
         A comment from Carriere and Kazman at SEI is interesting: “What Makes a Good Object Oriented Design?”
         · The existence of an architecture, on top of any object/class design
         · The internal regularity (….or conceptual integrity) of the architectural design
         SEI 에서의 Carriere 와 Kazman 의 코멘트는 흥미롭다. "무엇이 좋은 객체지향 디자인을 만드는가?"
         This is what Brooks wrote 25 years ago. "… Conceptual integrity is the most important consideration in system design."[Brooks 86] He continues: “The dilemma is a cruel one. For efficiency and conceptual integrity, one prefers a few good minds doing design and construction. Yet for large systems one wants a way to bring considerable manpower to bear, so that the product can make a timely appearance. How can these two needs be reconciled?”
         One approach would be to identify and elevate a single overriding quality (such as adaptability or isolation of change) and use that quality as a foundation for the design process. If this overriding quality were one of the goals or even a specific design criteria of the process then perhaps the “many” could produce a timely product with the same conceptual integrity as “a few good minds.” How can this be accomplished and the and at least parts of the “cruel dilemma” resolved?
         The following summary is from “Design Patterns as a Litmus Paper to Test the Strength of Object-Oriented Methods” and may provide some insight:
         1. Some O-O design methodologies provide a systematic process in the form of axiomatic steps for developing architectures or micro-architectures that are optimality partitioned (modularized) according to a specific design criteria.
         2. The following methodologies are listed according to their key design criteria for modularization:
         a. Booch in OOSE relies heavily on expert designers and experience to provide the system modularization principle.
         b. OMT, Coad-Yourdon, Shaer-Mellor are data driven and as such raise data dependency as the system modularization principle.
         c. Wirfs-Brock with Responsibility Driven Design (RDD) raises contract minimization as the system modularization principle.
         ResponsibilityDrivenDesign 의 Wirfs-Brock는 system modularization 에 대해 계약 최소화를 들었다.
         3. According to the authors only RDD and EDD have axiomatic rules for OO design and therefore are strong OO design methods.
         4. Design patterns provide guidance in designing micro-architectures according to a primary modularization principle: “encapsulate the part that changes.”
         5. EDD and RDD will generate different design patterns that meet the primary modularization principle “encapsulate the part that changes.” in different ways when applied according to their axiomatic rules. For example RDD generates Mediator, Command, Template Method and Chain of responsibility (mostly behavior) where as EDD generates Observer, Composite, and Chain of responsibility (mostly structure).
         EDO 와 RDD 는 이 1차 원리인 "변화하는 부분에 대해 캡슐화하라"와 그들의 명확한 룰들에 따라 적용될때 다른 방법들로 만나서, 다른 디자인 패턴들을 생성해 낼 것이다. 예를 들면, RDD는 Mediator, Command, TemplateMethod, ChainOfResponsibility (주로 behavior), EDD 는 Observer, Composite, ChainOfResposibility(주로 structure) 를 생성해낼것이다.
         · Are some O-O design methods better at creating an environment where design patterns are used in a generative sense?
  • DevelopmentinWindows/APIExample . . . . 4 matches
         #include "resource.h"
         ATOM MyRegisterClass(HINSTANCE hInstance);
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
          HINSTANCE hPrevInstance,
          MyRegisterClass(hInstance);
          return FALSE;
          return msg.wParam;
         ATOM MyRegisterClass(HINSTANCE hInstance)
          wcex.style = CS_HREDRAW | CS_VREDRAW;
          return RegisterClassEx(&wcex);
          hWnd = CreateWindow(szWindowClass, "API", WS_OVERLAPPEDWINDOW,
          return FALSE;
          return TRUE;
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
          break;
          break;
          break;
          return DefWindowProc(hWnd, message, wParam, lParam);
          break;
  • DiceRoller . . . . 4 matches
          * Start / Ready의 자동 Click
          * SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다.
          === 05월 08일 Nightmare Ver 0.05 ===
          GetWindowThreadProcessId(hWnd, &ProcessId); // hWnd로 프로세스 ID를 얻음..
          DWORD ReadBytes;
          ReadProcessMemory(hProcess, (LPCVOID)0x400000, buffer, 100, &ReadBytes);
         오.. 재밌는거 하고 있네~ 근데 주사위의 잔영을 제대로 안봐서 그런데, 창 모드로 게임이 실행되나 보지? DirectX 를 쓴다면 일반 윈도우 메세지 방식으로 처리하기 힘들지 않을까 함. (근데 해당 기능들 잘 되는 것 보니까 뭐.. 별 문제 없는 듯 하군~) --석천[[BR]]
  • DirectDraw . . . . 4 matches
         DirectX 8.1을 이용한 DirectDraw로 무언가를 만들어 보자.[[BR]]
         = DirectX 8.1 SDK =
         Visual C++ -> Tools -> Options -> Directories에서 [[BR]]
         = DirectDraw의 과정(?) =
         DirectDraw객체의 생성 -> 표면의 생성(Front, Back, OffScreen) -> 그리고.. 표면 뒤집기..
         === DirectDraw객체의 생성 ===
         HRESULT hr
         LPDIRECTDRAW7 lpDD;
         hr = DirectDrawCreateEx(NULL, (void **)&lpDD, IID_IDirectDraw7, NULL); // DirectDraw객체를 생성
         if(hr != DD_OK) return 0;
         hr = lpDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN); // 화면의 레벨을 설정
         if(hr != DD_OK) return 0;
         if(hr != DD_OK) return 0;
          * DDSCL_ALLOWREBOOT : Ctrl+Alt+Del을 사용 가능하게
          * DDSCL_EXCLUSIVE : 독점 모드를 사용 가능하게, DDSCL_FULLSCREEN 과 함께 쓰인다.
          * DDSCL_FULLSCREEN : 풀스크린 모드
          * 0 : Refresh Rate, 0은 디바이스 기본값 (대개 0으로 놓는다.)
         === DirectDraw Front 표면의 생성 ===
         LPDIRECTDRAWSURFACE7 lpDDSFront;
         hr = lpDD ->CreateSurface(&ddsd, &lpDDSFront, NULL); // 생성!
  • Dubble_Buffering . . . . 4 matches
          CRect rect;
          GetClientRect(&rect);
          brush.CreateSolidBrush(RGB(255,255,255));
          memDC.CreateCompatibleDC(pDC);
          bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());
          memDC.FillRect(CRect(0,0, rect.right, rect.bottom), &brush);
          pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);
         == Thread ==
  • ErdosNumbers/차영권 . . . . 4 matches
         #include <iostream.h>
         bool isThere(Author *p, int n);
          if (isThere(author[i], saveBound[i]))
          int saveResult[10]={0,};
          saveResult[k] = author[i][j].erdosNumber;
          if (saveResult[i] == 2)
          cout << saveResult[i] << endl;
          return 0;
         bool isThere(Author *author, int n)
          return true;
          return false;
  • FileInputOutput . . . . 4 matches
         #include <fstream>
          ifstream fin("input.txt"); // fin과 input.txt를 연결
          ofstream fout("output.txt"); // fout과 output.txt를 연결
          return 0;
         a,b=[int(i) for i in fin.read().split()]
         InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName));
         BufferedReader br = new BufferedReader(isr);
         while((inputString = br.readLine()) != null) {
  • FromDuskTillDawn . . . . 4 matches
         각 테스트 케이스에 대해 일단 테스트 케이스 번호를 출력한 다음, 그 다음 줄에 "Vladimir needs # litre(s) of blood." 또는 "There is no route Vladimir can take."를 출력한다 (출력 예 참조).
         Lugoj Reghin 17 4
         Sibiu Reghin 19 9
         Reghin Medias 20 4
         Reghin Bacau 24 6
         There is no route Vladimir can take.
         Vladimir needs 2 litre(s) of blood. |}}
  • FromDuskTillDawn/변형진 . . . . 4 matches
          $ln = explode("\n", "2\n3\nUlm Muenchen 17 2\nUlm Muenchen 19 12\nUlm Muenchen 5 2\nUlm Muenchen\n11\nLugoj Sibiu 12 6\nLugoj Sibiu 18 6\nLugoj Sibiu 24 5\nLugoj Medias 22 8\nLugoj Medias 18 3\nLugoj Reghin 17 4\nSibiu Reghin 19 6\nSibiu Medias 20 3\nReghin Medias 20 4\nReghin Bacau 24 6\nMedias Bacau 4 6\nLugoj Bacau");
          if($this->days) echo "Vladimir needs $this->days litre(s) of blood.<br>";
          else echo "There is no route Vladimir can take.<br>";
          if($city[$from]) return 0;
          return $days;
          foreach($today as $next => $end) $this->track($next, $to, $end+12, $days, $city);
          foreach($tomorrow as $next => $end)
          return $days+1;
  • FromDuskTillDawn/조현태 . . . . 4 matches
         #include <iostream>
         const char DEBUG_READ[] = "2\n3\nUlm Muenchen 17 2\nUlm Muenchen 19 12\nUlm Muenchen 5 2\nUlm Muenchen\n10\nLugoj Sibiu 12 6\nLugoj Sibiu 18 6\nLugoj Sibiu 24 5\nLugoj Medias 22 8\nLugoj Medias 18 8\nLugoj Reghin 17 4\nSibiu Reghin 19 9\nSibiu Medias 20 3\nReghin Medias 20 4\nReghin Bacau 24 6\nLugoj Bacau";
          for (register unsigned int i = 0; i < g_myTowns.size(); ++i)
          return g_myTowns[i];
          return g_myTowns[g_myTowns.size() - 1];
         const char* Parser(const char* readData)
          sscanf(readData, "%d", &sizeOfTimeTable);
          readData = strchr(readData, '\n') + 1;
          for(register int i = 0; i < sizeOfTimeTable; ++i)
          sscanf(readData, "%s %s %d %d", startStationName, endStationName, &startTime, &delayTime);
          readData = strchr(readData, '\n') + 1;
          sscanf(readData, "%s %s", startStationName, endStationName);
          readData = strchr(readData, '\n');
          if (NULL != readData)
          return readData + 1;
          return NULL;
          return TRUE;
          return FALSE;
          for (register int i = 0; i < (int)(suchTown->nextTown.size()); ++i)
          for (register int i = newAddPoint; i < (int)allSuchList.size(); ++i)
  • Gof/Strategy . . . . 4 matches
         텍스트 스트림을 줄 단위로 나누는 많은 알고리즘들이 있다. (이하 linebreaking algorithm). 해당 알고리즘들이 그것을 필요로 하는 클래스에 긴밀하게 연결되어있는 것은 여러가지 이유 면에서 바람직하지 못하다.
          * linebreaking이 필요한 클라이언트이 그 알고리즘을 직접 포함하고 있는 경우에는 클라이언트들이 더 복잡해질 수 있다. 이는 클라이언트들을 더 커지거나 유지가히 힘들게 한다. 특히 클라이언트가 여러 알고리즘을 제공해야 하는 경우에는 더더욱 그렇다.
          * linebreaking이 클라이언트코드의 일부인 경우, 새 알고리즘을 추가하거나, 기존 코드를 확장하기 어렵다.
         이러한 문제는, 각각의 다른 linebreaking을 캡슐화한 클래스를 정의함으로 피할 수 있다. 이러한 방법으로 캡슐화한 알고리즘을 stretegy 라 부른다.
         http://zeropage.org/~reset/zb/data/strat011.gif
         Composition 클래스는 text viewer에 표시될 텍스틀 유지하고 갱신할 책임을 가진다고 가정하자. Linebreaking strategy들은 Composition 클래스에 구현되지 않는다. 대신, 각각의 Linebreaking strategy들은 Compositor 추상클래스의 subclass로서 따로 구현된다. Compositor subclass들은 다른 streategy들을 구현한다.
          * TexCompositor - linebreaking 에 대해 TeX 알고리즘을 적용, 구현한다. 이 방법은 한번에 문단 전체에 대해서 전반적으로 linebreak를 최적화하려고 한다.
         == Structure ==
         http://zeropage.org/~reset/zb/data/strategy.gif
          * 모든 제공된 알고리즘에 대한 일반적인 인터페이스를 선언한다. Context는 ConcreteStrategy에 의해 구현된 알고리즘들을 호출하기 위해 이 인터페이스를 이용한다.
          * ConcreteStrategy (SimpleCompositor, TeXCompositor, ArrayCompositor)
          * ConcreteStrategy 객체로 설정되어진다.
          void Repair ();
          int* _lineBreaks;
          Coord natural[], Coord stretch[], Coord shrink[],
          int componentCount, int lineWidth, int breaks[]
         void Composition::Repair () {
          Coord* stretchability;
          int* breaks;
          // prepare the arrays with the desired component sizes
  • Gof/Visitor . . . . 4 matches
         object structure 의 element들에 수행될 operation 을 표현한다. [Visitor]는 해당 operation이 수행되는 element의 [class]에 대한 변화 없이 새로운 operation을 정의할 수 있도록 해준다.
         [컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
         이러한 operations들의 대부분들은 [variable]들이나 [arithmetic expression]들을 표현하는 node들과 다르게 [assignment statement]들을 표현하는 node를 취급할 필요가 있다. 따라서, 각각 assignment statement 를 위한 클래스와, variable 에 접근 하기 위한 클래스, arithmetic expression을 위한 클래스들이 있어야 할 것이다. 이러한 node class들은 컴파일 될 언어에 의존적이며, 또한 주어진 언어를 위해 바뀌지 않는다.
         http://zeropage.org/~reset/zb/data/visit006.gif <- [DeadLink]
         이 다이어그램은 Node class 계층구조의 일부분을 보여준다. 여기서의 문제는 다양한 node class들에 있는 이러한 operation들의 분산은 시스템으로 하여금 이해하기 어렵고, 유지하거나 코드를 바꾸기 힘들게 한다. Node 에 type-checking 코드가 pretty-printing code나 flow analysis code들과 섞여 있는 것은 혼란스럽다. 게다가 새로운 operation을 추가하기 위해서는 일반적으로 이 클래스들을 재컴파일해야 한다. 만일 각각의 새 operation이 독립적으로 추가될 수 있고, 이 node class들이 operation들에 대해 독립적이라면 더욱 좋을 것이다.
         우리는 각각의 클래스들로부터 관련된 operation들을 패키징화 하고, traverse 될 (tree 의 각 node들을 이동) abstract syntax tree의 element들에게 인자로 넘겨줄 수 있다. 이를 visitor라고 한다. element가 visitor를 'accepts' 할때 element는 element의 클래스를 인코딩할 visitor에게 request를 보낸다. 이 request 또한 해당 element를 인자로 포함하고 있다. 그러면 visitor는 해당 element에 대한 operation을 수행할 것이다.
         예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
         type-checking 의 기능을 넘어 일반적인 visitor를 만들기 위해서는 abstract syntax tree의 모든 visitor들을 위한 abstract parent class인 NodeVisitor가 필요하다. NodeVisitor는 각 node class들에 있는 operation들을 정의해야 한다. 해당 프로그램의 기준 등을 계산하기 원하는 application은 node class 에 application-specific한 코드를 추가할 필요 없이, 그냥 NodeVisitor에 대한 새로운 subclass를 정의하면 된다. VisitorPattern은 해당 Visitor 와 연관된 부분에서 컴파일된 구문들을 위한 operation들을 캡슐화한다.
         http://zeropage.org/~reset/zb/data/visit113.gif <- [DeadLink]
         http://zeropage.org/~reset/zb/data/visit112.gif <- [DeadLink]
         == Structure ==
         http://zeropage.org/~reset/zb/data/visitor.gif
          - declares a Visit operations for each class of ConcreteElement in the object structure. The operation's name and signature identifies the class that sends the Visit request to the visitor. That lets the visitor determine the concrete class of the element being visited. Then the visitor can access the element directly through its particular interface.
          * ConcreteVisitor (TypeCheckingVisitor)
          - implements each operation declared by Visitor. Each operation implements a fragment of the algorithm defined for the corresponding class of object in the structure. ConcreteVisitor provides the context for the algorithm and stores its local state. This state often accumulates result during the traversal of the structure.
          * ConcreteElement (AssignmentNode, VariableRefNode)
          * ObjectStructure (Program)
         http://zeropage.org/~reset/zb/data/visit003.gif
          Item CurrentItem () const;
          // and so on for other concrete elements
  • HardcoreCppStudy/첫숙제 . . . . 4 matches
         = HardcoreCppStudy의 첫 숙제입니다 =
          ||[HardcoreCppStudy/첫숙제/ValueVsReference/변준원]||
          ||[HardcoreCppStudy/첫숙제/ValueVsReference/장창재]||
          ||[HardcoreCppStudy/첫숙제/ValueVsReference/임민수]||
          ||[HardcoreCppStudy/첫숙제/ValueVsReference/김아영]||
          ||[HardcoreCppStudy/첫숙제/Overloading/변준원]||
          ||[HardcoreCppStudy/첫숙제/Overloading/장창재]||
          ||[HardcoreCppStudy/첫숙제/Overloading/임민수]||
          ||[HardcoreCppStudy/첫숙제/Overloading/김아영]||
          MagicSquare <-참조할 것
         [HardcoreCppStudy]
  • HelpOnMacros . . . . 4 matches
         매크로는 위키 페이지에 특수한 기능을 집어넣는 확장입니다. 대부분의 위키페이지는 매크로기능을 사용하지 않고 있지만 경우에 따라서 이러한 특수한 기능이 필요할 때가 있습니다. 예를 들어 RecentChanges 페이지에는 RecentChanges매크로를 사용하고 있고, SystemInfo 페이지에는 SystemInfo 매크로를 사용하고 있습니다. 각 페이지를 편집하거나 [[Icon(info)]]를 눌러 이전 정보로부터 페이지 소스를 보시면 매크로를 어떻게 사용하고 있는지를 보실 수 있습니다.
         ||{{{[[PageList(regex)]]}}} || 정규식에 해당하는 페이지이름 찾기 || HelpIndex ||
         ||{{{[[RecentChanges]]}}} || 최근에 변경된 페이지 목록 || RecentChanges ||
         ||{{{[[UserPreferences]]}}} || 사용자 환경설정 || UserPreferences ||
  • HowToStudyDesignPatterns . . . . 4 matches
          ''We were not bold enough to say in print that you should avoid putting in patterns until you had enough experience to know you needed them, but we all believed that. I have always thought that patterns should appear later in the life of a program, not in your early versions.''
          ''The other thing I want to underscore here is how to go about reading Design Patterns, a.k.a. the "GoF" book. Many people feel that to fully grasp its content, they need to read it sequentially. But GoF is really a reference book, not a novel. Imagine trying to learn German by reading a Deutsch-English dictionary cover-to-cover;it just won't work! If you want to master German, you have to immerse yourself in German culture. You have to live German. The same is true of design patterns: you must immerse yourself in software development before you can master them. You have to live the patterns.
          Read Design Patterns like a novel if you must, but few people will become fluent that way. Put the patterns to work in the heat of a software development project. Draw on their insights as you encounter real design problems. That’s the most efficient way to make the GoF patterns your own.''
         어떤 특정 문장 구조(as much as ...나, no more than ... 같은)를 학습하는데 최선은 그 문장 구조를 이용한 실제 문장을 나에게 의미있는 실 컨텍스트 속에서 많이 접하고 스스로 나름의 모델을 구축(constructivism)하여 교과서의 법칙에 "기쁨에 찬 동의"를 하는 것입니다.
         sorry라는 단어를 모르면서 remorseful이라는 단어를 공부하는 학생을 연상해 보세요. 제 강의에서도 강조를 했지만, 외국어 공부에서는 자기 몸에 가까운 쉬운 단어부터 공략을 하는 것이 필수적입니다 -- 이런 걸 Proximal learning이라고도 하죠. 등급별 어휘 목록 같은 게 있으면 좋죠. LG2DP에서 제안하는 순서가 그런 것 중 하나입니다.
          ''...but I always teach Composite Pattern, Strategy Pattern, Template Method Pattern, and Factory Method Pattern before I teach Singleton Pattern. They are much more common, and most people are probably already using the last two. ... ''
         우리가 갖고 있는 지식이라는 것은 한가지 표현양상(representation)으로만 이뤄져 있지 않습니다. "사과"라는 대상을 음식으로도, 그림의 대상으로도 이해할 수 있어야 합니다. 실제 패턴이 적용된 "다양한 경우"를 접하도록 하라는 것이 이런 겁니다. 동일 대상에 대한 다양한 접근을 시도하라는 것이죠. 자바로 구현된 코드도 보고, C++로 된 것도 보고, 스몰토크로 된 것도 봐야 합니다. 설령 "오로지 자바족"(전 이런 사람들을 Javarian이라고 부릅니다. Java와 barbarian을 합성해서 만든 조어지요. 이런 "하나만 열나리 공부하는 것"의 병폐에 대해서는 존 블리스사이즈가 C++ Report에 쓴 Diversify라는 기사를 읽어보세요 http://www.research.ibm.com/people/v/vlis/pubs/gurus-99.pdf) 이라고 할지라도요. 그래야 비로소 자바로도 "상황에 맞는" 제대로 된 패턴을 구현할 수 있습니다. 패턴은 그 구현(implementation)보다 의도(intent)가 더 중요하다는 사실을 꼭 잊지 말고, 설명을 위한 방편으로 채용된 한가지 도식에 자신의 사고를 구속하는
          1. ["Refactoring"] by Martin Fowler : DP 공부 이전에 봐서 문제의식 형성하기 (망치를 들면 모든 것이 못으로 보이는 오류 탈피)
          1. ["PatternOrientedSoftwareArchitecture"] 1,2 : 아키텍춰 패턴 모음
          1. Concurrent Programming in Java by Doug Lea
          1. Patterns of Software by Richard Gabriel : 패턴에 관한 중요한 에세이 모음.
          * GofStructureDiagramConsideredHarmful - 관련 Article.
         ||''At this final stage, the patterns are no longer important ... [[BR]][[BR]]The patterns have taught you to be receptive to what is real.''||
         see also HowToStudyRefactoring, HowToStudyXp
  • InWonderland . . . . 4 matches
         public bool CertifyStore(string storeReg, string storeAuth) // -인자: 사업자 등록 번호, 가맹점 비밀 번호
         public int ReferPoint(string cardNum, string cardPwd) // -인자: 카드 번호 -결과: 포인트
         public bool SavePoint(string storeReg, string storeAuth, string cardNum, string cardPwd, int money, int point) // -인자: 사업자 등록 번호, 카드 번호, 돈, 적립할 포인트
         public bool UsePoint(string storeReg, string storeAuth, string cardNum, string cardPwd, int money, int point) // -인자: 사업자 등록 번호, 카드 번호, 돈, 사용한 포인트
  • Interpreter/Celfin . . . . 4 matches
         #include <iostream>
         int regist[10], ram[1000];
         int nResult;
          nResult=0;
          regist[i] = 0;
          regist[b] = c;
          regist[b] = (regist[b] + c)%1000;
          regist[b] = (regist[b] * c)%1000;
          regist[b] = regist[c];
          regist[b] = (regist[b] + regist[c])%1000;
          regist[b] = (regist[b] * regist[c])%1000;
          regist[b]= ram[regist[c]];
          ram[regist[c]] =regist[b];
          if(regist[c]!=0)
          counting = regist[b];
          nResult++;
          return nResult+1;
          return 0;
  • LearningGuideToDesignPatterns . . . . 4 matches
         DesignPatterns로 Pattern 스터디를 처음 시작할때 보면, 23개의 Pattern들을 navigate 할 방향을 결정할만한 뚜렷한 기준이 없음을 알 수 있다. 이 책의 Pattern들은 Creational, Structural, Behavioral 분류로 나누어져 있다. 이러한 분류들은 각각 다른 성질들의 Pattern들을 빨리 찾는데 도움을 주긴 하지만, 패턴을 공부할때 그 공부 순서에 대해서는 구체적인 도움을 주지 못한다.
         === Factory Method - Creational ===
         CompositePattern은 여러부분에서 나타나며, IteratorPattern, ChainOfResponsibilityPattern, InterpreterPattern, VisitorPattern 에서 종종 쓰인다.
         === Abstract Factory - Creational ===
         AbstractFactoryPattern은 두번째로 쉬운 creational Pattern이다. 이 패턴은 또한 FactoryMethodPattern를 보강하는데 도움을 준다.
         === Builder - Creational ===
         === Singleton - Creational ===
         SingletonPattern은 종종 AbstractFactoryPattern 을 만드는데 이용된다. (Related Patterns 참조)
         === Chain of Responsibility - Behavioral ===
         ObserverPattern 과 MediatorPattern 들을 이용한 message의 전달관계를 관찰하면서, ChainOfResponsibilityPattern 의 message handling 과 비교 & 대조할 수 있다.
         이 Pattern은 다음의 CommandPattern 에서 undo 와 redo의 구현부분과 이어진다.
         === Prototype - Creational ===
         아마도 가장 복잡한 creational pattern 일 것이다. PrototypePattern 은 종종 CommandPattern 과 같이 이용된다.
         가장 복잡한 Pattern중 하나이다. 이 Pattern의 이용 예제는 다음 패턴인 InterpreterPattern 에서 서술된다.
         === Interpreter - Behavioral ===
         InterpreterPattern 은 복잡하다. 이 Pattern은 FlyweightPattern 와 VisitorPattern 과 관계있으며, 이해를 돕는다.
         가장 마지막으로 읽을 Pattern 은 FacadePattern 이다. 이 Pattern은 InterpreterPattern 의 예제코드와 그 주제가 비슷하므로, InterpreterPattern 다음에 이어지는 것이 적절하다.
  • MFC/HBitmapToBMP . . . . 4 matches
         // Returns: BOOL
          return FALSE;
          header.bfReserved1 = header.bfReserved2=0;
          free(bmp);
          return FALSE;
          free(bmp);
          return r;
         // Returns: BYTE
          lpvBits->bmiHeader.biCompression = BI_RGB;
          return (BYTE *)lpvBits;
         = thread =
  • MindMapConceptMap . . . . 4 matches
         How To Read a Book 과 같은 책에서도 강조하는 내용중에 '책을 분류하라' 와 '책의 구조를 파악하라'라는 내용이 있다. 책을 분류함으로서 기존에 접해본 책의 종류와 비슷한 방법으로 접근할 수 있고, 이는 시간을 단축해준다. 일종의 知道랄까. 지식에 대한 길이 어느정도 잡혀있는 곳을 걸어가는 것과 수풀을 해치며 지나가는 것은 분명 그 속도에서 차이가 있을것이다.
         MindMap 의 문제점은 중간에 새어나가는 지식들이 있다. 기본적으로 그 구조가 상하관계 Tree 구조이기 때문이다. 그래서 보통 MindMap 을 어느정도 그려본 사람들의 경우 MindMap을 확장시켜나간다. 즉, 중심 개념을 여러개 두거나 상하관계구조를 약간 무시해나가면서. 하지만 여전히 책을 읽으면서 잡아나간 구조 그 자체를 허물지는 않는다.
         개인적으로 처음에 MindMap 보다는 그리는데 시간이 많이 걸렸다. 하지만, MindMap 에 비해 각 개념들을 중복적으로 쓰는 경우가 적었다. (물론 MindMap 의 경우도 중복되는 개념에 대해서는 Tree 를 깨고 직접 링크를 걸지만) MindMap 의 Refactoring 된 결과라고 보면 좀 우스우려나; 주로 책을 정리를 할때 MindMap 을 하고 때때로 MindMap 에서의 중복되는 개념들을 토대로 하나의 개념으로 묶어서 ConceptMap 을 그리기도 한다.
         ConceptMap 에서 중요한 것은 각 Concept 뿐만 아니라 Concept 과 Concept 간의 Relation 의 표현이다.
         관련 자료 : 'Learning How To Learn', 'Learning, Creating and Using Knowledge - Concept Maps as Facilitative Tools in Schools and Corporations' (Joseph D. Novak)
         MindMap 의 표현법을 다른 방면에도 이용할 수 있다. 결국은 트리 뷰(방사형 트리뷰) 이기 때문이다. [1002]의 경우 ToDo 를 적을때 (보통 시간관리책에서 ToDo의 경우 outline 방식으로 표현하는 경우가 많다.) 자주 쓴다. 또는 ProblemRestatement 의 방법을 연습할때 사용한다. --[1002]
  • MoniWikiTutorial . . . . 4 matches
          * 계정 만들기: UserPreferences로 가서 사용자 등록을 합니다.
          * RecentChanges: 위키위키의 모든 변경된 기록이 RecentChanges에 보여집니다.
          * UserPreferences: 사용자 가입/로그인/설정
          * [[Icon(pref)]] 환경설정 혹은 로그인을 할 수 있는 폼을 보여줍니다.
          * '''[[GetText(Preview)]]''': 편집된 내용을 미리볼 수 있습니다.
         || {{{PageReference WikiSandBox}}} || PageReference WikiSandBox ||
         공백을 보존되는 preformat을 사용하고 싶은 경우는 중괄호`{{{{{{ ... }}}}}}`를 사용합니다.: {{{
  • NeoCoin/Server . . . . 4 matches
         /etc/resolv.conf : name server를 잡아 준다.
          * 8080 포트에 접속해 보고, 자칫 노출될수 있는 정보에 대하여 막는다. resin, tomcat 모두 8080 포트를 이용한 테스트를 한다.
          * redeploy = "true", reloadable="true" 가 4.0에서 기본값이 아닌듯 하다. 밑져야 해준다.
         === Resin Restart ===
         ..resin/bin/httpd.sh start
          * X설치시, nvidia 그래픽 카드에서는 {{{~cpp dpkg-reconfigure xserver-xfree86}}} 으로 fram buffer 를 비활성화 시켜야 했다. 여기에서 dpkg로 정의된 세팅이 정의된 페키지도 있다는 것을 알았다.
          * apt 주소 세팅시에, ftp://ftp.nuri.net/pub/debian woody main contrib non-free 를 입력하는 방법에 대하여 너무 난감했다.
          * ReiserFS 로 변경도 해야 하고 전원 자동 종료 문제도 해결해야 한다.
          * 파일시스템을 reiserfs로 모두 바꾸기 http://debianusers.org/stories.php?story=01/03/01/9830027
         버전을 정해 주는 옵션이다. config_target은 make-kpkg configure할 때
         CONCURRENCY_LEVEL는 make의 -j 옵션에 대한 숫자인데 빠른 CPU에서 숫자가
         CONFDIR := /usr/share/kernel-package/Config
         CONCURRENCY_LEVEL := 3
         "make-kpkg configure"를 실행한다. kernel-pkg.conf에서 정한 대로
         다시 설정하려면 stamp-configure 파일을 지우고
         "make-kpkg configure" 재실행하면 된다.
         만일 stamp-configure 파일이 없으면 커널 컴파일하기 전에 menuconfig나
         ALL mail -s %s <address>
         -Emacs에서 한글 문서가 깨져 나올때 dired 에서 한글 강제 지정
         repeat_type에서 ms3을 제거해준다...
  • NumericalAnalysisClass . . . . 4 matches
         === Report Specification ===
          * ["NumericalAnalysisClass/Report2002_1"] - ["TriDiagonal/1002"]
          * ["NumericalAnalysisClass/Report2002_2"] - ["CubicSpline/1002"]
         세간에서 간혹 추천서적으로 꼽히기도 하는 Numerical Recipe 시리즈는 사실 전문가들로부터 "최악의 책"으로 꼽히고 있다. 단순히 책의 구성이나 깊이 등을 떠나서 잘못된 정보가 너무 많다, 수치해석에 대해서는 아마추어의 수준도 못되는 사람이 썼다는 비판이다. 인터넷에 이 책에 대한 전문적인 서평이 많이 있다 -- 문제점 하나하나 꼼꼼하게 비판한 것이다.
  • PragmaticVersionControlWithCVS/UsingTagsAndBranches . . . . 4 matches
         || [PragmaticVersionControlWithCVS/CommonCVSCommands] || [PragmaticVersionControlWithCVS/CreatingAProject] ||
         == Creating a Release Branch ==
         == Working in a Release Branch ==
         == Generating a Release ==
         == Fixing Bugs in a Release Branch ==
  • ProgrammingLanguageClass/2006 . . . . 4 matches
         = Report =
         [ProgrammingLanguageClass/2006/Report1]
         [ProgrammingLanguageClass/2006/Report2]
         [ProgrammingLanguageClass/2006/Report3]
  • ProjectPrometheus/DataBaseSchema . . . . 4 matches
         |||||||| {{{~cpp BtoBRel }}} ||
         || uid || bookid || relbookid || relpoint ||
         |||||||||||| {{{~cpp UtoBRel }}} ||
         ||||||||||||review ||
         || uid || regdate || bookid || userid || title || contents ||
         {{{~cpp DataBase Create Query for MySQL }}}{{{~cpp
         CREATE TABLE IF NOT EXISTS BtoBRel(
         uid int (11) NOT NULL auto_increment,
         relbookid varchar(12) NOT NULL DEFAULT '',
         relpoint int(11) NOT NULL DEFAULT 0,
         CREATE TABLE IF NOT EXISTS UtoBRel(
         uid int (11) NOT NULL auto_increment,
         CREATE TABLE IF NOT EXISTS book(
         CREATE TABLE IF NOT EXISTS puser(
         CREATE TABLE review(
         uid int (11) NOT NULL auto_increment,
         regdate datetime,
  • ProjectPrometheus/Iteration6 . . . . 4 matches
         ||금 ||8/16 ||Renaissance Club ||
         ||||||Story Name : Recommendation System(RS) Implementation ||
         || Object-RDB Relation 을 위한 Gateway 작성 || 1 || . ||
         || Review 수정/삭제 || . || . ||
  • ProjectPrometheus/Iteration9 . . . . 4 matches
          * 전반적 UI 전체 (많이 이뻐졌다. 고로 RE 모듈이 수고 좀 하겠군. --a)
         Release 1차
         최근 Review
         Recommendation system
         배포 (Release)
  • ProjectZephyrus/ClientJourney . . . . 4 matches
         클라이언트 팀 모여서 한 일에 대한 정리. 한일/느낀점/교훈(["ThreeFs"]) 등을 생각해볼 수 있는 기회가 되었으면 함. (팀원내 자유로운 비방 허용; 치외법권선포;)
          * 일이 거의 막마지에 다다른다. 12시 이후 본격적 작업. 이틀간의 스케줄에서 둘이 참여를 하지 않았으므로, 작업은 주로 코드 설명이 주가 될 수 밖에 없었다. Pair로 ["Refactoring"] 해나가며 설명하기에 내가 너무 많이 코드를 고쳤나. -_-; (나도 할말있는것이, 가장 중요사항중 하나인 패킷 핸들러 처리부분할때 다들빠지냐는것이다. -_-; 제일 얻을 것도 많은 부분일건데 쩝. 개인적으로 만들면서 흐뭇(^^;) 했던 부분이고;)
          * 움.. 아무래도 난 말빨 글빨 다 딸리는거같다.. 위에글처럼 멋있게 쓰고싶은데, 그냥 내식대로 써야겠다.. 간만에 내가 또 형보다 일찍왔다. 이틀동안 빠진게 타격이 너무 컸나보다.. MainSource에 새로 추가된 파일도 꽤되고 기존파일도 업데이트된 내용이 많아서 이해가 아니라 읽어보는것만해도 엄청난 시간이 들었다.. --;; 정통부 회의겸 기짱턱땜에 일찍갔는데 아무래도 금요일로 완료가 된 모양이다.. 이번이 나로선 거의 처음 해본 프로젝트였는데, 내가 별로 한건없지만, 솔직히 뭔가 만든것보단 배운게 더 많은거같다.. 하긴 프로젝트를 해본다는거 자체가 배운다는거였으니깐.. 꼭 자바에 대해서 배운것보다도 Design이라던지 Architecture(맞나?) 같은것에 대해서도 배웠고.. 프로젝트란 이렇게 진행해야 하는거구나라는것도 느꼈다. 뭔가 많이 쓰고싶은데 머리속이 정리가 안된다.. 이럴때 정말~~ ㅠ.ㅠ 아우~ 나중에 더 써야겠다..
          * TDD 가 아니였다는 점은 추후 모듈간 Interface 를 결정할때 골치가 아파진다. 중간코드에 적용하기 뭐해서 궁여지책으로 Main 함수를 hard coding 한뒤 ["Refactoring"] 을 하는 스타일로 하긴 하지만, TDD 만큼 Interface가 깔끔하게 나오질 않는다고 생각. 차라리 조금씩이라도 UnitTest 코드를 붙이는게 나을것 같긴 하다. 하지만, 마감이 2일인 관계로. -_- 스펙 완료뒤 고려하던지, 아니면 처음부터 TDD를 염두해두고 하던지. 중요한건 모듈자체보다 모듈을 이용하는 Client 의 관점이다.
          * 5분간격으로 Pair Programming을 했다.. 진짜 Pair를 한 기분이 든다.. Test가 아닌 Real Client UI를 만들었는데, 하다보니 Test때 한번씩 다 해본거였다.. 그런데 위와 아래에 1002형이 쓴걸 보니 얼굴이 달아오른다.. --;; 아웅.. 3일전 일을 쓰려니 너무 힘들다.. 일기를 밀려서 쓴기분이다.. 상상해서 막 쓰고싶지만 내감정에 솔직해야겠다.. 그냥 생각나는것만 써야지.. ㅡ.ㅡ++ 확실히 5분간격으로 하니 속도가 배가된 기분이다.. 마약을 한상태에서 코딩을 하는 느낌이었다.. 암튼 혼자서 하면 언제끝날지 알수없고 같이 해도 그거보단 더 걸렸을듯한데, 1시간만에 Login관련 UI를 짰다는게 나로선 신기하다.. 근데 혼자서 나중에 한 Tree만들땐 제대로 못했다.. 아직 낯선듯하다. 나에게 지금 프로젝트는 기초공사가 안된상태에서 바로 1층을 올라가는 그런거같다.. 머리속을 짜내고있는데 생각이 안난다 그만 쓰련다.. ㅡㅡ;; - 영서
          ''5분 플레이를 시도하려고 할때 학습과 능률 사이를 잘 저울질 할 필요가 있을듯. ["생각을곱하는모임"]의 글에서도 그렇듯, 사람과의 의견교환과 홀로 공부하고 생각하는 것 양자간의 균형을 잡아야겠지. 하지만, 우리가 만나서 플밍할때 해당 라이브러리공부와 플밍을 둘 다 하기엔 시간이 모자르니, 학습부분은 개인적으로 어느정도 해야 겠지. (나도 JTree 보려고 Graphic Java 랑 Core Java, Professional Java 에 있는 JTree 다 읽어보고 집에서 개인적인 예제 코드 작성하고 그랬다. 그정도 했으니까 자네랑 플밍할때 레퍼런스 안뒤져보지. 뭐든지 기본 밑바탕이 되는건 학습량이라 생각. 학습량 * 효율적 방법론 = Output --석천''
         (그 이후 창섭이가 와서 영서에게 JTree관련 Solo Programming 을 시켰는데, 말이 안되는 프로그래밍을 했다. -_-; 아직 영서가 Swing 에 익숙하지 않아서 그런데, 앞의 프로그램은 어떻게 만들어졌을까 의문이 들 정도였다; 아마 5분 간격 플밍시에는 서로 앞 사람 소스작성을 한 것을 기준으로 붙여나가는 방식이기에 그 흐름을 잡고 프로그래밍을 해서 Pair 가 성립이 가능했던것 같다는 생각도 해본다. 이는 처음 프로그래밍을 하는 사람과의 PairProgramming 시 궁리해봐야 할 사항인듯)
         영서에게 JTree 관련 프로그래밍에 대해서 설명을 했다. JTree와 관련하여 미리 공부하라고 하긴 했는데, 아직은 힘든가 보다. 오늘 작업시간이 5시 30분부터 9시 (저녁 30분가량), 약 3시간 가량이 걸렸던것으로 기억된다. 팀으로 모일 수 있는 시간이 흔하지 않으므로, 각 필요한 부분에 대한 학습과 예제 코드등의 JDK에 대한 SpikeSolution 에 대해서는 집에서 해 봐야 할 것이다. 작업 시간에 학습시간을 같이 할애 하기엔 시간이 그리 넉넉치 않다. [[BR]]
         그래도 메신저리스트의 사용자 추가/삭제 부분에 대한 JTree 부분 플밍을 비슷한 수준으로 했다는 것과 CVS 에 add & commit 하는 전체 한 과정을 해본점에서 의의를 두어본다.[[BR]]
          DeleteMe) ''참고로 자바에서는 순수한 형태의 MVC 모델을 사용하지 않습니다. 변형된 형태의 MVC 모델을 사용합니다 [http://java.sun.com/products/jfc/tsc/articles/getting_started/getting_started2.html Introducing Swing Architecture]. 이론과 실제의 차이랄까요. --이선우''
          ''순수한 형태의 MVC 모델을 구경해본적이 없는 관계로;; 저에겐 추상적인 개념일 뿐인지라. 하긴 JTree 에서 TreeModel 부분과 TreeRender & UIManager 부분, JTree 부분에 연결된 리스너와 관련할때 정확히 Control 부분과 UI 부분이 따로 떨어지지 않고 경계가 좀 모호하긴 하다는. --석천''
         대학교들어와서 그정도로 열심히(?)공부한적은 별루 없었던거같다.. 그날 이얘기를 들은 1002형은 놀란표정이었지만 사실 그랬다.. 그러니깐 학점이 그렇게 나왔겠지.. -_-;; 암튼 일주일전에 봤던 자바 기본개념을 바탕으로 남들 다 해본 스윙 기본틀이나 메뉴같은걸 작성해봤다.. 아참 그전에 CVS사용법을 배우고, Architecture와 Design에 대해서도 들었다.. 신기하다.. 무슨 도면같았다.. 이제서야 느낀거지만 프로그램에 코딩이 차지하는비중은 1/2도 안되는구나라는걸 느꼈다.. (이제서야? --;;) 여지껏 놀은시간이 너무 아까웠다.. -_-;; --영서
  • ProjectZephyrus/ServerJourney . . . . 4 matches
         toReceiver: #offline#lsk
          * {{{~cpp InfoManager}}}에서 테이블을 만드는 {{{~cpp createPZTable}}}과 테이블은 없애는 {{{~cpp dropPZTable}}}을 만들었습니다. 완성은 아니구요... 조금 수정은 해야합니다.. --상규
          * 중복 접속 방지 작업, sync 문제에 관해서는 약간 고민을 더해야 할듯 하다. Rename
          * 몇가지 인자들 Rename
          * 느낀점 : 휴.. 전에 툴을 쓸때는 해당 툴과 손가락이 생각을 못따라가 가는 것이 너무 아쉬웠는데, Eclipse에서는 거의 동시에 진행할수 있었다. extract method, rename, quick fix, auto fix task,마우스가 필요 없는 작업 환경들 etc VC++로 프로그래밍 할때도 거의 알고 있는 단축키와 key map을 macro를 만들어 써도 이정도가 아니었는데 휴..
          * Logout 클래스 작성, Rename작업, 04일에 의논한 내용 UML에 반영
          1. JCreator용 설정 파일 작성
  • RSSAndAtomCompared . . . . 4 matches
         most likely candidates will be [http://blogs.law.harvard.edu/tech/rss RSS 2.0] and [http://ietfreport.isoc.org/idref/draft-ietf-atompub-format/ Atom 1.0].
         The purpose of this page is to summarize, as clearly and simply as possible, the differences between the RSS 2.0 and Atom 1.0 syndication languages.
         == Major/Qualitative Differences ==
         The RSS 2.0 specification is copyrighted by Harvard University and is frozen. No significant changes can be made and it is intended that future work be done under a different name; Atom is one example of such work.
         IETF standards track RFC) represents the consensus of the
         within the [http://www.ietf.org/ IETF], as reviewed and approved by the IETF community and the
         [http://www.ietf.org/iesg.html Internet Engineering Steering Group]. The specification is structured in such a way that the IETF could conceivably issue further versions or revisions of this specification without breaking existing deployments, although there is no commitment, nor currently expressed interest, in doing so.
         There are two popular protocols widely used with RSS, [http://www.xmlrpc.com/metaWeblogApi MetaWeblog]
         and [http://www.blogger.com/developers/api/ Blogger]. There are frequent
         [http://www.bblfish.net/blog/page7.html#2005/06/20/22-28-18-208 reports] of problems with interoperability and feature shortcomings.
         [http://ietfreport.isoc.org/idref/draft-ietf-atompub-protocol/ Atom Publishing Protocol], which is closely integrated with the Atom feed format and is based on the experience with the existing protocols.
         === Required Content ===
         RSS 2.0 requires feed-level title, link, and description. RSS 2.0 does not require that any of the fields of individual items in a feed be present.
         Atom 1.0 requires that both feeds and entries include a title (which may be empty), a unique identifier, and a last-updated timestamp.
         RSS 2.0 may contain either plain text or escaped HTML, with no way to indicate which of the two is provided. Escaped HTML is ugly (for example, the string AT&T would be expressed as “AT&amp;T”) and has been a source of difficulty for implementors. RSS 2.0 cannot contain actual well-formed XML markup, which reduces the re-usability of content.
         Atom has a carefully-designed payload container. Content may be explicitly labeled as any one of:
          * some other XML vocabulary (There is no guarantee that the recipient will be able to do anything useful with such content)
         RSS 2.0 has a “description” element which is commonly used to contain either the full text of an entry or just a synopsis (sometimes in the same feed), and which sometimes is absent. There is no built-in way to signal whether the contents are complete.
         Atom has separate “summary” and “content” elements. The summary is encouraged for accessibility reasons if the content is non-textual (e.g. audio) or non-local (i.e. identified by pointer).
         [http://diveintomark.org/archives/2002/06/02/important_change_to_the_link_tag autodiscovery] has been implemented several times in different ways and has never been standardized. This is a common source of difficulty for non-technical users.
  • Refactoring/BuildingTestCode . . . . 4 matches
         그때 나는 increment development단계에 있었고, 나는 매번 increment 을 완료할때 클래스들에 test method들을 추가했다. 그때 했던 프로젝트는 꽤 작았었고, 우리는 우리의 increment 주기는 한주 단위정도였다. 테스트의 실행은 는 꽤 수월하게 되었다. 하지만 테스트들은 실행하기 쉬웠지만, 테스트를 하는 것은 여전히 지겨운 일이였다. 이것은 내가 체크해야 하는 모든 테스트들이 console 에 결과를 출력하도록 만들어졌기 때문이다. 나는 꽤 게으른 사람이고, 나는 일을 피하기 위해 꽤 열심히 일을 준비했다. 나는 이 클래스들이 프린팅 해주는 것을 체크하는 대신, 컴퓨터가 테스트를 수행하도록 했다.내가 할일은 테스트 코드에 내가 기대하는 결과를 작성하고, 그 비교를 수행하는 것이다. 자, 나는 모든 클래스들의 test method를 수행할 수 있었고, 모든 일이 잘 되면 단지 'OK' 가 출력되는 것을 확인하면 되었다. 이 클래스는 지금 스스로 자기 자신을 테스트를 했다.
         이 사실을 알아갈수록 나는 테스트에 좀 더 적극적이 되었다. increment가 끝가기를 기다리는 대신에, 나는 조그마한 기능을 추가할 때 마다 테스트를 했다. 매번 나는 새 기능들을 추가 했고, 그들에 대한 테스트들을 수행했다. 이 당시 나는 디버깅에 수분이상을 소비하지 않았다.
         테스팅 코드는 ExtremeProgramming 의 중요한 부분이다. [Beck, XP]. 이 이름은 빠르고 게으른 해커같은 프로그래머들에겐 마술주문과 같을 것이다. 하지만, extreme programmer들은 테스트에 대해 매우 헌신적이다. 그들은 가능한 한 소프트웨어가 빠르게 발전하기 원하고, 그들은 테스트들이 당신을 아마 갈 수 있는 한 빠르게 갈 수 있도록 도와줄 것을 안다.
         이정도에서 이야기는 충분하다 본다. 비록 내가 self-testing code를 작성하는 것이 모두에게 이익이 된다고 생각하더라도, 그것은 이 책의 핵심이 아니다. 이 책은 Refactoring에 관한 것이다. Refactoring은 test를 요구한다. 만일 Refactoring 하기 원한다면, test code를 작성해야 한다.
         ["Refactoring"]
  • Refactoring/MovingFeaturesBetweenObjects . . . . 4 matches
         ["Refactoring"]
         = Chapter 7 Moving Features Between Objects =
         A method is, or will be, using or used by more features of another class than the class on which it is defined.
         ''Create a new method with a similar body in the class it uses most. Either turn the old method into a simple delegation, or remove it altogether.''
         http://zeropage.org/~reset/zb/data/MoveMethod.gif
         A field is, or will be, used by another class more than the class on which it is defined.
         ''Create a new field in the target class, and change all its users.''
         http://zeropage.org/~reset/zb/data/MoveField.gif
         ''Create a new class and move the relevant fields and methods from the old class into the new class.''
         http://zeropage.org/~reset/zb/data/1012450988/ExtractClass.gif
         ''Move all its features into another class and delete it.''
         http://zeropage.org/~reset/zb/data/InlineClass.gif
         ''Create methods on the server to hide the delegate.''
         http://zeropage.org/~reset/zb/data/HideDelegate.gif
         == Remove Middle Man ==
         ''Get the client to call the delegate directly.''
         http://zeropage.org/~reset/zb/data/RemoveMiddleMan.gif
         == Introduce Foreign Method ==
         A server class you are using needs an additional method, but you can't modify the class.
         ''Create a method in the client class with an instance of the server class as its first argument.''
  • SeparatingUserInterfaceCode . . . . 4 matches
         전에 TDD 기사 썼을때 읽으면서 굉장히 감명깊었던 구절. 디자인에서 로직/UI 분리가 어떻게 이루어져야 하는가를 아주 간단하면서도 명료하게 말해준다. 개인적으론 RefactoringBook 을 읽었을때보다 이 글을 본 것이 더 충격적이였던것으로 기억된다. (특히, RefactoringBook 을 읽었을때보다 상대적으로 디자인에 대한 지식이 더 있었을때임에도 충격이 더 컸음에.) :
         When separating the presentation from the domain, make sure that no part of the domain code makes any reference to the presentation code. So if you write an application with a WIMP (windows, icons, mouse, and pointer) GUI, you should be able to write a command line interface that does everything that you can do through the WIMP interface -- without copying any code from the WIMP into the command line.
         도메인모델로부터 프레젠테이션 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 presentattion 코드와 관련이 없도록 해야 한다. 그리하여 만일 WIMP GUI 어플리케이션을 작성했을때 당신은 WIMP 인터페이스를 통해 할 수 있는 모든 것들을 command line interface 로 작성할 수 있어야 한다. WIMP 코드로부터 어떠한 코드도 복사하지 않고.
         도메인모델로부터 퍼시스턴스 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 퍼시스턴트 레이어 코드와 관련이 없도록 해야 한다. 만일 MySQL Repository을 작성했을때 당신은 MySQL 인터페이스를 통해 할 수 있는 모든 것들을 Flat File Repository interface 로 작성할 수 있어야 한다. MySQL 코드로부터 어떠한 코드도 복사하지 않고.
  • StepwiseRefinement . . . . 4 matches
         사실, TestDrivenDevelopment나 ["Refactoring"]의 상당 부분도 어찌보면 StepwiseRefinement의 연장선에 있다.
          * ["ScheduledWalk/석천"] : ["1002"]가 RandomWalk2를 StepwiseRefinement로 접근한 예
         Niklaus Wirth 교수의 ''Program Development by Stepwise Refinement''(1971, CACM 14.4) (http://www.acm.org/classics/dec95/ )와 EdsgerDijkstra의 [http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD227.PDF Stepwise Program Construction]을 꼬오옥 읽어보길 바랍니다. 전산학 역사에 길이 남는 유명한 논문들이고, 여기 소개된 SR은 Structured Programming에서 핵심적 역할을 했습니다. 당신은, 이 사람이 사용한 stepwise refinement에 상응하는 어떤 "일반적 문제 접근법 및 디자인 방법"을 갖고 있습니까? 이 글을 읽고 다른 문제에 stepwise refinement를 적용해 보십시오. Functional Programming이나 OOP에도 적용할 수 있습니까? 이 글을 읽고, 또 스스로 실험을 해보고 무엇을 배웠습니까? 이 stepwise refinement의 단점은 무엇이고, 이를 극복하는 방법은 무엇일까요? --김창준.
  • SuperMarket/인수 . . . . 4 matches
          cout << sm.getRestMoney() << endl;
         #include <iostream>
          return _name;
          return _cost;
          return _good;
          return _count;
          int _receivedMoney;
          _receivedMoney = 0;
          void receiveMoney(int money)
          _receivedMoney = money;
          _receivedMoney -= goods.getCost() * count;
          int getRestMoney() const
          return _receivedMoney;
          return _havingGoods;
          break;
          return _havingGoods[i];
          sm.receiveMoney(money);
          if(sm.getRestMoney() < goods.getCost() * count)
          int ret = str.size();
          ret = i;
  • SystemEngineeringTeam/TrainingCourse . . . . 4 matches
          * jereneal.me보다 훨씬 짧은데 사용가능한 도메인이었음. jkim은 jereneal kim도 되고, (tae) jin kim도 됨. .com등의 도메인은 없었음.
          * [서지혜] - rabierre.me
          * [http://ko.wikipedia.org/wiki/%EA%B5%AD%EA%B0%80_%EC%BD%94%EB%93%9C_%EC%B5%9C%EC%83%81%EC%9C%84_%EB%8F%84%EB%A9%94%EC%9D%B8 도메인 목록]에서 참고하여 .com, .net, .org, .re, .me를 후보군으로 지정하였음
          * stylesha.re처럼 이어지는 도메인(rabier.re)으로 정하고 싶어 .re를 알아보았다. .re는 프랑스령의 한 섬인 레위니옹의 ccTLD. AFNIX에서 관리한다고 한다. 처음에 AFNIX 사이트에서 도메인 구입을 하려 했으나 회원가입도 변변히 못하고 쫒겨났는데 다시 찾아보니 [http://ko.wikipedia.org/wiki/.re 레위니옹 이외의 조직 또는 개인에게 아예 할당을 하지 않는 모양..]
          * stylesha.re는 어떻게 얻은거지?
          * .re는 후보에서 제외됨.. 신포도 기제 발동으로 rabier.re가 갑자기 구려보임.
          * 나머지 도메인중에 구매할 것을 고르는데 도메인 설명중 .me의 "개인용으로 적합하다. 특히 resume, blogs에 사용할 수 있다"라는 설명이 나의 심금을 울렸는데 특히 resume부분이...
         || ||CentOS||UbuntuServer||FreeBSD||RHEL||
         ||계열||RedHat||Debian||UNIX||RedHat||
         ||비슷한 일반 데스크톱 운영체제||Fedora||ubuntu||FreeBSD|| ||
          * [안혁준] - 우선 Window서버는 원격으로 관리하기가 매우 귀찮고 POSIX호환도 안되므로 일단 제외. UNIX/Linux계열중 활발한 활동이 있는데는 FreeBSD와 Redhat계열, 데이안 계열(Ubuntu).
          * RedHat계열 - 패키지 매니져 : yum
          * CentOS - RHEL의 클론 버전. 라이센스 문제때문에 들어가지 못한 패키지를 Open Source Software로 교체. 뛰어난 안정성을 자랑함. 다만 안정성을 택한대신 패키지의 종류가 적고 업데이트가 매우 느린편. 아직도 jdk 1.6버전이라는 소문이 있다.
          * FreeBSD - 솔직하 깔아서 쓰기 전까지는 모르겠다. 일단 패키지 관리자 비슷한것은 존재하는 것 같고 서버를 위한 지원도 활발한것 같다.
          * 직접 써보기 전까지는 모를것 같다. 각 운영체제를 비교할려해도 그져 features를 읽거나 근거가 없는 뭐가 좋더라 식의 글들을 읽는 것 밖에 없다. 내가 중요시 하는 건 "어떤기능이 된다"가 아니라 "비교적 쉽게 되고 마음만 먹으면 세세한 셋팅도 할수 있다"를 원하기 때문에 features만 읽어서는 판별할수가 없다. 직접 써보고 비교해 보면 좋겠지만 그럴 여건도 안되서 조금 안타깝다. 사실 CentOS와 FreeBSD 중에서 CentOS를 쓰고 싶은데 도저히 적절한 이유를 찾을수가 없었다. 그렇다고 FreeBSD를 쓰자니 FreeBSD가 좋은 이유를 찾을수 없었다.
          * 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
          * [박정근] - CentOS, Ubuntu, FreeBSD 중에서 선택.
          * 일단 FreeBSD는 맥계열이라 제외 맥에대한 서버는 관심이 없다. Ubuntu와 CentOS중에서 Ubuntu가 더 익숙하고 사용하기 편하지만 CentOS선택.
  • TdddArticle . . . . 4 matches
         여기 나온 방법에 대해 장점으로 나온것으로는 비슷한 어프로치로 500 여개 이상 테스트의 실행 시간 단축(Real DB 테스트는 setup/teardown 시 Clean up 하기 위해 드는 시간이 길어진다. 이 시간을 단축시키는 것도 하나의 과제), 그리고 테스트 지역화.
         제약사항으로는 Stored Procedure 나 Trigger 등 Vendor-Specfic 한 기술들을 적용하기 어렵다는 점 (이를 위해선 로컬 DB 또한 해당 Vendor의 DB를 설치해야 하므로).
         류군 이야기로는 Oracle 의 경우 설치하고 딱 실행하는데만 기본 메모리 200메가 잡아먹는다고 한다. -_-; 로컬 테스트를 위해 HypersonicSql를 쓸만도 하군.; (In-memory DB 식으로 지원가능. 인스톨 할것도 없이 그냥 콘솔에서 배치화일 하나 실행만 하면 됨. 근데, JDBC 를 완벽히 지원하진 않는 것도 같아서, 약간 애매. (ResultSet 의 first(), last(), isLast() 등의 메소드들이 실행이 안됨)
         여기에서의 TDD 진행 방법보다는 Reference 와 사용 도구들에 더 눈길이 간다. XDoclet 와 ant, O-R 매핑 도구를 저런 식으로도 쓸 수 있구나 하는 것이 신기. 그리고 HSQLDB 라는 가벼운 (160kb 정도라고 한다) DB 로 로컬테스트 DB 를 구축한다는 점도.
         Xper:XperSeminar 를 보니 일단 셋팅이 되고 익숙해지면 TDD 리듬이 덜 흐트러지는 방법 같았다. (재우씨랑 응주씨가 원래 잘하시고 게다가 연습도 많이 하셔서이겠지만;) password 추가되고 테스트 돌리는 리듬이 좋아보인다. 단, 테스트 돌아가는 속도가 역시 Real DB 이면서 [Hibernate] 까지 같이 돌아가서 약간 느려보이는데, 이건 해보고 결정 좀 해야겠군.
         reference 쪽은 최근의 테스트와 DB 관련 최신기술 & 문서들은 다 나온 듯 하다. 익숙해지면 꽤 유용할 듯 하다. (hibernate 는 꽤 많이 쓰이는 듯 하다. Intellij 이건 Eclipse 건 플러그인들이 다 있는걸 보면. XDoclet 에서도 지원)
  • TheJavaMan/테트리스 . . . . 4 matches
          Thread clock;
          int blockDirection;
          mem=createImage(181,316);
          memG.fillRect(0,0,192,192);
          blockDirection = 0;
          this.requestFocus();
          memG.fillRect(i*15,j*15,15,15);
          memG.fillRect(i*15,j*15,15,15);
          memG.drawRect(i*15,j*15,15,15);
          removeBlock();
          blockDirection=0;
          private void removeBlock() {
          return dropOk;
          break;
          break;
          break;
          break;
          break;
          break;
          break;
  • UDK/2012년스터디/소스 . . . . 4 matches
         // Event occured when character logged in(or creation). There are existing function PreLogin, PostLogin functions.
          return pc;
          local vector CamStart, HitLocation, HitNormal, CamDirX, CamDirY, CamDirZ, CurrentCamOffset;
          local float DesiredCameraZOffset;
          CurrentCamOffset = self.CamOffset;
          DesiredCameraZOffset = (Health > 0) ? - 1.2 * GetCollisionHeight() + Mesh.Translation.Z : 0.f;
          CameraZOffset = (fDeltaTime < 0.2) ? - DesiredCameraZOffset * 5 * fDeltaTime + (1 - 5*fDeltaTime) * CameraZOffset : DesiredCameraZOffset;
          CurrentCamOffset = vect(0,0,0);
          CurrentCamOffset.X = GetCollisionRadius();
          CamDirX *= CurrentCameraScale;
          // Move camera to prevent pinning by world
          // @todo fixmesteve. If FindSpot fails, then (rarely does) camera pinned continously.
          if (CurrentCameraScale < CameraScale) {
          CurrentCameraScale = FMin(CameraScale, CurrentCameraScale + 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*fDeltaTime);
          else if (CurrentCameraScale > CameraScale) {
          CurrentCameraScale = FMax(CameraScale, CurrentCameraScale - 5 * FMax(CameraScale - CurrentCameraScale, 0.3)*fDeltaTime);
          CamDirX *= square(cos(out_CamRot.Pitch * 0.0000958738)); // 0.0000958738 = 2*PI/65536
          out_CamLoc = CamStart - CamDirX*CurrentCamOffset.X + CurrentCamOffset.Y*CamDirY + CurrentCamOffset.Z*CamDirZ;
          return true;
         var string StringResult;
  • VendingMachine/세연/1002 . . . . 4 matches
          return choice != 0;
          return choice != MENU_END;
          break;
          break;
          break;
          break;
          break;
          return choice >= 0 && choice <= 4;
          return choice >= MENU_END && choice <= MENU_INSERT_DRINK;
          break;
          return choice != MENU_ENDCODE;
          return choice >= MENU_START && choice <= MENU_END;
          break;
         솔직히 이부분이 좋지 않은 것이.. Vending Machine 내에서 UI 부분이 확실하게 추출되지 않았다는 점입니다. (만일 Requirement 가 변경되어서, MFC 그래픽 버전으로 만든다면? 디자인이 잘 된다면, Vending Machine 쪽의 코드의 수정이 거의 없이 UI 코드만 '추가' 될 겁니다. 이는 기존 Vending Machine 코드쪽의 '변경'을 의미하지 않습니다.)
         #include <iostream>
          break;
          break;
          break;
          break;
          break;
  • XpQuestion . . . . 4 matches
         - '필요하면 하라'. XP 가 기본적으로 프로젝트 팀을 위한 것이기에 혼자서 XP 의 Practice 들을 보면 적용하기 어려운 것들이 있다. 하지만, XP 의 Practice 의 일부의 것들에 대해서는 혼자서 행하여도 그 장점을 취할 수 있는 것들이 있다. (TestDrivenDevelopment, ["Refactoring"], ContinuousIntegration,SimpleDesign, SustainablePace, CrcCard Session 등. 그리고 혼자서 프로그래밍을 한다 하더라도 약간 큰 프로그래밍을 한다면 Planning 이 필요하다. 학생이다 하더라도 시간관리, 일거리 관리는 익혀야 할 덕목이다.) 장점을 취할 수 있는 것들은 장점을 취하고, 지금 하기에 리스크가 큰 것들은 나중에 해도 된다.
         각 Practice 를 공부를 하다보면, 저것들이 이루어지기 위해서 공부해야 할 것들이 더 있음을 알게 된다. (의식적으로 알아낼 수 있어야 한다고 생각한다.) Refactoring 을 잘하기 위해선 OOP 와 해당 언어들을 더 깊이있게 이해할 필요가 있으며 (언어에 대해 깊은 이해가 있으면 똑같은 일에 대해서도 코드를 더 명확하고 간결하게 작성할 수 있다.) CrcCard 를 하다보면 역시 OOP 와 ResponsibilityDrivenDesign 에 대해 공부하게 될 것이다. Planning 을 하다보면 시간관리책이나 일거리 관리책들을 보게 될 것이다. Pair 를 하다보면 다른 사람들에게 자신의 생각을 명확하게 표현하는 방법도 '공부'해야 할 것이다. 이는 결국 사람이 하는 일이기에. 같이 병행할 수 있고, 더 중요한 것을 개인적으로 순위를 정해서 공부할 수 있겠다.
         - Story Card 는 Kent Beck 이 사용자와 더 빠른 피드백을 위해 생각한 덜 형식적인 방법이다. 어차피 Story Card 는 전부 AcceptanceTest 로 작성할 것이기에, 테스트가 작성되고 나면 AcceptanceTest 가 도큐먼트 역할을 할 것이다. Index Card 도구 자체가 보관용이 아니다. 보관이 필요하다면 위키를 쓰거나 디지털카메라 & 스캐너 등등 '보관용 도구', 'Repository' 를 이용하라.
  • YouNeedToLogin . . . . 4 matches
          * 보다 좋은 RecentChanges 페이지와 info action(파란아이)를 볼 수 있다.
         == Thread ==
          ''제가 페이지수정에 로그인 의무화를 주장하는 가장 큰 이유는 보기좋고 편리한 RecentChanges 입니다. 로그인이 귀찮은건 사실입니다만 보다 잘 정리된 ZeroWiki 를 사용하고 싶습니다.'' --["이덕준"]
         제 생각은 '' 아무나 어떠한 제한 없이 수정할수 있다 '' 입니다. 로그인 자체가 필요한 이유가 현재 두가지를 드는데, 보기좋고 편리한 RecentChanges 와 이상한 형태의 새페이지 개설을 막자입니다. 전자는 저 자신은 그리 크게 신경 쓰지 않는 일이라, 여태 생각하지 않았던 것입니다. 후자는 인간이 그러는 것이라면, 로그인 이후에도 그러한 실수는 배제할수 없지 않을까요?
          제가 RecentChanges 에 그렇게 신경이 안쓰이지만, 다른 분들이 신경이 쓰이는것 처럼, 저에게는 작은 불편으로 인식되지 않습니다. 위의 Document 에서 언급한것처럼 틀속에 갖히는 느낌이 가장 싫습니다. 그리고, 처음 오시는 분들이 자유롭게 수정못하는 것에 가장 마음이 걸립니다. 제가 http://c2.com 을 보고 받은 충격을 받고 느낀 자유로움 때문에 이런것이 작은 불편보다 더 크게 다가 옵니다. --["neocoin"]
          id 부분에 대해서 UID 숫자가 아닌 아이디/패스워드 스타일로 UserPreferences 를 패치해야 할듯. (조만간 수정하겠습니다.) --["1002"]
  • ZP도서관 . . . . 4 matches
         [[include(틀:Deprecated)]]
         || Applications for Windows Fourth Edition || Jeffrey Richter || MS Press || ["1002"] || 원서 ||
         || C : A Reference Manual 4th Ed. || Harbison, Steele Jr. || Prentice Hall || ["zennith"] || 원서 ||
         || ["DirectX3D"] ||.||.|| 보솨 || 한서 ||
         || Essential System Administration || AEeen Frisch ||O'Reilly || ["혀뉘"], ["ddori"] || 원서 ||
         || JAVA and XML (1st ed.) || Brett McLaughlin || O'REILLY || 이선우 || 원서 ||
         || Java Network Programming 2nd Ed. ||.|| O'Reilly ||["nautes"]||원서||
         || Programming Python || Mark Lutz || O'REILLY || ddori || 원서 ||
         || Solaris Internals || Jim Mauro, Richard 맥도걸|| Prentice Hall || ["혀뉘"], ["ddori"] || 원서 ||
         || The C Programming Language 2nd Ed. || Kernighan, Ritchie || Prentice Hall || ["zennith"] || 원서 ||
         || 전문가와함께하는XML Camp ||김채미 외 ||마이트Press||["혀뉘"]||한서||
         || about FreeBSD ||.|| 영진 || 광식, ["ddori"] || 한서 ||
         || XML-RPC || 사이먼 로렌트 외 || O'REILLY || ["구근"] || 한민수 역 ||
         || C언어 프로그래밍(원서명: The C Programming Language) || Brian W.Kernighan, Dennis M.Ritchie || Prentice-Hall || 도서관 소장(대영사 번역판본) || 프로그래밍언어 ||
         || ExtremeProgramming Installed || Ron Jeffries, Ann Anderson, Chet Hendrickson || Addison-Wesley || 도서관 소장 || 개발방법론 ||
         || Software Engineering || Ian Sommerville || Addison-Wesley || 도서관 소장 || SE ||
         || Learning, creating, and using knowledge || Joseph D. Novak || Mahwah, N.J. || 도서관 소장 || 학습기법관련 ||
         || Learning How To Learn || Joseph D. Novak || Cambridge University Press || 도서관 소장 || 학습기법관련 ||
         || How To Read a Book || Adler, Morimer Jero || Simon and Schuster || 도서관 소장(번역판 '논리적독서법' 도서관 소장, ["1002"] 소유. 그 외 번역판 많음) || 독서기법관련 ||
         == Thread ==
  • ZeroPageServer/Mirroring . . . . 4 matches
          [root@localhost root]# rpm -qa | grep rsync
          rsync RPM 패키지는 redhat-lsb 패키지와 의존성을 가지므로, 설치시
          의존성 오류가 나올 때는 redhat-lsb-1.3-1.i386.rpm을 먼저 설치한 후
          [root@localhost root]# rsync -avz --delete -e ssh 192.168.1.1:/ftp/pub/redhat9/
          /mirror/redhat9
          receiving file list ... done
          wrote 64 bytes read 1855717755 bytes 2449792.50 bytes/sec
          즉, /etc/init.d/sshd restart를 실행하여 클라이언트가 SSH 서버에 접
          read only = yes /no
          ② comment : rsync 서비스에 대한 설명이다. 예) Red Hat Linux 9.0 Mirror
          ⑥ read only : 클라이언트가 서버에서 데이터만 다운로드 하는 경우에는 이 옵션을 yes로 설
          comment = Red Hat Linux 9 ISO Mirror
          path = /data/ftp/pub/redhat9
          read only = yes
          socket_type = stream
          log_on_failure += USER ID
          [root@localhost /]# /etc/init.d/xinetd restart
          rh9iso Red Hat Linux 9 ISO Mirror
          created directory /mirror/rh9hwp_backup
          wrote 36854994 bytes read 100 bytes 1890004.82 bytes/sec
  • ZeroPage_200_OK . . . . 4 matches
          * '''XHTML1.0 (Transitional / Strict)''' - http://www.w3.org/TR/2002/REC-xhtml1-20020801/
          * HTML4.01 (Transitional / Frameset / Strict) - http://www.w3.org/TR/1999/REC-html401-19991224/
         == References ==
          * 위에 링크한 저의 Workspace Project의 index.html 파일에 메뉴 샘플을 구현해두었습니다. 상단의 Preview로 확인하면서 적절히 참조해서 만들면 도움이 될겁니다.
          * 월드 와이드 웹(WWW)과 W3C 표준(Recommendation)
          * form 관련으로 사용자 입력을 받을 수 있었던 부분 실습을 주로 배웠습니다. 근데 궁금한게 도중에 html5 얘기를 하시면서 <a href=""><button>abc</button></a> html5에서는 이렇게 사용할 수 있는데 이런게 자바스크립트를 쓸 수 없는 경우에 된다고 하셨는데 그럼 원래 버튼의 onclick같은 on~는 자바스크립트인건가요? - [서영주]
          * 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
          * 비동기 HTTP Request 복습.
          * JavaScript (prototype/closure)
          * escape, unescape (deprecated) : encoding 스펙이 정해져 있지 않아서 브라우저마다 구현이 다를 수 있다.
          * $(document).ready() - 처음에 자바스크립트 코드를 해석할 때 해당 객체가 없을 수 있기 때문에 DOM 객체가 생성되고 나서 jQuery 코드가 실행되도록 코드를 ready() 안에 넣어주어야 한다.
          * live() - 처음에 ready() 때에 이벤트 핸들러를 걸어주는 식으로 코드를 짰을 경우 중간에 생성한 객체에는 이벤트 핸들러가 걸려있지 않다. 하지만 ready()에서 live() 메소드를 사용해서 이벤트 핸들러를 걸 경우 매 이벤트가 발생한 때마다 이벤트 핸들러가 걸려야 할 객체를 찾아서 없으면 이벤트 핸들러를 알아서 걸어준다. 하지만 처음에 핸들러를 걸어주는 것과 비교해서 비용이 다소 비싸다.
          * Trello 만들기
          * Web Server - http request에 대해 자신의 file system에서 해당 파일을 찾아서 보낸다.
          * Static resources
          * Dynamic resources
          * process per request <-> thread per request
  • 구구단/이진훈 . . . . 4 matches
          8 timesRepeat: [9 timesRepeat: [Transcript show: a * b; cr. b:= b+1]. a:=a+1. b := 1.].
          8 timesRepeat:
          [9 timesRepeat:
  • 권영기/web crawler . . . . 4 matches
         req = urllib2.Request('http://9632024.tistory.com/974')
         try: urllib2.urlopen(req)
          print e.reason
         for line in urllib2.urlopen(req).readlines():
          * http://coreapython.hosting.paran.com/howto/HOWTO%20Fetch%20Internet%20Resources%20Using%20urllib2.htm
         for line in fo1.readlines() :
          break
         for line in fo.readlines():
          urllib.urlretrieve(line,line.split('/')[-1])
          * http://www.wellho.net/resources/ex.php4?item=y108/bejo.py
         Type "help", "copyright", "credits" or "license" for more information.
          * retrieve
          urllib.urlretrieve(url[, filename[, reporthook[, data]]])
         def create_dir(folder):
          create_dir(t)
          * os.chdir(path) - Change the current working directory to path.
          * os.getcwd() - Return a string representing the current working directory.
          * os.path.isdir(path) - Return True if path is an existing directory.
          * os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
         import prepare
  • 데블스캠프2002/날적이 . . . . 4 matches
         이 곳에 신입회원들은 한일, 알게된 것, 교훈 (ThreeFs 페이지 참조) 등을 적으세요. 그날 했었던 일을 생각하면서 알게된 점을 생각하고, 잘했다고 생각한점은 계속 지향해나가야 겠고, 잘못했다고 생각한점은 '어떻게 하면 잘할 수 있을까?' 하며 대안을 생각해볼 수 있었으면 합니다.
         이런 ThreeFs를 쓰고, 되돌아보기를 하는 것도 역시 공부의 연장입니다. 공부는 "수업"을 마쳤다고 해서 끝나지 않습니다.
         2. Scenario Driven - 앞의 CRC 세션때에는 일반적으로 Class 를 추출 -> Requirement 를 읽어나가면서 각 Class 별로 Responsibility 를 주욱 나열 -> 프로그램 작동시 Scenario 를 정리, Responsibility 를 추가. 의 과정을 거쳤다. 이번에는 아에 처음부터 Scenario 를 생각하며 각 Class 별 Responsibility 를 적어나갔다. Colloboration 이 필요한 곳에는 구체적 정보를 적어나가면서 각 Class 별 필요정보를 적었다. 그리하여 모든 Scenario 가 끝나면 디자인 세션을 끝내었다.
          * 일부러 문법쪽에 대한 정통적인 설명을 배제하긴 했음. 뭐.. 그정도만 해도 디자인 타임때 디자인한 객체를 구현하는데 문제 없을 것 같고 해서. 졸지도 않고 끝까지 둘이서 같이 이야기하면서 플밍 하는 모습이 보기 좋았던 거 같아. 그리고 요구사항 추가내용인 바퀴벌레 2마리일때와 2차원 판이 아닌 3차원 직육면체를 돌아다닐때에 대해서 StructuredProgramming 과 ObjectOrientedProgramming 을 하여 비교하면 문제점 면에서 그 차이를 확실히 알 수 있을것임. --석천
         ''DeleteMe 이 날 참가했던 분들 중에 아직 ThreeFs를 쓰지 않으신 분들이 있다면 몇 글자 좀 써주셨으면 하네요. 강의료 대신이라고 생각하고 말이죠. :) 피드백 없이는 개선, 축적되지 않잖아요? --JuNe''
  • 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김수경 . . . . 4 matches
          private void recordBtn_Click(object sender, EventArgs e)
          /// Required designer variable.
          /// Clean up any resources being used.
          /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
          #region Windows Form Designer generated code
          /// Required method for Designer support - do not modify
          this.recordBtn = new System.Windows.Forms.Button();
          // recordBtn
          this.recordBtn.Location = new System.Drawing.Point(289, 82);
          this.recordBtn.Name = "recordBtn";
          this.recordBtn.Size = new System.Drawing.Size(75, 23);
          this.recordBtn.TabIndex = 9;
          this.recordBtn.Text = "Record";
          this.recordBtn.UseVisualStyleBackColor = true;
          this.recordBtn.Click += new System.EventHandler(this.recordBtn_Click);
          this.Controls.Add(this.recordBtn);
          this.ResumeLayout(false);
          #endregion
          private System.Windows.Forms.Button recordBtn;
  • 레밍즈프로젝트/박진하 . . . . 4 matches
         RectangleMap..
          void FreeExtra();
          void RemoveAll();
          // Direct Access to the element data (may return NULL)
          void RemoveAt(int nIndex, int nCount = 1);
          DWORD nOldSize = ar.ReadCount();
  • 실습 . . . . 4 matches
         국어 점수 int m_nKorean
         입력함수 void Input(char szName[],int nKorean, int nEnglish,int nMath);
         결과출력 함수 void PrintResult();
         14) Tree를 모두 펼쳐 보면, SungJuk.h와 SungJuk.cpp가 존재한다.각 File을 밑에 보여주는 Source를 작성한다.
         int m_nKorean,m_nEnglish,m_nMath;
         void Input(char szName[],int nKorean,int nEnglish,int nMath);
         void PrintResult();
         #include "iostream.h"
          sung[i].PrintResult();
          m_nKorean = 0;
         void SungJuk::Input(char szName[],int nKorean,int nEnglish,int nMath)
          m_nKorean = nKorean;
          m_nTotal = m_nKorean + m_nEnglish + m_nMath;
          return m_nRank;
          return m_nTotal;
         void SungJuk::PrintResult()
          cout << "\tKorean = " << m_nKorean;
  • 오픈소스검색엔진Lucene활용 . . . . 4 matches
          in = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
          in = new BufferedReader(new InputStreamReader(System.in));
         관련이 있는지는 모르겠지만 http://screencast4.sqlonrails.org/video/screencast2_lq.mov 이거 한번 참고해보길 - 임인택
  • 정모/2013.5.6/CodeRace . . . . 4 matches
          * 프레젠테이션 : http://intra.zeropage.org:4000/CodeRace?presentation
          return 0;
          StreamReader sr = new StreamReader(@"C:\test.txt");
          while ((line = sr.ReadLine()) != null)
          break;
          if (p[i].word == null) break;
          Console.Read();
          char store[1000][20];
          int store_count[1000]={0,};
          freopen("input.txt","r",stdin);
          if(strcmp(buffer,store[i])==0)
          {break;
          strcpy(store[count],buffer);
          store_count[count]=1;
          store_count[i]++;
          printf("%s %d\n",store[i],store_count[i]);
          return 0;
          return 0;
          return 0;
          return 1;
  • 조영준/CodeRace/130506 . . . . 4 matches
          * Compare은 인터페이스를 구현시킨건가? 음...
          public static int Compare(pair x, pair y)
          return x.word.CompareTo(y.word);
          StreamReader sr = new StreamReader(@"C:\test.txt");
          while ((line = sr.ReadLine()) != null)
          break;
          break;
          p.Sort(Compare);
          if (p[i].word == null) break;
          Console.Read();
  • 프로그래밍파티 . . . . 4 matches
          * 예상 시간 : 준비 - 1시간, 진행 - 4시간 30분정도 (Requirement 설명 30분, Design & 구현 3시간, 발표 & 심사 1시간), 뒷풀이 - + @ 시간
          * 모임이후 ThreeFs 페이지
          * Requirement 설명 - 30분
          * Requirement 에 따른 Analysis & Design & Implementation - 3시간
          * Correctness : 얼마나 요구사항을 제대로 구현했는가
          * Readability : 코드 가독성
  • 후각발달특별세미나 . . . . 4 matches
         Upload:0503_RefactoringSeminar.hwp - 발표 자료.
         Upload:0503_RefactoringSeminarSrc.zip - 예제 파일들.
         [Refactoring]
         [Refactoring/BadSmellsInCode]
         #include <iostream>
          return 0;
  • 02_Python . . . . 3 matches
          ''Who is "내" here?'' - 봐라용 :)
         = Related Document or book =
          * Red Hat의 리눅스 인스톨러인 아나콘다는 파이썬으로 짜여져 있다
          return 0;
          #include <iostream.h>
          return 0;
          return []
          return qsort(ltList)+[aList[0]]+qsort(gtList)
         리스트 [1,[2, 'three'],4]
         파일 text=open('eggs', 'r').read()
         Break,Countinue 루프 점프 while1:if not line: break
         Def, Return 함수 만들기 def f(a,b,c=1, *d): return a+b+c+d[0]
         def, return def adder(a,b,c=1, *d): return a+b+c+d[0]
  • BusSimulation/상협 . . . . 3 matches
          int m_currentDistance; //버스가 출발한 곳으로부터 몇 Meter 갔는지 거리
          void IncreasePassenger(int n) {m_people+=n;}; //승객수를 증가 시킨다.
          void IncreaseMinute(int t) ; //시간을 증가 시킨다.
          long GetMinute() {return m_Minute;}; //시간(분) 값을 리턴한다.
          int GetDistance() {return m_currentDistance;}; //거리(미터)값을 리턴한다.
          int GetPeopleNumber() {return m_people;}; //사람수를 리턴한다.
          void IncreaseDistance(double n) {m_currentDistance+=n;}; //출발점으로 부터의 거리를 증가시킨다.
          m_currentDistance=0;
         void Bus::IncreaseMinute(int t) //중요한 부분.. 시간이 증가하는 이벤트는 다른 데이터에 어떠한 영향을 끼치고 또다른
          IncreaseDistance(t*((m_velocity*1000)/60)); //그때 버스의 거리도 증가할 것이다
          if(m_currentDistance>=m_totalSectionLength*1000) //시간이 증가하는 상황중에서 버스 노선의 총 거리 이상을
          m_currentDistance= m_currentDistance%(m_totalSectionLength*1000);
          int m_IncreasePerMinute_People; //버스 정류장에 사람들이 1분당 증가하는 정도
          long m_CurrentMinute; //현재 흐르 시간
          void PrintResult(); //결과 출력
          void IncreaseTime(); //1초 만큼 시간이 흘러감
         #include <iostream>
          m_IncreasePerMinute_People = 5; //버스 정류장에 사람의증가 속도
          m_CurrentMinute = 0; //0초부터 시작
          while(m_CurrentMinute!=m_DueMinute) //사용자가 입력한 목적 시간 전까지 시간을 증가 시킨다.
  • CPP_Study_2005_1/BasicBusSimulation/남상협 . . . . 3 matches
         #include <fstream>
         #include <iostream>
          ifstream fin("data.txt");
          busSimulation.readBusData();
          busSimulation.readTimeInput(cin,cout);
          busSimulation.printResult(cout);
         #include <iostream>
         #include <fstream>
          ifstream &m_fin;
          BusSimulation(ifstream &fin) : m_fin(fin) {}
          void readBusData();
          istream& readTimeInput(istream &in, ostream &out);
          void increaseTime(int time);
          ostream& printResult(ostream &out);
         #include <iostream>
         #include <fstream>
         void BusSimulation::readBusData()
         void BusSimulation::increaseTime(int time)
          it->increaseTime(time);
         ostream& BusSimulation::printResult(ostream &out)
  • CVS/길동씨의CVS사용기ForLocal . . . . 3 matches
          도움말 : local은 remote에 접근하는 것과 달리 로그인을 하지 않는 것을 전제 한다. 아무옵션도 붙이지 않고, 자신이 사용할 장소만을 지정한다.
         ==== 저장소 초기화(Remote라면 cvs서버 설정에 있는 과정이다.) ====
         No conflicts created by this import
         cvs import -m "코멘트" 프로젝트이름 VenderTag ReleaseTag
         initial revision: 1.1
         new revision: 1.2; previous revision: 1.1
         total revisions: 2; selected revisions: 2
         revision 1.2
         revision 1.1
         retrieving revision 1.2
         retrieving revision 1.1
         === Thread ===
          * Remote와 큰 차이가 없지요. 차후 다른 스토리를 작성해서 또 업데이트 하겠습니다.
  • Code/RPGMaker . . . . 3 matches
          Object3D plane = new Object3D(coordinates, uvs, indices, RMObject2D.getTextureIDByColor(Color.white));
         import com.threed.jpct.Object3D;
          return;
          m_polygon = new Object3D(coords, uvs, indices, getTextureIDByColor(color));
         import com.threed.jpct.Object3D;
          m_polygon = new Object3D(coords, uvs, indices, getTextureIDByColor(color));
          SimpleVector toCam = MainRenderer.getCamera().getPosition().calcSub(curPosition);
          float a = MainRenderer.getCamera().getPosition().z - this.depth;
         # a 3-dimensional array2 stores 2Byte integer
          resize(xsize, ysize, zsize)
          def resize xsize, ysize, zsize
          def self.resize xsize, ysize, zsize
          #puts "resize to (#{xsize}, #{ysize}, #{zsize})"
          return @array[[x, y, z]]
          return obj
         require 'java'
          attr_reader :object
          def initialize red, green, blue, alpha=255
          @object = AA::Color.new(red, green, blue, alpha)
          def set red, green, blue, alpha=255
  • CodeRace/20060105/민경선호재선 . . . . 3 matches
          private BufferedReader br;
          br = new BufferedReader(new FileReader("alice.txt"));
          public String readLine() {
          line = br.readLine();
          return line;
          line = readLine();
          break;
          word = word.replaceAll("[\p{Punct}]", "");
          return list;
          return name;
          return count;
          public int compare(Data data1, Data data2) {
          return data1.getName().compareTo(data2.getName());
  • ComputerGraphicsClass . . . . 3 matches
         === Report Specification ===
         [ComputerGraphicsClass/Report2004_1]
         [ComputerGraphicsClass/Report2004_2]
  • ComputerNetworkClass/2006 . . . . 3 matches
          * http://zerowiki.dnip.net/~namsangboy/program/ethereal.exe
         [ComputerNetworkClass/Report2006/BuildingWebServer]
         [ComputerNetworkClass/Report2006/PacketAnalyzer]
         [ComputerNetworkClass/Report2006/BuildingProxyServer]
  • CrcCard . . . . 3 matches
         Class - Responsibility - Collaboration Card. 보통은 간단한 3 x 5 inch 짜리의 인덱스카드(IndexCard)를 이용한다.
         ResponsibilityDrivenDesign 에서 OOP 를 이야기할때 '객체를 의인화'한다. CrcCard Play는 이를 돕는다. 즐겁게 객체들을 가지고 노는 것이다.
         See Also Moa:CrcCard , ResponsibilityDrivenDesign, [http://c2.com/doc/oopsla89/paper.html aLaboratoryForTeachingObject-OrientedThinking]
  • DPSCChapter1 . . . . 3 matches
         Welcome to ''The Design Patterns Smalltalk Companion'' , a companion volume to ''Design Patterns Elements of Reusable Object-Oriented Software'' by Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). While the earlier book was not the first publication on design patterns, it has fostered a minor revolution in the software engineering world.Designers are now speaking in the language of design patterns, and we have seen a proliferation of workshops, publications, and World Wide Web sites concerning design patterns. Design patterns are now a dominant theme in object-oriented programming research and development, and a new design patterns community has emerged.
         ''The Design Patterns Smalltalk Companion'' 의 세계에 오신걸 환영합니다. 이 책은 ''Design Patterns Elements of Reusable Object-Oriented Software''(이하 DP) Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). 의 편람(companion, 보기에 편리하도록 간명하게 만든 책) 입니다. 앞서 출간된 책(DP)이 디자인 패턴에 관련한 책에 최초의 책은 아니지만, DP는 소프트웨어 엔지니어링의 세계에 작은 혁명을 일으켰습니다. 이제 디자이너들은 디자인 패턴의 언어로 이야기 하며, 우리는 디자인 패턴과 관련한 수많은 workshop, 출판물, 그리고 웹사이트들이 폭팔적으로 늘어나는걸 보아왔습니다. 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지며, 그에 따라 새로운 디자인 패턴 커뮤니티들이 등장하고 있습니다.(emerge 를 come up or out into view 또는 come to light 정도로 해석하는게 맞지 않을까. ''이제 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지고 있으며, 디자인 패턴 커뮤니티들이 새로이 등장하고 있는 추세입니다.'' 그래도 좀 어색하군. -_-; -- 석천 바꿔봤는데 어때? -상민 -- DeleteMe)gogo..~ 나중에 정리시 현재 부연 붙은 글 삭제하던지, 따로 밑에 빼놓도록 합시다.
         ''Design Patterns'' describes 23 design patterns for applications implemented in an object-oriented programming language. Of course, these 23 patterns do not capture ''all'' the design knowledge an object-oriented designer will ever need. Nonetheless, the patterns from the "Gang of Four"(Gamma et al.) are a well-founded starting point. They are a design-level analog to the base class libraries found in Smalltalk development environments. They do not solve all problems but provide a foundation for learning environments. They do not solve all problems but provide a foundation for learning about design patterns in general and finding specific useful architectures that can be incorporated into the solutions for a wide variety of real-world design problems. They capture an expert level of design knowledge and provide the foundation required for building elegant, maintainable, extensible object-oriented programs.
         In the Smalltalk Companion, we do not add to this "base library" of patterns;rather, we present them for the Smalltalk designer and programmer, at times interpreting and expanding on the patterns where this special perspective demands it. Our goal is not to replace Design Patterns; you should read the Smalltalk Companion with Design Patterns, not instead of it. We have tried not to repeat information that is already well documented by the Gang of Four book. Instead, we refer to it requently;you should too.
         Learning an object-oriented language after programming in another paradigm, such as the traditional procedural style, is difficult. Learning to program and compose application in Smalltalk requires a complex set of new skills and new ways of thinking about problems(e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991). Climbing the "Smalltalk Mountain" learning curve is cetainly nontrivial. Once you have reached that plateau where you feel comfortable building simple Smalltalk applications, there is still a significant distance to the expert peak.
          * How to use the specific tools of the Smalltalk interactive development environment to find and reuse existing functionality for new problems, as well as understanding programs from both static and runtime perspective
          * How to define and implement behavior in new classes and where these classes ought to reside in the existing class hierarchy
          * Recurring patterns of object configurations and interactions and the sorts of problems for which these cooperating objects provide (at least partial) solutions
         This is by no means an exhaustive list, and even novices understand and use much of the knowledge. But some items, especially the last -- recurring patterns of software design, or design patterns -- are the province of design expert.
         A '''design pattern''' is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. The pattern sometimes describes how methods in a single class or subhierarchy of classes work together; more often, it shows how multiple classes and their instances collaborate. It turns out that particular architectures reappear in different applications and systems to the extent that a generic pattern template emerges, one that experts reapply and customize to new application - and domain-specific problems. Hence, experts know how to apply design patterns to new problems to implement elegant and extensible solutions.
         '''''패턴은 각기 다른 어플리케이션과 시스템상에서 재현되는 특별한(고유한, 플랫폼 종속적인) 아키택처, 전문가들이 새로운 어플리케이션,분야에서 발생하는 특별한 문제들을 제거한다. '''''(위에서 쓰인 one이 particular architecture와 동등한 위치로 해석한 방법. 다른의견 제안바람-상민
         In general, designers -- in numerous domains, not just software -- apply their experience with past problems and solution to new, similar problems. As Duego and Benson(1996) point out, expert designers apply what is known in cognitive psychology and artificial intelligence as '''case-based reasoning''', remembering past cases and applying what they learned there. This is the sort of reasoning that chess masters, doctors, lawyers, and architects empoly to solve new problems. Now, design patterns allow software designers to learn from and apply the experiences of other designers as well. As in other domains, a literature of proven patterns has emerged. As a result, we can "stand on the shoulders of giants" to get us closer to the expert peak. As John Vlissies (1997) asserts, design patterns "capture expertise and make it accessible to non-experts" (p. 32).
         Design patterns also provide a succinct vocabulary with which to describe new designs and retrospectively explain existing ones. Patterns let us understand a design at a high level before drilling down to focus on details. They allow us to envision entire configurations of objects and classes at a large grain size and communicate these ideas to other designers by name. We can say, "Implement the database access object as a Singleton," rather than, "Let's make sure the database access class has just one instance. The class should include a class variable to keep track of the singl instance. The class should make the instance globally available but control access to it. The class should control when the instance is created and ..." Which would you prefer?
         Christopher Alexander and his colleagues have written extensively on the use of design patterns for living and working spaces-homes, buildings, communal areas, towns. Their work is considered the inspiration for the notion of software design patterns. In ''The Timeless Way of Building''(1979) Alexander asserts, "Sometimes there are version of the same pattern, slightly different, in different cultures" (p.276). C++ and Smalltalk are different languages, different environments, different cultures-although the same basic pattern may be viable in both languages, each culture may give rise to different versions.
         The Gang of Four's ''Design Patterns'' presents design issues and solutions from a C+ perspective. It illustrates patterns for the most part with C++ code and considers issues germane to a C++ implementation. Those issue are important for C++ developres, but they also make the patterns more difficult to understand and apply for developers using other languages.
         This book is designed to be a companion to ''Design Patterns'', but one written from the Smalltalk perspective. One way to think of the ''Smalltalk Companion'', then, is as a variation on a theme. We provide the same pattern as in the Gang of Four book but view them through Smalltalk glasses. (In fact, when we were trying out names for the ''Smalltalk Companion'', someone suggested "DesignPattern asSmalltalkCompanion." However, we decided only hard-core Smalltalkers would get it.)
         이책은 ''Design Patterns'' 에 대한 지침서, 편람으로 제작되었다. 하지만 관점은 ''Design Pattern''이 C++인것에 반하여 이 책은 Smalltalk에 기인한다. 그냥, 이 책 ''Smalltalk Companion''에 대해서 하나의 주제(design pattern)에 관한 다양한 자료 정도로 생각해 줬으면 한다. 우리는 Gang of Four book에서의 같은 패턴을 제공하지만, Smalltalk라는 안경을 통해서 바라볼것이다. (사실, 우리가 이름에 ''Samlltalk Companion''을 넣을때 어떤이는 "DesignPattern asSmalltalkCompanion" 을-역자주 Smalltalk언어상에서의 표현법 때문인것 같습니다.- 제안하기도 했다. 하지만 그런 이름은 hard-core Smalltalkers들만이 그 이름을 받아들일꺼라고 생각했다.)
         But the ''Smalltalk Companion'' goes beyond merely replicating the text of ''Design Patterns'' and plugging in Smalltalk examples whereever C++ appeared. As a result, there are numerous situations where we felt the need for additional analysis, clarification, or even minor disagreement with the original patterns. Thus, many of our discussions should apply to other object-oriented languages as well.
         Of course, we provide plenty of sample code in Smalltalk. Our examples are, for the most part, not simply Smalltalk versions of the ''Design Patterns'' examples. We often felt an alternative would be more useful than a mere translation of the C++ example.
         Here in a nutshell are our goals for the ''Smalltalk Companion'' as a supplement to ''Design Patterns'' :
  • DPSCChapter3 . . . . 3 matches
         == Structure ==
          구조를 가지게 된다. 가령 CarEngine 하위 구조의 엔진들, CarBody 구조의 body 등등을 가지게 된다.
          (결국, 각각이 CarEngine을 Base Class로 해서 상속을 통해 Ford Engine,Toyota Engine등등으로 확장될 수 있다는 말이다.)
          self subclassResponsibility
          self subclassResponsibility
          self subclassResponsibility
          "Create the top-level part, the car object which starts out having no subcomponents, and add an engine, body, etc."
  • DataCommunicationSummaryProject/Chapter5 . . . . 3 matches
          === Service Requirements ===
          * Voice(서킷) : 고정 전화기 수준의 음질. 소리 나는 메일, Conference Calling
          === Spectrum Requirements ===
          * Direct Upgrades : 이미 존재하고 있는 셀크기와, 채널 구조를 지키면서, 패킷 스위칭과 더 나은 모듈레이션을 추가한다. 대부분의 2G는 TDMA이기에 direct upgrades는 2.5G로 간주된다.
          * 1Xtreme : 하나의 채널만으로 3xMC의 속도 내게 - 제안만 됨
         == Reality Check ==
  • DataCommunicationSummaryProject/Chapter8 . . . . 3 matches
         = Voice Infrastructure =
         === The Home Location Register(HLR) ===
         === The Visitors' Location Register(VLR) ===
         === The Equipment Identity Register(EIR) ===
         = Data Infrastructure =
          * Serving GPRS Support Node (SGSN)은 data infrastructure 에서 MSC와 비슷한 것이다.
         == Optional GPRS Infrastructure ==
         == Wired Access Points ==
          * 거대한 BTS는 WAP(wired access points , 혼란 스럽게도..)라고 불린다.
         == The IP Address Shortage ==
          * 그래서 나온것이 헤더를 Robust Header Compression(ROHC)라고 불리우는 기준으로 압축하는 것이다. - 헤더를 여러번 보내는 대신에 3세대 폰은 헤더는 한번만 보내고 나서 짧은 메시지를 보낸다.
  • DataCommunicationSummaryProject/Chapter9 . . . . 3 matches
         == Short-Range Wireless Networks ==
          * cellular networks가 cell을 반경으로 하는데 비하여, Short-Range Wireless Networks는 아주 짧은 반경,Ultra Wide Banded 을 사용,고속이다.pbx처럼 pirvate networks이다.
          * 2000년대 부터 wireless LANs가 데이터 속도와 가격만에서많은 성장을 가져왔다.IEEE의802.11b의 지준을 많이 사용한다.물론 아직은 핸드폰이나 인터넷에 비할수는 없지만,성장 속도는 빠르다. 새로운 시스템은 유선에 도전을 줄 만큼 데이터전송량과 속도를 증가 시켰다.
          * License-Free Radio 통신서비스를 하도록 허락한 주파수대이다.(돈주고 판것이것지) 물론 미국과 유럽의 기준이 약간 틀리다.
         == Wireless LANs ==
         == Wireless LAN Standards ==
          * IEEE 802.11b보다는 Wi-Fi 나 무선 이터넷이 우리에게 잘 알려져 있다. 물론 IEEE 802.11b를 기준으로 한다. Wireless Fidelity(통신에서 충실도의 뜻으로 많이 쓰인다. 예를 들어 " a high ~ receiver 고성능 라디오(cf. HI-FI) ") 의 약자이다. WECA(the Wireless Ethernet Compatiility Alliance)의 트레이드 마크이기도 하다.
          * CCK(Complementary Code Keying)라고 불리는DSSS의 2.4GHZ를 사용한다. 물론 기존의 기계와 호환성을 기진다. MAC하는 방법은 CSMA/CA(여기서 A는 avoidance이다 유선과는 틀리다) half-duples이다.shared이다. 대역폭이 11Mbps이지만 오보헤드가 심하다. 여기에다가 쉐어드이니 장에가 심하면 1-2Mbps밖에 안된다.하지만 데이터 전송률은 쓸만하다. 이러한 낭비를 줄이려고 차세대로 갈수록 물리적인 데이터 율을 줄인다.
         === Wireless LAN(앞으로 돌아가서) ===
          * ProbeResponse Frame을 받은 모든 AP 응답
          * AP 선택 : AssociatedRequest Frame 전송
          * AP는 AssociationResponse Frame 응답
         === Firewall and VPN ===
          * wireless : ?
          * Infrared LANs : 볼거 없다. 그냥 적외선으로 랜 하는거다.
          * Frequency Hopping을 사용한다.
  • DebuggingSeminar_2005/AutoExp.dat . . . . 3 matches
         ; Copyright(c) 1997-2001 Microsoft Corporation. All Rights Reserved.
         ; windows are automatically expanded to show their most important
         ; predefined rules.
         ; For good examples, read the rules in this file.
         ; sign, and text with replaceable parts in angle brackets. The
         ; angle brackets (<>), and comma are taken literally. Square
         ; l,h long or short prefix for 00406042,hx 0x0c22
         ; references to a base class.
         ; If there is no rule for a class, the base classes are checked for
         ; There are some special entries allowed in the AutoExpand section:
         ; $BUILTIN is used to display more complex types that need to do more
         ; $ADDIN allows external DLLs to be added to display even more complex
         tagRECT =top=<top> bottom=<bottom> left=<left> right=<right>
         CRect =top=<top> bottom=<bottom> left=<left> right=<right>
         CWinThread =<,t> h=<m_hThread> proc=<m_pfnThreadProc>
         CThreadLocalObject =<,t>
         CStdioFile =FILE*=<m_pStream> name=<m_strFilename.m_pchData,s>
         _com_error=<m_hresult,hr>
         _bstr_t=<m_Data->m_wstr,su> (<m_Data->m_RefCount,u>)
         std::greater<*>=greaterthan
  • Direct3D . . . . 3 matches
         DirectX 9.0 에서는 ApplicationWizard 를 지원한다. 그 전까지는 뭔가 허술하게 보였는데. 9.0에서는 확실한 프레임워크의 모습을 보여준다.
         CMyD3DApplication->Render() : 실제 렌더링을 수행하는 부분
         CMyD3DApplication->RenderText() : 화면에 글씨를 렌더링하는 부분
         CMyD3DApplication->RestoreDeviceObject() : 렌더링 방법을 세팅하는 부분
  • EightQueenProblem2/이덕준소스 . . . . 3 matches
         #include <iostream.h>
         void PrintResult(int queens[]);
          return 0;
          PrintResult(queens);//return true;
          //return true;
          return false;
          return true;
          return false;
          return true;
          return false;
          return false;
          return true;
         void PrintResult(int queens[])
          cout<<"the result is ";
  • GRASP . . . . 3 matches
         == Creator ==
          Pluggable Software Component
         === Related Patterns ===
         == Indirection ==
         == Pure Fabrication ==
          Pure Fabrication 클래스를 식별하는 것은 중대한 일이 아니다. 이는 어떤 소프트웨어 클래스는 도메인을 표현하기 위한 것이고 어떤 소프트웨어 클래스는 단순히 객체 설계자가 편의를 위해 만든 것이라는 일반적인 점을 알리기 위한 교육적인 개념이다. 편의를 위한 클래스들은 대개 어떤 공통의 행위들을 함께 그룹짓기 위해 설계되며, 이는 표현적 분해보다는 행위적 분해에 의해 생성된다.
          * 표현적 분해(Representational Decomposition) : 도메인 상의 어떤 것에 연관되어 있거나 그것을 표현
         === Related Patterns ===
  • Gof/FactoryMethod . . . . 3 matches
         Virtual Constructor ( ["MoreEffectiveC++"] Item 25 참고 )
         Application의 Sub 클래스는 Application상에서 추상적인 CreateDocument 수행을 재정의 하고, Document sub클래스에게 접근할수 있게 한다. Aplication의 sub클래스는 한번 구현된다. 그런 다음 그것은 Application에 알맞은 Document에 대하여 그들에 클래스가 특별히 알 필요 없이 구현할수 있다. 우리는 CreateDocument를 호출한다. 왜냐하면 객체의 생성에 대하여 관여하기 위해서 이다.
         == Structure ==
          * ConcreteProduct (MyDocument)
          * Creator (Application)
          * Procunt 형의 객체를 반환하는 Factory Method를 선언한다. Creator는 또한 기본 ConcreteProduct객체를 반환하는 factory method에 관한 기본 구현도 정의되어 있다.
          * ConcreteCreator (MyApplication)
          * ConcreteProduct의 인스턴스를 반환하기 위한, factory method를 오버라이드(over ride) 한다.
         Creator는 factor method가 정의되어 있는 Creator의 sub클래스에게 의지한다 그래서 Creator는 CooncreteProduct에 적합한 인스턴스들을 반환한다.
         Factory method는 당신의 코드에서 만들어야한 Application이 요구하는 클래스에 대한 기능과 Framework가 묶여야할 필요성을 제거한다. 그 코드는 오직 Product의 인터페이스 만을 정의한다.; 그래서 어떠한 ConcreteProduct의 클래스라도 정의할수 있게 하여 준다.
         factory method의 잠재적인 단점이라고 한다면 클라이언트가 아마도 단지 특별한 ConcreteProduct객체를 만들기위해서 Creator클래스의 sub클래스를 가지고 있어야 한다는 것일꺼다. 클라이언트가 어떤 식으로든 Creator의 sub클래스를 만들때의, sub클래스를 만드는 것자체는 좋다. 하지만 클라이언트는 이런것에 신경쓸 필요없이 로직 구현에 신경을 써야 한다.
         A potential disadvantage of factory methods is that clients might have to subclass the Creator class just to create a particular ConcreteProduct object. Subclassing is fine when the client has to subclass the Creator class anyway, but otherwise the client now must deal with another point of evolution.
         Here are two additional consequences of the Factory Method pattern:
          Ducument에제에서 Document클래스는 factory method에 해당하는, 자료를 열람하기 위한 기본 파일 다이얼로그를 생성하는 CreateFileDialog이 호출을 정의할수 있다. 그리고 Document sub클래스는 이러한 factory method를 오버 라이딩해서 만들고자 하는 application에 특화된 파일 다이얼로그를 정의할수 있다. 이러한 경우에 factory method는 추상적이지 않다. 하지만 올바른 기본 구현을 제공한다.
          2. ''클래스 상속 관게에 수평적인(병렬적인) 연결 제공''(''Connects parallel class hierarchies.'') 여태까지 factory method는 오직 Creator에서만 불리는걸 생각해 왔다. 그렇지만 이번에는 그러한 경우를 따지는 것이 아니다.; 클라이언트는 수평적(병렬적)인 클래스간 상속 관계에서 factory method의 유용함을 찾을수 있다.
          병렬 클래스 상속은 클래스가 어떠한 문제의 책임에 관해서 다른 클래스로 분리하고, 책임을 위임하는 결과를 초례한다. 조정할수 있는 그림 도형(graphical figures)들에 관해서 생각해 보자.;그것은 마우스에 의하여 뻗을수 있고, 옮겨지고, 회정도 한다. 그러한 상호작용에 대한 구현은 언제나 쉬운것만은 아니다. 그것은 자주 늘어나는 해당 도형의 상태 정보의 보관과 업데이트를 요구한다. 그래서 이런 정보는 상호 작용하는, 객체에다가 보관 할수만은 없다. 게다가 서로다른 객체의 경우 서로다른 상태의 정보를 보관해야 할텐데 말이다. 예를들자면, text 모양이 바뀌면 그것의 공백을 변화시키지만, Line 모양을 늘릴때는 끝점의 이동으로 모양을 바꿀수 있다.
         Figure클래스는 CreateManipulator라는, 서로 작용하는 객체를 생성해 주는 factory method이다. Figure의 sub클래스는 이 메소드를 오버라이드(override)해서 그들에게 알맞는 Manipulator sub클래스의 인스턴스를 (만들어, )반환한다. Figure 클래스는 아마도 기본 Manipulator인스턴스를 (만들어,) 반한하기 위한 기본 CreateManipulator를 구현했을 것이다. 그리고 Figure의 sub클래스는 간단히 이러한 기본값들을 상속하였다. Figure클래스 들은 자신과 관계없는 Manipulator들에 대하여 신경 쓸필요가 없다. 그러므로 이들의 관계는 병렬적이 된다.
          1. 두가지의 커다란 변수. Factory Method 패턴에서 두가지의 중요한 변수는 '''첫번째''' Creator 클래스가 가상 클래스이고, 그것의 선언을 하지만 구현이 안될때의 경이 '''두번째'''로 Creator가 concrete 클래스이고, factor method를 위한 기본 구현을 제공해야 하는 경우. 기본 구현이 정의되어 있는 가상 클래스를 가지는건 가능하지만 이건 일반적이지 못하다.
          '''첫번째''' 경우는 코드가 구현된 sub클래스를 요구한다. 왜냐하면, 적당한 기본 구현 사항이 없기때문이다. 예상할수 없는 클래스에 관한 코드를 구현한다는 것은 딜레마이다. '''두번째'''경우에는 유연성을 위해서 concrete Creator가 factory method 먼저 사용해야 하는 경우이다. 다음과 같은 규칙을 이야기 힌다."서로 분리된 수행 방법으로, 객체를 생성하라, 그렇게 해서 sub클래스들은 그들이 생성될수 있는 방법을 오버라이드(override)할수 있다." 이 규칙은 sub클래스의 디자이너들이 필요하다면, 그들 고유의 객체에 관련한 기능으로 sub클래스 단에게 바꿀수 있을음 의미한다.
          2. ''Parameterized factory methods''(그대로 쓴다.) Factory Method패턴에서 또 다른 변수라면 다양한 종류의 product를 사용할때 이다. factory method는 생성된 객체의 종류를 확인하는 인자를 가지고 있다. 모든 객체에 대하여 factory method는 아마 Product 인터페이스를 공유할 것이다. Document예제에서, Application은 아마도 다양한 종류의 Document를 지원해야 한다. 당신은 CreateDocument에게 document생성시 종류를 판별하는 인자 하나를 넘긴다.
  • Hartals/차영권 . . . . 3 matches
         #include <iostream.h>
          int Save_Result[MAX_CASE];
          Save_Result[n++]=count;
          cout << Save_Result[i] << endl;
          return 0;
  • HelpOnActions . . . . 3 matches
         모니위키는 액션이라는 확장기능을 제공합니다. 액션은 현재 보고 있는 페이지 혹은 전체 위키에 대한 특별한 확장 기능을 말합니다. 매크로와는 다르게 위키 페이지에 직접 매크로를 삽입해야 하는 것이 아니라 그 페이지를 다른 방식으로 보는 방법을 제공합니다. 예를 들어 페이지를 편집하는 기능를 `edit` 액션이라고 하며, 북마크를 하는 기능은 `bookmark`액션을 통해 이루어지고, 전체 검색, 제목 검색, 역링크 검색 등등 여러가지 기능을 제공합니다. 이러한 액션은 플러그인 방식으로 다른 기능을 손쉽게 확장할 수 있게 하여 위키의 풍부한 기능을 가능하게 만들어주고, 일부 액션은 페이지의 내용과 상관 없는 기능을 제공하기도 합니다. (페이지 지우기 기능은 DeletePage 혹은 페이지 이름을 바꿔주는 RenamePage 기능)
          * `userform`: UserPreferences 페이지에서 사용되는 내부 액션
          * `revert`: 구 버전의 페이지로 되돌리기 위한 액션 (모니위키 1.1.3부터 지원)
          * `rename`: 페이지이름 바꾸기 액션
          * `bookmark`: RecentChanges 페이지에서 북마크 기능을 지원하는 액션. 북마크를 하게되면 그 시점이 보존되며, 그 시점에서 새로 갱신된 페이지를 보다 손쉽게 알 수 있게 해줍니다.
          * `rss_rc`: RecentChanges를 RSS로 보여주는 액션.
  • IntentionRevealingMessage . . . . 3 matches
         == Intention Revealing Message ==
          void highlight(Rectangle& r)
          reverse(r);
         어떻게 된건가? 의사소통이다. 한 줄의 메소드가 의사소통에 가장 중요하다.(?) 사용자의 입장에서는 그냥 highlight라는 메세지에 영역만 넣어서 보내면 되는 것이다. 사각형을 뒤집음으로써 highlight된다는 사실을 몰라도 되는 것이다. IntentionRevealingMessage는 컴퓨터를 위한다기보다는 사람을 위한 가장 극단적인 형태의 패턴이다. 의도와 구현을 분리하자는 것이다. 메세지의 이름을 그 메세지 내에서 어떻게 되는건가로 짓지 말고, 그 메세지가 무엇을 하는건가로 짓자.
          return size == 0;
          Number reciprocal()
          return Number(1/this.num);
          return this == *other;
  • LexAndYacc . . . . 3 matches
          * O'Reilly 사의 Lex & Yacc 라는 책입니다.
         === Word Recognizer with Lex ===
          * 문장을 입력해서 문장의 각 단어들을 명사 , 동사 , 등으로 나누어 주는 Simple Recognizer 입니다
  • Linux/배포판 . . . . 3 matches
         국내의 배포판은 대부분 레드햇의 패키지 방식인 RPM(Redhat Package Manager)를 채용한다. RPM의 경우 단일 패키지르 중심으로하는 경향이 강하고 의존성에 상당히 관대한 패키지 방식으로 알려져있다. ''(데비안유저인 관계로 잘모른다.)'' 알려진 바로는 느슨한 패키지 의존성때문에 처음에는 편하지만 나중에 엉켜있는 패키지를 관리하기가 좀 까다롭다는 의견도 많다. 레드햇 리눅스는 현재 공개방식으로 배포되지 않는다. 기업용 혹은 웍스테이션을 위한 돈주고 파는 버전만 존재한다. 대신에 레드햇사는 페도라라는 리눅스 배포판을 지원하고 있으며, 레드햇의 사이트를 통해서 배포가 이루어진다. 대부분의 패키지가 CD안에 통합되어 있으며, 대략 최신 패키지 들이 패키징되어있다. (050626 현재 페도라4가 얼마전에 발표되었다 4+1CD) 페도라 리눅스는 레드햇의 불안정판 정도라고 생각하면 되고, 실제로 최신의 패키지들로 묶어서 내놓고 잇다. 페도라에서 얻어진 피드백을 통해서 레드햇에 반영하고 이로부터 안정적인 리눅스 서버 OS를 발표한다. ''ps) 의존성? 리눅스의 각패키지는 각기 다른 프로젝트로 진행되어 만들어진 것들을 다시 사용하는 경우가 많다. 따라서 각기 독립적인 패키지 만으로는 프로그램이 실행이 안되어 경우가 있는제 이런 경우 의존성이 있다고 말한다.''
         [http://debianusers.org/DebianWiki/wiki.php/DebianRedhat RedhatVSDebain]
  • MFC/ObjectLinkingEmbedding . . . . 3 matches
         || AddRef() || 인터페이스를 사용하는 클라이언트의 개수에 대한 카운터를 증가시킨다. ||
         || Release() || 인터페이스를 사용하는 클라이언트의 개수에 대한 카운터를 감소시킨다. 카운터가 0이되면 더이상 사용되지 않으므로 메모리에서 해제될 수 있다. ||
         = Registry =
  • MedusaCppStudy/재동 . . . . 3 matches
         #include <iostream>
         const int DIRECTION_ROW[8] = {-1, -1, 0, 1, 1, 1, 0, -1};
         const int DIRECTION_COL[8] = {0, 1, 1, 1, 0, -1, -1, -1};
          board[i].resize(cols);
          cout << "You must correct roach position!" << endl;
          return 1;
          return 0;
          return false;
          return true;
          roach.curRow += DIRECTION_ROW[dir];
          roach.curCol += DIRECTION_COL[dir];
          roach.curRow -= DIRECTION_ROW[dir];
          roach.curCol -= DIRECTION_COL[dir];
         #include <iostream>
         bool compare(const sWord& x, const sWord &y);
         void showResult(const vector<sWord>& words);
         void reform(string& x);
          break;
          reform(x);
          sort(words.begin(), words.end(), compare);
  • MoinMoinFaq . . . . 3 matches
         very many pages, which describe various projects, architectures,
         ideas, etc. for people to comment on. Some pages just sit there and
         convey information. Other pages are an open invitation for discussion
         In general, a wiki is very much a free-form tool, whose
         a wiki can serve the same purpose as a discussion thread. You could
         Wikis are used internally by the guys who write [http://www.zope.org/ Zope]
         === What are the major features of a Wiki? ===
         Here are some important wiki features:
          * ability to view recent changes
         === How does this compare to other collaboration tools, like Notes? ===
         A Wiki can accomplish certain things very easily, but there are
         feature is some kind of access control, to allow only certain groups
         There are two main ways to devalue a wiki. One is through erasure
         and the other is through corruption. Dealing with erasure is not terribly
         difficult, because there is a change log (and back versions) of every page
         deletions or major content erasures are detected (which should be fairly
         quickly), pages can be restored quite easily to their previous good state.
         corruption is more difficult to deal with. The possibility exists that someone
         can enter incorrect information onto a page, or edit pages to intentionally
         change the information so it is incorrect (for example, people can change
  • MoniWiki/Release1.0 . . . . 3 matches
         Release1.0 카운트다운에 들어갑니다. Release1.0 예정 발표일은 2003/05/30 입니다.
         약속은 늦었지만, Release1.0이 6월 20일경에 내놓겠습니다. 아마도 rc8이나 rc9가 1.0이 되지 않을까 싶습니다.
  • Monocycle/조현태 . . . . 3 matches
         #include <iostream>
          g_cityMap.resize(mapWidth);
          for (register int i = 0; i < (int)g_cityMap.size(); ++i)
          g_cityMap[i].resize(mapHeight);
          return TRUE;
          return FALSE;
          for (register int i = 0; i < 4; ++i)
          return sumOfCanMove;
         inline bool isCanMovePoint(POINT suchPoint, int seeWhere)
          checkPoint.x = suchPoint.x + MOVE_PLUS_X[seeWhere];
          checkPoint.y = suchPoint.y + MOVE_PLUS_Y[seeWhere];
          return TRUE;
          return FALSE;
          int returnData = nowSuchData->timeCount;
          return returnData;
          return -1;
          break;
          for (register int i = 0; i < mapHeight; ++i)
          for (register int j = 0; j < mapWidth; ++j)
          int calculateResult = GetShortPathTime(startPoint, endPoint);
  • MoreMFC . . . . 3 matches
         int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
         RegisterClass (&wc);
         hwnd = CreateWindow (_T("MyWndClass"), "SDK Application",
         return msg.wParam;
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
          break;
          break;
          return DefWindowProc(hWnd, message, wParam, lParam);
          return 0;
          DECLARE_MESSAGE_MAP ()
          return TRUE;
          Create (NULL, _T ("The Hello Application"));
          CRect rect;
          GetClientRect (&rect);
          dc.DrawText (_T ("Hello, MFC"), -1, &rect,
         떡하니 source를 보면 어떻게 돌아가는 거야.. --; 라는 생각이 든다.. 나도 잘모른다. 그런데 가장 중요한것은 global영역에 myApp라는 변수가 선언되어 있다는 사실이다. myApp 라는 instance가 이 프로그램의 instance이다. --a (최초의 프로그램으로 인스턴스화..) 그리고, CWinApp를 상속한 CMyApp에 있는 유일한 함수 initInstance 에서 실제 window를 만들어준다.(InitInstance함수는 응용 프로그램이 처음 생길 때, 곡 window가 생성되기전, 응용 프로그램이 시작한 바로 다음에 호출된다) 이 부분에서 CMainWindow의 instance를 만들어 멤버 변수인 m_pMainWnd로 pointing한다. 이제 window는 생성 되었다. 그렇지만, 기억해야 할 것이 아직 window는 보이지 않는다는 사실이다. 그래서, CMainWindow의 pointer(m_pMainWindow)를 통해서 ShowWindow와 UpdateWindow를 호출해 준다. 그리고 TRUE를 return 함으로써 다음 작업으로 진행 할 수 있게 해준다.... 흘. 영서라 뭔소린지 하나도 모르겠네~ 캬캬.. ''' to be continue..'''[[BR]]
  • NoSmokMoinMoinVsMoinMoin . . . . 3 matches
         || 화일업로드 || 지원. 페이지별 개별 화일첨부. 화일첨부시 rename 가능 || 일종의 자료실. 하나의 공용 페이지로 화일공유|| 둘 다 위키와 함께 백업하기에 편리 ||
         || Rename Page || ? || 지원 || 하지만 조심히 이용해야 할 기능.||
         || 부가기능 || Hot Draw Plugin 지원, 간단한 벡터 그래픽 첨부 가능. 페이지 미리보기 기능, RecentChanges 에 변경사항에 대한 Comment 기능 지원. go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌.(1.1 이상) || go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌. InterWiki 등록을 위키내에서 수정가능. || . ||
         || 기타 Spec || [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/moin/dist/CHANGES?rev=1.111&content-type=text/vnd.viewcvs-markup CHANGES] 참조 || NoSmok:노스모크모인모인 참조 || . ||
          북마크 안되는거 CVS 버전이지? 안정버전에 있는 RecentChanges.py 가져다 교체하니까 잘 돌아가더군. --희상
  • ParserMarket . . . . 3 matches
         This is a marketplace for your parsers. Please state your name, your email, and the release your parser is developed for (if you used a CVS snapshot, also state the revision number).
         This way, the parser can directly be put on the page without any modification, and as easily copied from that page. See the examples below.
         ||'''Parser'''||'''Author'''||'''Email'''||'''Release'''||'''Revision'''||
         ||BizarStructuredText: ["parser/stx.py"]||Richard Jones||richard@bizarsoftware.com.au||0.8|| ||
         There are also some UtilityScripts.
         == Requests ==
         If you are not familiar with Python and/or the MoinMoin code base, but have a need or an idea for a parser, this is the place to ask for it. Someone might find it useful, too, and implement it.
  • PokerHands/문보창 . . . . 3 matches
         #include <iostream>
         enum {HighCard, OnePair, TwoPairs, ThreeCard, Straight, Flush, FullHouse, FourCard, StraightFlush};
         inline int comp(const void *i,const void *j) { return *(int *)i-*(int *)j; };
         int compare(Poker & b, Poker & w);
         void interpret(bool b, bool w, int & result);
         void rankCompare(Poker & b, Poker & w, int & result);
         void showResult(int & result);
         bool threeCard(Poker & po);
          break;
          break;
          int result = compare(black, white);
          showResult(result);
          return 0;
         int compare(Poker & b, Poker & w)
          int result = false;
          if (!result)
          interpret(straightFlush(b), straightFlush(w), result);
          if (!result)
          interpret(fourCard(b), fourCard(w), result);
          if (!result)
  • PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 3 matches
         == the Repository ==
         == what should we store? ==
         == Where Do Versions Come In? ==
         '''PreRelease2'''
         이 경우 PreRelease2를 불러들이게 되면 상기의 버전의 파일들이 불러들여지게 된다. 태그는 프로젝트의 진행에 있어서 중요한 일이 발생한 시점을 기록하는 것으로 사용되는 것도 가능하다.
          return "Wibble";
          return 42;
          return "WIBBLE";
          return 42;
          return "Wibble";
          return 99;
  • ProgrammingLanguageClass/2002 . . . . 3 matches
         === Report Specification ===
          * ["ProgrammingLanguageClass/Report2002_1"]
          * ["ProgrammingLanguageClass/Report2002_2"]
  • ProjectPrometheus/Iteration . . . . 3 matches
          * Release 1 : Iteration 1 ~ 3 (I1 ~ I3)까지. 책 검색과 Login , Recommendation System (이하 RS) 기능이 완료.
          * Release 2 : I4 ~ I6 (또는 I7). My Page Personalization (이하 MPP), RS 에 대한 UI, Admin 기능 완료. 요구한 Performance 를 만족시킨다. (부가기능 - 책 신청, 예약)
  • ProjectPrometheus/Iteration8 . . . . 3 matches
         == A Walk To Remember ==
         || Review 수정/삭제 || . || . ||
         || ZeroPageServer 에 Release ||
  • ProjectPrometheus/LibraryCgiAnalysis . . . . 3 matches
          "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
         def getSrchResult(headers,params):
          conn.request("POST", "/cgi-bin/mcu200", params, headers)
          response = conn.getresponse()
          print response.status, response.reason
          data = response.read()
          return data
         def getSrchResult2(params):
          return f.read()
         &pKeyWordC=%28+%28-TI-+WITH+%28extreme+programming+%29+.TXT.%29++%29 - 검색 관련 키워드
  • ProjectZephyrus/Server . . . . 3 matches
          .cvsignore : Eclipse에서 cvs에서 synch시에 무시할 파일
          ProjectZephyrusServer.jcp : JCreator용 project파일
          ProjectZephyrusServer.jcw : JCreator용 workspace 파일
         === Eclipse, JCreator 에서 FAQ ===
          * Perspective를 CVS Repositary Explorering에서 {{{~cpp CheckOut}}}을 한다음, 컴파일이 안된다면 해당 프로젝트의 JRE_LIB가 잘못 잡혀 있을 가능성이 크다. (Win98에서 JRE가 잘못 설치되어 있을때) 방법은 ["Eclipse"]에서 Tip중 설치 부분을 찾아 보라
          * JCreator
          * JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능
          * 모든 객체 정의 완성 상태. Rename과 코딩중에 필요한 부가적인 정보를 알아 내야 한다.
         <Bug Report>
         === Thread ===
  • PythonXmlRpc . . . . 3 matches
          * http://www.pythonware.com/products/xmlrpc/
         class MyRequestHandler(xmlrpcserver.RequestHandler):
          raise AttributeError, "No XML-RPC procedure %s" % method
          return server_method(params)
          return k[0]+1
          return xmlrpclib.dumps(params)
          server = SocketServer.TCPServer(('', 8000), MyRequestHandler)
          server.serve_forever ()
         === Thread ===
  • QualityAttributes . . . . 3 matches
          * Reliability
          * Resilience
          * Reusability
  • RandomWalk/황재선 . . . . 3 matches
         #include <iostream>
         void printResult();
          printResult();
          return 0;
          break;
          break;
          break;
          return true;
          return false;
         void printResult()
         #include <iostream>
          break;
          return n;
          break;
          return m;
          break;
          return posX;
          break;
          return posY;
          return room;
  • RelationalDatabaseManagementSystem . . . . 3 matches
         A relational database management system (RDBMS) is a database management system (DBMS) that is based on the relational model as introduced by Edgar F. Codd.
         = Relational Model =
         The fundamental assumption of the relational model is that all data are represented as mathematical relations, i.e., a subset of the Cartesian product of n sets. In the mathematical model, reasoning about such data is done in two-valued predicate logic (that is, without NULLs), meaning there are two possible evaluations for each proposition: either true or false. Data are operated upon by means of a relational calculus and algebra.
         The relational data model permits the designer to create a consistent logical model of information, to be refined through database normalization. The access plans and other implementation and operation details are handled by the DBMS engine, and should not be reflected in the logical model. This contrasts with common practice for SQL DBMSs in which performance tuning often requires changes to the logical model.
         The basic relational building block is the domain, or data type. A tuple is an ordered multiset of attributes, which are ordered pairs of domain and value. A relvar (relation variable) is a set of ordered pairs of domain and name, which serves as the header for a relation. A relation is a set of tuples. Although these relational concepts are mathematically defined, they map loosely to traditional database concepts. A table is an accepted visual representation of a relation; a tuple is similar to the concept of row.
         The basic principle of the relational model is the Information Principle: all information is represented by data values in relations. Thus, the relvars are not related to each other at design time: rather, designers use the same domain in several relvars, and if one attribute is dependent on another, this dependency is enforced through referential integrity.
         Upload:Relational_key.png
         에드가 코드는 IBM에서 일할 당시 하드 디스크 시스템의 개발을 하였다. 이 사람은 기존의 codasyl approach 의 navigational 모델에 상당히 불만을 많이 가지고 있었다. 왜냐하면 navigational 모델에서는 테이프 대신에 디스크에 데이터베이스가 저장되면서 급속하게 필요하게된 검색 기능에 대한 고려가 전혀되어있지 않았기 때문이다. 1970년에 들어서면서 이 사람은 데이터베이스 구축에 관한 많은 논문을 썻다. 그 논문은 결국에는 A Relational Model of Data for Large Shared Data Banks 라는 데이터 베이스 이론에 근복적인 접근을 바꾸는 논문으로 집대성되었다.
         = thread =
  • ReleasePlanning . . . . 3 matches
         A release planning meeting is used to create a release plan, which lays out the overall project. The release plan is then used to create iteration plans for each individual iteration.
         It is important for technical people to make the technical decisions and business people to make the business decisions. Release planning has a set of rules that allows everyone involved with the project to make their own decisions. The rules define a method to negotiate a schedule everyone can commit to.
         The essence of the release planning meeting is for the development team to estimate each user story in terms of ideal programming weeks. An ideal week is how long you imagine it would take to implement that story if you had absolutely nothing else to do.
         User stories are printed or written on cards. Together developers and customers move the cards around on a large table to create a set
         of stories to be implemented as the first (or next) release. A useable, testable system that makes good business sense delivered early is desired.You may plan by time or by scope. The project velocity is used to determine either how many stories can be implemented before a given date (time) or how long a set of stories will take to finish (scope). When planning by time multiply the number of iterations by the project velocity to determine how many user stories can be completed. When planning by scope divide the total weeks of estimated user stories by the project velocity to determine how many iterations till the release is ready.
          Individual iterations are planned in detail just before each iteration begins and not in advance. The release planning meeting was called the planning game and the rules can be found at the Portland Pattern Repository.
         When the final release plan is created and is displeasing to management it is tempting to just change the estimates for the user stories. You must not do this. The estimates are valid and will be required as-is during the iteration planning meetings. Underestimating now will cause problems later. Instead negotiate an acceptable release plan. Negotiate until the developers, customers, and managers can all agree to the release plan.
         The base philosophy of release planning is that a project may be quantified by four variables; scope, resources, time, and quality. Scope is how much is to be done. Resources are
         how many people are available. Time is when the project or release will be done. And quality is how good the software will be and how well tested it will be.
         Management can only choose 3 of the 4 project variables to dictate, development always gets the remaining variable. Note that lowering quality less than excellent has unforeseen impact on the other 3. In essence there are only 3 variables that you actually want to change. Also let the developers moderate the customers desire to have the project done immediately by hiring too many people at one time.
  • ResponsibilityDrivenDesign . . . . 3 matches
         Object 란 단순히 logic 과 data 묶음 이상이다. Object 는 service-provider 이며, information holder 이며, structurer 이며, coordinator 이며, controller 이며, 바깥 세상을 위한 interfacer 이다. 각각의 Object 들은 자신이 맡은 부분에 대해 알며, 역할을 해 내야 한다. 이러한 ResponsibilityDrivenDesign 은 디자인에 대한 유연한 접근을 가능하게 한다. 다른 디자인 방법의 경우 로직과 데이터를 각각 따로 촛점을 맞추게끔 하였다. 이러한 접근은 자칫 나무만 보고 숲을 보지 못하는 실수를 저지르게 한다. RDD는 디자인과 구현, 그리고 책임들에 대한 재디자인에 대한 실천적 조언을 제공한다.
          * object 에 대해서 기존의 'data + algorithms' 식 사고로부터 'roles + responsibilities' 로의 사고의 전환.
          * RDD merges communication paths between classes, thus reducing the coupling between classes.
          * Generates DesignPatterns. ChainofResponsibilityPattern, MediatorPattern, CommandPattern and TemplateMethodPattern are all generated by the method.
          * Seminar:ResponsibilityDrivenDesign
          * Wirfs-Brock's DesigningObjectOrientedSoftware (["중앙도서관"]에 있음)
  • ReverseAndAdd/허아영 . . . . 3 matches
         #include <iostream>
          return turn+1;
          break;
          return isPal;
         unsigned int ReverseAndAdd(unsigned int *num, unsigned int length)
          unsigned int i, reverseNum = 0, Num = 0;
          reverseNum += temp[i] * pow(10, length-i-1); // 모아서 더하기
          return (Num+reverseNum);
          unsigned int * store_numbers;
          store_numbers = new unsigned int[numLength(num)];
          store_numbers[i] = num / pow(10, (numLength(num)-i-1));
          store_numbers[i] = store_numbers[i] % 10;
          store_numbers[i] = num / pow(10, (length-i-1));
          store_numbers[i] = store_numbers[i] % 10;
          if(isPalindrome(store_numbers, length))
          break;
          addNum = ReverseAndAdd(store_numbers, length);
         // delete []store_numbers;
          return 0;
         [ReverseAndAdd]
  • RssMacro . . . . 3 matches
         [[RSS(http://chemie.skku.ac.kr/wiki/wiki.php/RecentChanges?action=rss_rc)]]
         [[RSS(http://chem.skku.ac.kr/~kle/moin/RecentChanges?action=rss_rc)]]
         [[RSS(http://chemie.skku.ac.kr/wiki/wiki.php/RecentChanges?action=rss_rc)]]
  • SchemeLanguage . . . . 3 matches
          * [http://www.swiss.ai.mit.edu/projects/scheme/documentation/scheme.html MIT Scheme Reference]
          * http://zeropage.org/pub/language/scheme/quickref.txt - Quick Reference로 프로그래밍을 할 때 참고할만한 자료
          * 위문서를 보기위해서는 [http://object.cau.ac.kr/selab/lecture/undergrad/ar500kor.exe AcrobatReader]가 필요하다.
  • SearchAndReplaceTool . . . . 3 matches
          * Actual Search & Replace (http://www.divlocsoft.com/)
          * HandyFile Find and Replace (http://www.silveragesoftware.com/hffr.html)
         Actual Search & Replace 를 쓰는중. 기존 사이트 이어받은거 웹 노가다일을 해야 할 경우 매우 편리. (예전에는 그때그때 python script 를 만들어썼는데, 그럴 필요가 없을듯) --[1002]
  • Self-describingSequence/황재선 . . . . 3 matches
          public int readNumber() {
          return new Scanner(System.in).nextInt();
          return 1;
          return 2;
          int numRepeat;
          numRepeat = describing[output];
          for(int i = 0; i < numRepeat; i++) {
          return output;
          int n = ds.readNumber();
          break;
  • SignatureSurvey . . . . 3 matches
         Seminar:SignatureSurvey
         HTML Template 부분을 Generating 하는 부분을 하던중, 디자이너가 툴로 만든 HTML 코드를 분석해볼때 SigntureSurvey 의 방법을 적용해보면 어떤 일이 일어날까 의문이 들었다. 그래서 간단하게 실험해보고, 어떠한 View 를 얻을 수 있을까 구경해보다.
          def repl_tagEnd(self, aText):
          result = "." * (len(aText)-1) + ">"+ str(len(aText)-1) +"\n"
          return result
          def repl_tagChar(self, aText):
          return "."
          def repl_normalString(self, aText):
          return aText
          def repl_tagStart(self, aText):
          return aText
          def repl_enter(self, aText):
          return "\n"
          def repl_whiteSpace(self, aText):
          return ""
          tagEnd = Rep1(AnyBut(">")) + Str(">")
          whiteSpace = Rep1(Str(" ")) | Rep1(Str("\t"))
          (tagStart, repl_tagStart),
          (tagEnd, repl_tagEnd),
          (enterCode, repl_enter),
  • SmallTalk/문법정리 . . . . 3 matches
         b := OrderedCollection new.
          * 모든 스몰토크 표현식이 다음과 같은 양식을 따른다.All Smalltalk expressions follow the form:
         3 squared. "Receiver object is small integer 3."
          "The message sent is #squared"
         'abc' asUppercase. "Receiver object is string 'abc'."
         200 factorial. "Receiver object is small integer 200."
          * 선택자는 단일 식별자이며, 인수는 없다.(the selector is a single Identifier, there are no arguments)
         'abcdefg' reverse "selector is #reverse"
          * 각 키워드에 인수가 있을 때, 선택자는 하나 이상의 키워드이다.(the selector is one or more keywords, when called each keyword is followed by an argument object) -> 세번째 예시 참고
          "arguments are 5 and 10"
         Point x: 4 y: 200. "receiver is the object Point"
          "arguments are 4 and 200"
          * Unary 메세지는 가장 높은 우선 순위를 가진다. messages have the highest precedence.
          * Binary 메세지는 그 다음의 우선 순위를 가진다. Binary message have the next precedence.
          * Keyword 메세지는 가장 낮은 우선 순위를 가진다.Keyword message have the lowest precedence.
          * 괄호 '()' 를 써서 우선 순위를 변경할수 있다. You can alter precedence by using parenthses.
  • SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 3 matches
         '''''How can two objects cooperate when one wishes to conceal its representation ? '''''
         하나의 객체가 그것의 표현(Representation)을 숨기기를 바랄 때 어떻게 두 객체들은 협력(Cooperate)할 수 있는가 ?
         Encoding is inevitable in programming. At some point you say, "Here is some information. How am I going to represent it?" This decision to encode information happens a hundred times a day.
         인코딩은 프로그래밍에 있어서 필수적이다. 몇몇 관점에서 당신은 말한다, "약간의 정보가 있다. 어떻게 그것을 표현할 수 있는가?" 정보를 인코딩하는 결정은 하루에도 아주 많이(a hundred times a day) 발생한다.
         Back in the days when data was separated from computation, and seldom the twain should meet, encoding decisions were critical. Any encoding decision you made was propagated to many different parts of the computation. If you got the encoding wrong, the cost of change was enormous. The longer it took to find the mistake, the more ridiculous the bill.
         과거로 돌아가서 데이타가 연산으로부터 불리되었을 때, 그리고 종종 그 둘이 만나야 했을 때, 인코딩 결정은 중대한 것이었다. 너의 어떠한 인코딩 결정은 연산의 많은 다른 부분들을 점차적으로 증가시켜나아갔다. 만약 잘못된 인코딩을 한다면, 변화의 비용은 막대하다. The longer it took to find the mistake, the more ridiculous the bill.
         Objects change all this. How you distribute responsibility among objects is the critical decision, encoding is a distant second. For the most part, in well factored programs, only a single object is interested in a piece of information. That object directly references the information and privately performs all the needed encoding and decoding.
         Sometimes, however, information in one object must influence the behavior of another. When the uses of the information are simple, or the possible choices based on the information limited, it is sufficient to send a message to the encoded object. Thus, the fact that boolean values are represented as instances of one of two classes, True and False, is hidden behind the message #ifTrue:ifFalse:.
         Sets interact with their elements like this. Regardless of how an object is represented, as long it can respond to #=and #hash, it can be put in a Set.
         When there are many different types of information to be encoded, and the behavior of clients changes based on the information, these simple strategies won't work. The problem is that you don't want each of a hundred clients to explicitly record in a case statement what all the types of information are.
         For example, consider a graphical Shape represented by a sequence of line, curve, stroke, and fill commands. Regardless of how the Shape is represented internally, it can provide a message #commandAt: anInteger that returns a Symbol representing the command and #argumentsAt: anInteger that returns an array of arguments. We could use these messages to write a PostScriptShapePrinter that would convert a Shape to PostScript:
         Every client that wanted to make decisions based on what commands where in a Shape would have to have the same case statement, violating the "once and only once" rule. We need a solution where the case statement is hidden inside of the encoded objects.
         The simplest example of this is Collection>>do:. By passing a one argument Block(or any other object that responds to #value:), you are assured that the code will work, no matter whether the Collection is encoded as a linear list, an array, a hash table, or a balanced tree.
         This is a simplified case of Dispatched Interpretation because there is only a single message coming back. For the most part, there will be several messages. For example, we can use this pattern with the Shape example. Rather than have a case statement for every command, we have a method in PostScriptShapePrinter for every command, For example:
         Rather than Shapes providing #commandAt: and #argumentsAt:, they provide #sendCommantAt: anInteger to: anObject, where #lineFrom:to: is one of the messages that could be sent back. Then the original display code could read:
         This could be further simplified by giving Shapes the responsibility to iterate over themselves:
         The name "dispatched interpretation" comes from the distribution of responsibility. The encoded object "dispatches" a message to the client. The client "interprets" the message. Thus, the Shape dispatches message like #lineFrom:to: and #curveFrom:mid:to:. It's up to the clients to interpret the messages, with the PostScriptShapePrinter creating PostScript and the ShapeDisplayer displaying on the screen.
         '''''You will have to design a Mediating Protocol of messgaes to be sent back. Computations where both objects have decoding to do need Double Dispatch.'''''
  • SnakeBite/창섭 . . . . 3 matches
         DeleteMe) Timer는 컴의 상태에 따라 속도가 바뀌므로 Thread를 배워서 해봄이...by 최봉환[[BR]]
         DeleteMe) CRgn과 CRect에 있는 PtInRegion과 PtInRect함수로 영역 검사를 해보는 편이 편할듯 by 최봉환[[BR]]
  • SoftwareEngineeringClass . . . . 3 matches
          * 교수: 이경환 교수님 ([http://object.cau.ac.kr/selab/lecture/undergrad/undergrad.htm 홈페이지])
          * ["SoftwareEngineeringClass/Exam2002_1"]
          * ["SoftwareEngineeringClass/Exam2002_2"]
          * ["SoftwareEngineeringClass/Exam2006_1"]
          * ''Software engineering'', Ian Sommerville : 최근 세계적으로 가장 많이 쓰이고 있는 SE 교과서. 탁월.
          * 본인은 거의 독학으로 SE 공부를 했다. 수업시간에 구조적 프로그래밍(structured programming)에 대해 설명을 들었을 때는 전혀 감흥이 없었고 졸음까지 왔다. 기억나는 내용도 없다. 하지만 스스로 공부를 하면서 엄청난 충격을 받았다. OOP는 구조적 프로그래밍의 패러다임을 완전히 벗어나지 못했다! 구조적 프로그래밍을 Goto 제거 정도로만 이해하는 것은 표피적 이해일 뿐이다! 구조적 프로그래밍 하나만 제대로 익혀도 내 생산성은 엄청나게 향상될 것이다! (참고로 정말 구조적 프로그래밍이 뭔지 알고 싶은 사람들은 다익스트라의 6,70년대 이후의 저작들을 읽어보길 권한다. 칸트 철학을 공부하는 사람이 칸트의 1차 저술을 읽지 않는다는 게 말이 되겠는가.) --김창준
         ["1002"]: 분야가 너무 넓다. 하루 PPT 자료 나아가는 양이 거의 60-70장이 된다. -_-; SWEBOK 에서의 각 Chapter 별로 관련 Reference들 자료만 몇십권이 나오는 것만 봐도. 아마 SoftwareRequirement, SoftwareDesign, SoftwareConstruction, SoftwareConfigurationManagement, SoftwareQualityManagement, SoftwareProcessAssessment 부분중 앞의 3개/뒤의 3개 식으로 수업이 분과되어야 하지 않을까 하는 생각도 해본다. (그게 4학년 객체모델링 수업이려나;) [[BR]]
         시간이 나면 ExtremeProgramming에 대해서도 이야기를 하신다는데, 어떤 이야기가 나올지 궁금하네요. [SPICE] 레벨4는 되어야 사용할 수 있다는 말엔 조금 당황스러웠어요. --[Leonardong]
          * 나의 생각에 SE 수업을 제대로 배우고 있다면 학기가 지나면서, 혹은 최소한 학기가 끝난 후에 내가 혹은 내 팀이 프로그래밍 과제(꼭 해당 수업 것만 말고)를 하는 "생산성"에 향상이 있어야 한다. 아니 적어도 그런 과제를 수행하는 과정을 이전과는 다른 각도에서 볼 수 있어야 한다. 이것이 Here And Now의 철학이다. 조그마한 학기 프로젝트 정도를 진행하는 데에 소프트웨어 공학은 필요없다고 생각할런지 모르겠으나, 작은 것도 제대로 못하면서 큰 것을 논한다는 것은 어불성설이다 -- 특히 프로젝트 규모가 커질수록 실패확률이 몇 배 씩 높아지는 통계를 염두에 둔다면.
          * 또한, 예컨대 지금 하도급 SI 업체에서 일하는 PM을 한 명 초대해서 그가 이 수업에 대해 생각하는 바를 경청하고, 또 반대로 그에게 조언을 해줄 수 있어야 한다. 만약 현업을 뛰는 사람이 이 수업에서 별 가치를 느끼지 못한다면 그것은 수업자체의 파산이다. 이것 역시 Here And Now의 철학이다. 우리가 배우는 것은 지저분한 진흙탕 세계에 대한 것이 아니고 깔끔한 대리석 세계에 대한 것이라고 생각할런지 모르겠으나, 지금 여기의 현실에 도움이 되지 않는다면 도무지 SE가 존재할 이유가 어디에 있겠는가.
         하지만 역할별, 작업별로 만드는 계획서와 보고서에 쏟는 시간이 너무 많다는 생각은 저 뿐만이 아닐 것입니다. 심사시에는 계획서에서 언급하지 않은 활동을 실행했다고 딴지를 걸 정도로, 계획서대로 실행된 내용을 변경없이 실행하는 것이 프로젝트의 반복가능성을 평가하는 기준인것 같습니다. 설계와 구현 사이에서 계획대로 실행 안되는 부분을 극단적으로 느꼈는데, 예를 들어 클래스 다이어그램과 시퀀스 다이어그램이 [Refactoring]과 같은 코드 재구성 작업을 할 때마다 바뀌어야 했습니다. 다이어그램이 코드로 매칭되지 않기 때문에 코드를 바꿈은 물론 다이어그램을 바꾸는 이중의 수고를 겪어야 했습니다. :( --[Leonardong]
  • StringOfCPlusPlus/세연 . . . . 3 matches
         #include <iostream>
         #include <fstream>
          void ReadWord();
         void SearchWord::ReadWord()
          ifstream file;
          if(!root) return NULL;
          if(!strcmp(word, root->data_word)) return root;
          if(strcmp(word, root->data_word) < 0) return Search(word, root->left_child);
          return Search(word, root->right_child);
         void SearchWord::Display(node * tree)
          cout << tree->data_word << "\n";
          word.ReadWord();
          return 0;
  • TCP/IP 네트워크 관리 / TCP/IP의 개요 . . . . 3 matches
          *1969 - ARPA(Advanced Research Projects Agency)에서는 패킷 교환 방식의 네트워크 연구 -> '''ARPANET'''
          *백본(back bone), 지방 네트워크(regional networks), 로컬 네트워크(local networks)
          *TCP/IP 프로토콜에 관한 정보의 대부분은 RFC(Requests For Comments)로 발표
          *ISO(International Standards Organization, 국제 표준기구)에 의해 개발된 구조적 모델 '''OSI'''(Open Systems Interconnect Reference Model)은 데이터 통신 프로토콜 구조와 기능 설명을 위해 자주 사용.
          *Presentation layer : 응용 프로그램에 데이터 표현을 표준화
  • TddRecursiveDescentParsing . . . . 3 matches
         RecursiveDescentParsing 을 TFP 로 시도를 해보려고 하는데.. Parser부분에 대한 test 의 결과를 얻기 위해서는 AST를 얻도록 해야 하고, AST를 조금씩 구축해나가는 방향으로 디자인유도중인데. 이 아이디어 생각하려는데 1시간을 소비했다. 흡;
         대강 다음과 같은 식으로 접근했고요. 테스트코드 2-3줄쓰고 파서 메인코드 작성하고 하는 식으로 접근했습니다. (["Refactoring"] 을 하다보면 FactoryMethodPattern 과 CompositePattern 이 적용될 수 있을 것 같은데, 아직은 일단.)
         parser = RealParser()
          parser.setStringStream("a = b+c")
          expression = statement.getExpression()
          self.assert_(expression != None)
          term = expression.getTerm()
          plus_operator = expression.getPlusOperator()
  • TellVsAsk . . . . 3 matches
         Alec Sharp, in the recent book Smalltalk by Example [SHARP], points up a very valuable lesson in few words:
         that result in you then changing the state of the object. The logic you are implementing is probably the called object's
         responsibility, not yours. For you to make decisions outside the object violates its encapsulation.
         Sure, you may say, that's obvious. I'd never write code like that. Still, it's very easy to get lulled into
         examining some referenced
         object and then calling different methods based on the results. But that may not be the best way to go about doing it. Tell the object
         what you want. Let it figure out how to do it. Think declaratively instead of procedurally!
         아마 당신은 이렇게 말할지도 모른다. "나는 그런 코드를 작성한 적이 없어!" 하지만, referenced object 의 값을 조사해서 그 결과값에 따라 각각 다른 메소드를 호출하는 식으로 적당히 구현하며 얼머무리는 경우는 흔하다.
         exam) 아마 Refactoring 책에도 나올것이지만.
         It is easier to stay out of this trap if you start by designing classes based on their responsibilities,
         you can then progress naturally to specifying commands that the class may execute, as opposed to queries
         (ResponsibilityDrivenDesign) 그러한 경우, 당신은 당신에게 객체의 상태를 알리도록 질의문을 작성하는 대신 (주로 getter 들에 해당되리라 생각), class 들이 실행할 수 있는 '''command''' 들을 자연스럽게 발전시켜 나갈 것이다.
         Reference - Smalltalk By Example 중 'Tell, Don't Ask' (http://www.iam.unibe.ch/~ducasse/WebPages/FreeBooks.html 에 공개되어있다.)
  • TestDrivenDevelopment . . . . 3 matches
         테스트를 작성할때엔 '이미 완성되어있는 잘 된 API' 를 상상하며 작성한다. 잘 만들어진 API는 같은 일을 하더라도 직접 호출해줘야 하는 함수의 갯수가 적고 이해하기 편하며 '무엇'을 해주는지 그 메소드가 말해준다. 적게 코드를 써도 많은 일을 해주는것이다. 그리고, 테스트로서 컴퓨터의 컴파일러에게 코드작성을 위해 해야 할 일들을 묻고, 인터페이스를 만들고. 그리고 구현하고, 다시 구현된 코드를 Refactoring 한다.
         int gNumFailures = 0;
          ++gNumFailures;
          ++gNumFailures;
         void printTestResult() {
          printf("%d tests run, %d tests failed\n", (int)gNumTests,(int)gNumFailures);
          printTestResult();
          return 0;
  • TheJavaMan/스네이크바이트 . . . . 3 matches
          public void PrintScreen()
          int select = System.in.read();
          while(System.in.read()!='\n')
          break;
          break;
          break;
          return true;
          return false;
          board.PrintScreen();
          board.PrintScreen();
          board.PrintScreen();
          String direction= "";
          snake=getToolkit().getImage(getClass().getResource("/images/Snake1.gif"));
          apple=getToolkit().getImage(getClass().getResource("/images/apple.gif"));
          public void keyPressed(KeyEvent e){
          direction = KeyEvent.getKeyText(e.getKeyCode());
          buff=createImage(getWidth(), getHeight());
          gb.clearRect(0,0, getWidth(), getHeight());
          return false;
          return false;
  • ToyProblems . . . . 3 matches
         ToyProblems를 풀면서 접하게 될 패러다임들(아마도): CSP, Generators, Coroutines, Various Forms of Recursion, Functional Programming, OOP, Constraint Programming, State Machine, Event Driven Programming, Metaclass Programming, Code Generation, Data Driven Programming, AOP, Generic Programming, Higher Order Programming, Lazy Evaluation, Declarative Programming, ...
          * 자신이 원하는 언어 (python recommended)
          - 창준 - 교육의 3단계 언급 Romance(시, Disorder)-Discipline(예, Order)-Creativity(악, Order+Disorder를 넘는 무언가) , 새로운 것을 배울때는 기존 사고를 벗어나 새로운 것만을 생각하는 배우는 자세가 필요하다. ( 예-최배달 유도를 배우는 과정에서 유도의 규칙만을 지키며 싸우는 모습), discipline에서 creativity로 넘어가는 것이 중요하다.
         인택 - 가르치는 것 역시 배우는 과정이다. Metaphore의 필요성
          * [SICP] http://mitpress.mit.edu/sicp
          * How to Read and Do Proofs
          * Proofs and Refutations (번역판 있음)
  • UML서적관련추천 . . . . 3 matches
         UML 을 만든 소위 Three-Amigo 라 불리는 3명이 저자인 책입니다. Grady Booch, Ivar Jacobson, James Rumbaugh. 1판 번역서가 도서관에 있던걸로 기억하는데, 앞부분만 읽어보셔도 정말 예술인 책입니다. 처음 읽었을때, '모델' 이라는 개념에 대해서 이렇게 멋지게 서술한 책이 또 있을까 생각이 들던 책이였습니다. 그리고, UML 을 공부할때 소위 '정석적'이라고 이야기하는 것들은 아마 이 유저가이드나 Reference Manual 에서 언급된 설명을 기준으로 말할 것이라 생각이 듭니다.
         The Unified Modeling Language Reference Manual (2/E)
         참고로, 저는 Reference Manual 은 안읽어봤고, 위의 두 권은 읽어봤습니다. 그리고 UML 3일 가이드 같은 가벼운 책들을 읽었습니다. (하지만, 기억력이 나빠서.. 종종 다시 읽으면서 리프레쉬 해야 합니다;; 아마 조교 치고 다이어그램 자주 틀릴 겁니다;;;)
  • UseSTL . . . . 3 matches
          * Text Book : Generic Programming and the STL , STL Tutorial and Reference Guide Second edition
          * STL Tutorial and Reference Guide Second edition 의 Tutorial부 예제 작성
         == Thread ==
          * STL 책중에는 STL Tutorial and Reference Guide Second edition 가 제일 좋지 않나요? 이펙티브 STL 은 아직 책꽂이에서 잠들고있는중이라..-.-a - 임인택
  • Vending Machine/dooly . . . . 3 matches
          suite.addTestSuite(RegistItemTest.class);
          return suite;
          private static final int GREEN_TEA_PRICE = 500;
          vm.add("녹차", GREEN_TEA_PRICE);
          assertEquals(1000 - GREEN_TEA_PRICE, vm.getMoney());
          assertEquals(1000 - GREEN_TEA_PRICE - COFFEE_PRICE, vm.getMoney());
          assertEquals(200 + 500 - GREEN_TEA_PRICE, vm.getMoney());
          assertEquals(200 + 500 - GREEN_TEA_PRICE, vm.getMoney());
          public void testRefund(){
          assertEquals(100, vm.refund());
         public class RegistItemTest extends TestCase {
          return itemMap;
          return ((Integer) itemMap.get(item)).intValue();
          return 0;
          return money;
          return "";
          return "";
          return item;
          return money < getPrice(item);
          return !itemMap.containsKey(item);
  • VendingMachine/재니 . . . . 3 matches
         #include <iostream>
          int remainders, coin;
          void resetCoins(){
          remainders = 0;
          void showRemainders(){
          cout << "REMAINDERS : " << remainders << endl;
          remainders += coin;
          cout << coin <<"원을 넣으셨습니다. n잔액은 " << remainders << "입니다.n";
          remainders -= used;
          cout << "MAIN MENU n 1. INSERT COIN n 2. BUY n 3. RETURN THE REMAINDERS n 4. EXIT n";
          int buy(int remainders){
          if (remainders >= detail[selection - 1].price && detail[selection - 1].quantity != 0){
          return detail[selection - 1].price;
          else if (detail[selection - 1].price > remainders)
          return 0;
          coin_counter.resetCoins();
          coin_counter.showRemainders();
          usedmoney = drink.buy(coin_counter.remainders);
          coin_counter.resetCoins();
          break;
  • VisualStudio . . . . 3 matches
         VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
         VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다.
         C++ 에서는 자바에서의 import 의 명령과 달리 해당 헤더화일에 대한 pre-processor 의 기능으로서 'include' 를 한다. 그러다 보니 해당 클래스나 함수 등에 redefinition 문제가 발생한다. 이를 방지하는 방법으로 하나는 #ifndef - #endif 등의 명령을 쓰는것이고 하나는 pragma once 이다.
         #ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다.
         (More to come)
         (more to come)
          * View(보기) » Solution Explorer(솔루션 탐색기)를 선택합니다
          * Tools(도구) » Options(옵션) » Projects(프로젝트) » VC++ Directories(VC++ 디렉토리)를 선택합니다.
          * Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Include Files(파일 포함)를 선택하고 include 파일이 위치한 디렉토리(예: C:\라이브러리폴더\include)를 입력합니다.
          * Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Library Files(라이브러리 파일)를 선택하고 라이브러리 파일이 위치한 디렉토리(예: C:\라이브러리폴더\lib)를 입력합니다.
          * Show directories for:(다음 디렉토리 표시:) 드롭 다운 메뉴에서 Executable Files(실행 파일)를 선택하고 실행 파일이 위치한 디렉토리(예: C:\라이브러리폴더\bin)를 입력합니다.
         Reference : [http://support.intel.com/support/kr/performancetools/libraries/mkl/win/sb/cs-017282.htm Intel 라이브러리 연결 요령]
  • VonNeumannAirport . . . . 3 matches
          * ["1002"] 의 개인적으로 생각되는 '미숙' 했다고 생각한 점을 든다면, 평소에 프로그래밍을 하는 리듬이 아니였다는 점. 이전 스타일이라면 일단 문제를 보고 문제를 나누면서 시나리오를 어느정도 만들어 놓은 뒤, 그걸 검증해나간다는 느낌으로 테스트코드를 작성했었는데, 이번의 경우 정말 Extreme 하게 작업한 것 같다. (중반에 CRC 라도 한번 하고 싶었는데, 형에게 물어보고 왠지 '아 내가 알던 방법이 틀린걸꺼야' 하며 그냥 Test 만 생각하게 되었다.) 작업하는 중간 뭔가 석연치 않은 느낌이 들었다면, 아마 대강 이런 느낌이였던 것 같다. 전반적 시각을 한번정도 중간에 정리를 할 필요가 있을건데, 그런 시간을 두지 못한것.
          * 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
          * ["Refactoring"] Bad Smell 을 제대로 맡지 못함 - 간과하기 쉽지만 중요한 것중 하나로 naming이 있다. 주석을 다는 중간에 느낀점이 있다면, naming 에 대해서 소홀히 했다란 느낌이 들었다. 그리고 주석을 달아가면서 이미 구식이 되어버린 예전의 테스트들 (로직이 많이 바뀌면서 테스트들이 많이 깨져나갔다) 를 보면 디미터 법칙이라던가 일관된 자료형의 사용 (InformationHiding) 의 문제가 있었음을 느낀다.
         Requirement 수정 예상궁리 (일단은 떠오르는대로. Testability 를 고려하지 않은 상태로)
  • WebGL . . . . 3 matches
         [http://www.khronos.org/registry/webgl/specs/latest/1.0/ Spec]
         uniform vec3 lightDirection;
          vec3 L = normalize(lightDirection); //lightDrection
         precision highp float;
         uniform vec3 lightDirection;
          vec3 L = normalize(lightDirection);
          var camMat = mat4.identity(mat4.create());
          var lightDirection = shader.getUniformLocation("lightDirection");
          gl.uniform3fv(lightDirection, [-1, -1, -1]);
          var matProject = mat4.identity(mat4.create());//2PI = 360d -> 1d = PI/180
          onReady(gl, cubeBuffer, shader);
         function onReady(gl, buffer, shader){
          var ajax = new XMLHttpRequest();
          ajax.onreadystatechange = function(){
          if(ajax.readyState === 4){
          //complete requset
          callback(null, ajax.responseText);
          return true;
          return false;
          return canvas.getContext("experimental-webgl");
  • WinampPluginProgramming/DSP . . . . 3 matches
         // Feel free to base any plugins on this "framework"...
         #include "resource.h"
         BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
          return TRUE;
         // auxilary pitch buffer (for resampling from)
         // Module header, includes version, description, and address of the module retriever function
          NULL, // hwndParent
          "Nullsoft Stereo Voice Removal v0.2",
          NULL, // hwndParent
          NULL, // hwndParent
          NULL, // hwndParent
          NULL, // hwndParent
         // this is the only exported symbol. returns our main header.
          return &hdr;
         // getmodule routine from the main header. Returns NULL if an invalid module was requested,
         // otherwise returns either mod1 or mod2 depending on 'which'.
          case 0: return &mod;
          case 1: return &mod2;
          case 2: return &mod3;
          case 3: return &mod4;
  • ZIM/ConceptualModel . . . . 3 matches
          * '''File Receiver''' : File을 받는 일 담당
         ["ZIM/CRCCard"] : Class Responsiblity Collaborate Cards 가 아닌 '''Concept''' R... 입니다.
         컨셉(Concept)의 이름 바꾸기나 추가, 삭제는 아직 진행중입니다. 컨셉 사이의 관계와 속성 잡아서 컨셉 다이어그램(ConceptualDiagram) 그리기는 생략하고 클래스 다이어그램으로 직행하기로 하죠. 그 전에 ["ZIM/UIPrototype"], ["ZIM/RealUseCase"]를 작성해볼까요? -- ["데기"]
  • ZeroPageServer/SubVersion . . . . 3 matches
          * Optional locking ("reserved checkouts")
          * '''FSFS repository back end is now the default'''
          * Faster access to old revisions
          || {{{~cpp svn+ssh://ID@zeropage.org/home/SVN/project}}} || http://zeropage.org/svn/project ||프로젝트 진행 Repository ||
          || {{{~cpp svn+ssh://ID@zeropage.org/home/SVN/study}}} || http://zeropage.org/svn/study || 스터디 진행 Repository ||
          {{{~cpp protocol-name://id@hostname/remote_repository_absolute_dir}}}
          subversion 은 http 로의 접근도 제공한다. 대신에 기본제공 프로토콜보다는 속도가 느린 단점이 있다. http 의 접근은 현재 익명계정에 대해서는 checkout, read 만 사용이 가능하며 checkin 계정을 받기 위해서는 관리자에게 다음의 정보를 메일로 보내주면 추가하는 것이 가능하다.
         Re-type new password:
          {{{~cpp explorer환경하에서 마우스 오른쪽 버튼을 클릭 "TortoiseSVN"->"Settings"
          http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
         = Thread =
  • ZeroPageServer/Wiki . . . . 3 matches
         Q : RecentChanges 가 급격히 느립니다.
         A : RecentChanges 는 editlog 를 분석해서 출력하는데, editlog는 과거 기록을 삭제하지 않습니다. 따라서 editlog가 수만 라인 이상이 되면 editlog 를 읽는 속도가 급격히 느려질수 있으므로, 뒤에서 1000줄 정도를 남기고 삭제하면 원래 속도로 돌아 옵니다.
         === Thread ===
          * Q : 로그인을 했는데도, RecentChanges 페이지에서 diff 아이콘 이외에 update, delete, new 등의 아이콘이 안생기는데, 노스모크 안정버전에서는 원래 그러한 것인가요? --[sun]
  • [Lovely]boy^_^/Diary/2-2-12 . . . . 3 matches
          * Algorithm Report(Until 26 화)
          * XML Report(Until 12/8)
          * Unix C Report도 끝났다. 도큐만 쓰면 된다.
  • [Lovely]boy^_^/Diary/2-2-9 . . . . 3 matches
         == In Korean ==
          * Extreme Bear 스타트!
          * Power Reading, Methapors we live by 제본판 입수.
          * Extreme Bear Start!
          * I add a missile skill to my arcanoid game, and now on refactoring.
          * 5:30 ZP Regular meeting.
          * I'll never advance arcanoid.--; It's bored. I'll end the refactoring instantly, and do documentaion.
          * My arcanoid running is not same any computer. Some computers are running this game very well, others are blinking screen, anothers are not able to move the bar.
          * I get Power Reading, and Methapors we live by BindingBook
          * I cought a cold, so I cough and sneeze a whole day, and all time gone. I rest.
          * I read the TheMythicalManMonth Chapter5,6. I feel chapter5's contents a bit.. I can't know precision contents.--; It's shit.. I read a chapter6 not much, because I'm so tired. I'll get up early tomorrow, and read chapter6.
  • [Lovely]boy^_^/EnglishGrammer/ReportedSpeech . . . . 3 matches
         = Reported Speech =
         == Unit44. Reported speech(1) (He said that...) ==
          A. You want to tell somebody else what Tom said. There are two ways of doing this :
          1. You can repeat Tom's words (direct speech)
          2. Or you can use reported speech
          B. When we use reported speech, the main verb of the sentence is usually past. The rest of the sentence is usually past, too :
          C. The simple past can usually stay the same in reported speech, or you can change it to the past perfect.
         == Unit45. Reported speech(2) ==
          A. It is not always necessary yo change the verb when you use reported speech. If you report something and it is still true, you do not need to change the verb.
          ex) direct : Tom said, "New York is more exciting than London."
          reported : Tom said that New York is more exciting than London. (New York is stlll more exciting. The situation hasn't changed.)
          Is is also correct to change the verb into the past.(--;)
          ex) Tom said that New York was more exciting than London.
          But you must use a past form when there is a difference between what was said and what is really true.(--; 결국은 과거 쓰란 얘기자나)
          "I didn't expect to see you, Jim. Kelly said you were sick." (not "Kelly said you are sick," because obviously he is not sick)
          Use tell when you say who you are talking to ( Tell Somebody(O) )
          ex) Kelly told me that you were sick. ( not Kelly said me )
          ex) Kelly said that you were sick.(not Kelly told that ...)
          We also use the infinitive(to do/ to stay, etc...) in reported speech, especially with tell and ask(for orders and requests)
          ex1) direct : "Stay in bed for a few days," the doctor said to me.
  • [Lovely]boy^_^/USACO/PrimePalinDromes . . . . 3 matches
         #include <iostream>
         #include <fstream>
         ifstream fin("pprime.in");
         ofstream fout("pprime.out");
         void OutputResult(const int& n, const int& m);
          OutputResult(min,max);
          return 0;
         void OutputResult(const int& min, const int& max)
          string ret;
          break;
          ret += (char)t + 48;
          return ret;
          return false;
          return false;
          return true;
          return false;
          return false;
          return true;
  • html5practice/roundRect . . . . 3 matches
          * roundRect function 는 [http://js-bits.blogspot.com/2010/07/canvas-rounded-corner-rectangles.html 이용] 하였음.
         function roundRect(ctx, x, y, width, height, radius, fill, stroke) {
          calcRt = ctx.measureText(text);
          roundRect(ctx, pos.x-2, pos.y-2, calcRt.width + 6, 15 + 6, 5, true, true);
  • html5practice/즐겨찾기목록만들기 . . . . 3 matches
         function doRemoveItem(itemName) {
          localStorage.removeItem(eTD.innerHTML);
         function doRemoveFavorite(eTD){
          localStorage.removeItem(eTD.innerHTML);
          pairs += "<tr><td onclick=doRemoveFavorite(this)>"+key+"</td>\n<td>"+value+"</td></tr>\n";
  • java/reflection . . . . 3 matches
          * ORM(Object-Relational-MApping)이 아닌 방식으로 DAO를 만들 때 사용되기도 한다.
         * @author rabierre
         * @author rabierre
         public class TestReflection {
          ClassLoader classLoader = TestReflection .class.getClassLoader();
          new URL("file:/Users/fharenheit/Projects/openflamingo/helloworld.jar")
          System.out.println(Thread.currentThread().getContextClassLoader().getClass().getName());
          Thread.currentThread().setContextClassLoader(urlClassLoader);
          System.out.println(Thread.currentThread().getContextClassLoader().getClass().getName());
          Method[] declaredMethods = helloWorld.getDeclaredMethods();
          for (int i = 0; i < declaredMethods.length; i++) {
          Method declaredMethod = declaredMethods[i];
          System.out.println(declaredMethod.getName());
  • neocoin/MilestoneOfReport . . . . 3 matches
         ["상민"] 이가 생각하는, Report를 작성하면서 생각해봐야 할것과, Report를 내면서 체크해 봐야 할 기준들의 제시
          * 결과(Result)
  • whiteblue/자료구조다항식구하기 . . . . 3 matches
         #include <iostream>
         poly_pointer pread();
          a = pread();
          b = pread();
          return 0;
         poly_pointer pread()
          int preExpon = MAX;
          poly_pointer result = new poly_node;
          poly_pointer rear;
          temp = result;
          delete result;
          rear->link = NULL;
          break;
          if (tempExpon >= 0 && tempExpon < preExpon)
          result->coef = tempCoef;
          result->expon = tempExpon;
          preExpon = tempExpon;
          rear = result;
          result->link = new poly_node;
          result = result->link;
  • whiteblue/파일읽어오기 . . . . 3 matches
         #include <iostream>
         #include <fstream>
          unsigned int getSchoolNumber() { return nSchoolNumber; }
          string getName() { return szName; }
          int getBookNumber() { return nBookNumber; }
          string getBookName() { return szBookName; }
          string getWriter() { return szWriter; }
          string getPublishingCompany() { return szPublishingCompany; }
          // Read the number of Book...
          ifstream f;
          // Read data from UserData file...
          ifstream fin;
          // Read data from BookData file...
          ifstream fin2;
          return;
          return;
          int getNextBookNumber() { nNextBookNumber++; return nNextBookNumber; }
  • zennith/ls . . . . 3 matches
          char argRedirectToDir[255] = "dir";
          myStrCat(argRedirectToDir, argv[i]);
          exit(system(argRedirectToDir));
  • 논문번역/2012년스터디/이민석 . . . . 3 matches
          * 「Experiments in Unconstrained Offline Handwritten Text Recognition」 번역
         == Experiments in Unconstrained Offline Handwritten Text Recognition(제약 없는 오프라인 필기 글자 인식에 관한 실험) ==
         원문 URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.6.6413&rep=rep1&type=pdf
         오프라인 필기 글자 인식을 위한 시스템을 소개한다. 이 시스템의 특징은 분할이 없다는 것으로 인식 모듈에서 한 줄을 통째로 처리한다. 전처리, 특징 추출(feature extraction), 통계적 모형화 방법을 서술하고 저자 독립, 다저자, 단일 저자식 필기 인식 작업에 관해 실험하였다. 특히 선형 판별 분석(Linear Discriminant Analysis), 이서체(allograph) 글자 모형, 통계적 언어 지식의 통합을 조사하였다.
         본 논문에서는 은닉 마르코프 모형에 기반한, 어휘(lexicon)-free 오프라인 필기 인식 시스템을 소개하고 완전한 영어 문장 데이터베이스에 관한 몇 가지 실험을 저자 독립식 그리고 대조를 위해 다저자, 단일 저자식으로 수행했다. 전처리와 특징 추출 방법을 소개하고 이에 더해 선형 판별 분석, 이서체 글자 모형의 사용, 통계적 언어 모형 같은 더욱 정교한 기법들을 조사한다. 그 뒤의 절에서는 오프라인 필기 인식에 대한 관련 작업들을 짧게 검토한다. 우리가 사용한 데이터베이스는 3절에서 소개한다. 그 다음 전처리, 특징 추출 방법, 통계적 모델링과 인식을 위한 기법을 설명한다. 평가 결과는 제안한 방법의 효율성을 입증하기 위해 7절에서 소개한다.
         글을 한 걸음 더 처리하기 위해 각각의 줄을 추출하여야 한다. 그러기 위해 이미지를 필기 라인의 핵심 영역(core region)들 사이를 분리한다. 핵심 영역, 즉 텍스트 라인의 위 베이스라인과 아래 베이스라인 사이의 영역은 threshold를 적용하여 찾는다. threshold는 줄들이 핵심 영역에 속하기 위해 필요한 전방foreground 픽셀들의 최소 개수를 나타낸다. 이 threshold는 이진화한 필기 영역의 수평 밀도 히스토그램을 이용하여 Otsu의 방법 [12]를 적용하면 자동으로 결정된다. 그 다음 수평 투영 히스토그램에서 각 줄의 검은 픽셀의 개수가 축적되고 이미지는 이 투영 히스토그램의 minima를 따라 핵심 영역별로 나눠진다.
         가끔 글씨체가 한 줄에서도 확 바뀌는 것에 동기를 얻어 우리는 각 줄의 수직 위치, 기울임, 경사를 국소적으로 교정한다. 따라서 각 행은 필기 조각segment들 사이의 공백을 탐색하여 분리된다. 믿을 만한 정규화 계수를 계산하기에는 너무 짧은 조각을 피하기 위해 threshold를 사용한다.
         수직 위치와 기울임은 [15]에 서술된 접근법과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 측정법을 적용하여 교정한 반면에, 경사각 계산은 가장자리edge 방향에 기반한다. 그러므로 이미지는 이진화되고 수평 흑-백과 백-흑 전환을 추출하는데 수직 stroke만이 경사 측정에 결정적이다. canny edge detector를 적용하여 edge orientation 자료를 얻고 각도 히스토그램에 누적한다. 히스토그램의 평균을 경사각으로 쓴다.
         필기의 크기를 정규화하기 위해 각 줄의 극값(local extrema) 개수를 세고 줄의 너비와의 비율을 얻는다. 비례(scaling) 계수는 이 비율에 선형인데 비율이 클 수록 글씨체는 더 좁아지기 때문이다.
         sliding window의 각 열에서 특징 7개를 추출한다. (1) 흑-백 변화 개수(windowed text image의 이진화 이후), (2) 베이스라인에 대한 강도 분포의 평균 값 위치, (3) 최상단 글자 픽셀에서 베이스라인까지의 거리, (4) 최하단 글자 픽셀에서 베이스라인까지의 거리, (5) 최상단과 최하단 텍스트 픽셀의 거리, (6) 최상단과 최하단 텍스트 픽셀 사이의 평균 강도, (7) 그 열의 평균 강도. 특징 (2)-(5)는 core size, 즉 하단 베이스라인과 상단 베이스라인(극대값을 통한 line fitting으로 계산)의 거리에 의해 정규화되어, 글씨 크기의 변동에 대해 더욱 굳건해진다. 그 후에 모든 특징은 윈도우의 네 열에 걸쳐 평균화된다.
         특징 벡터들을 decorrelate하고 종류 분별력을 향상하기 위해 우리는 훈련 단계와 인식 단계에서 LDA를 통합한다. (cf. [6]) 원래 특징 표현을 일차 변환하고 특징 공간의 차원을 점차 줄이며 최적화한다. 일차 변환 A를 구하기 위해 훈련 자료의 클래스내 분산(within class scatter) 행렬 Sw와 클래스간 분산(between class scatter) 행렬 Sb를 이용하여 고유 벡터 문제를 해결한다. 이 분산(scatter) 행렬들을 계산하여 각 특징 벡터의 HMM 상태와 함께 이름표를 붙여야 한다. 우리는 먼저 일반적인 훈련을 수행하고 훈련 자료들을 상태를 기준으로 정렬한다. 분산 행렬을 구했으면 LDA 변환은 다음 고유 벡터 문제를 풀어 계산한다.
         𝜇𝑖와 𝐴𝑇𝜓𝑖는 𝑆𝑤−1𝑆𝑏의 고유값과 고유벡터다. 차원 reduction(경감?)은 가장 큰 m개 고유값에 속하는 m개 고유 벡터만을 구하여 얻어진다. 모든 특징 벡터를 LDA 변환한 후에는 완전히 새로운 HMM 훈련이 수행된다.
         필기 글자 인식을 위한 HMM의 구성, 훈련, 해독은 ESMERALDA 개발 환경[5]이 제공하는 방법과 도구의 틀 안에서 수행된다. HMM의 일반적인 설정으로서 우리는 512개의 Gaussian mixtures with diagonal covariance matrice(더 큰 저자 독립 시스템에서는 2048개)를 포함하는 공유 코드북이 있는 semi-continuous 시스템을 사용한다. 52개 글자, 10개 숫자, 12개 구두점 기호와 괄호, 공백 하나를 위한 기본 시스템 모형은 표준 Baum-Welch 재측정을 사용하여 훈련된다. 그 다음 한 줄 전체를 인식하기 위해 글자 모형에 대한 루프로 구성된 conbined model이 사용된다. 가장 가능성 높은 글자 시퀀스가 표준 Viterbi beam- search를 이용하여 계산된다.
         우리의 필기 인식 시스템을 평가하기 위해 단일 저자식, 다저자식, 저자 독립식 인식 이렇게 세 가지 실험을 수행했다. 표 1에 이들 실험의 글자 오류율이 있다. 처음 두 열은 실험 종류, 3열은 언어 모형을 적용하지 않은 오류율, 4열은 바이그램 언어 모형을 글자 수준에서 적용한 결과다. 언어 모형은 IAM 데이터베이스의 [a..d] 범주의 모든 글을 사용하여 생성하였고 실험 내내 일정하다. 표 2에는 어휘-free 단어 인식과 어휘 기반 단어 인식이 나타나있다.
         단일 저자식 실험은 Senior 데이터베이스에서 훈련에 282줄, 검정에 141줄을 써서 수행했는데, 글자 수준에서 검정 집합의 바이그램 perplexity는 15.3이다. 베이스라인 시스템의 오류율 13.3%는 바이그램 언어 모형을 채택하여 12.1%로 감소했다. LDA 변환한 특징 공간의 차원이 12로 내려갔지만 오류율은 그다지 커지지 않았다. 단일 저자 시스템의 단어 오류율(표 2)은 어휘 없이 28.5%, 1.5k 어휘가 있으면 10.5%다. 이 결과들은 우리가 같은 데이터베이스를 이용하여 literature(문학 작품은 아닌 것 같다)에서 얻은 오류율과 비교되긴 하지만, 훈련 집합과 검정 집합의 크기가 달라 비교하긴 어렵다. [17]에서 오류율은 글자의 경우 28.3%, 어휘 없는 단어의 경우 84.1%, 1.3k 어휘가 있는 단어의 경우 16.5%다. [15]의 보고에서 단어 오류율은 어휘가 있는 경우 6.6%, 어휘 free인 경우 41.1%다. [9]에서 최고의 어휘 기반 단어 오류율은 15.0%다.
         이 연구는 프로젝트 Fi799/1에서 German Research Foundation(DFG)가 제안하였다.
  • 데블스캠프2004/세미나주제 . . . . 3 matches
          * 개발 방법론( ExtremeProgramming )
          * 자료구조 SeeAlso HowToStudyDataStructureAndAlgorithms, DataStructure StackAndQueue 뒤의 두 페이지들의 용어와 내용이 어울리지 않네요. 아, 일반 용어를 프로젝트로 시작한 페이지의 마지막 모습이군요. )
          * RevolutionOS 나, 좀 재미있을 것 같은 컴퓨터 역사 관련 영화 상영 & 이야기하기도 궁리. 혹은 이제 자막이 완성된 'Squeakers' :) --[1002]
          * RevolutionOS 별로 재미없습니다. 다 아는 내용이고, 당시의 장미빛 미래와 지금이 많이 달라진 상황이라, 슬픈 느낌마져 들었습니다. 시청하는데 의의가 있었죠. :) 제 생각은 ZeroPage 역사를 가지고 스냅샷으로 몇장 정도면 어떨까 합니다. 즉석 역할극도 재미있겠네요. 그런데 [1002] 시험은 언제 끝나요? --NeoCoin
          * 시험은 수요일날 완료. RevolutionOS는 '예' 로 든것이고. 실제로 04중에는 알 사람도 얼마 없지 않을까 해서. 적당히 컴퓨터쪽 역사의 과거와 미래에의 모습에 대해 보여줄만한 영화, 그리고 재미있는 녀석이면 환영. --[1002]
         얼마전(2달?) 동생이 KTF Future List 인지, Feature List 인지를 통과해서 활동을 시작했는데요. 처음에 3박 4일로 훈련(?)을 와서 자신이 굉장히 놀란 이야기를 해주었습니다. 이 것은 전국 수십개 대학에서 5명씩 모여서 조성된 캠프입니다. 이 집단의 개개인 모두가 적극적인 면이 너무 신기하다는 표현을 하더군요. 뭐 할사람 이야기 하면, 하려고 나오는 사람이 수십명인 집단...
         환타 FunCamp 라던지, TTL에서 주최했던 모임, 바카스 국토 대장정, KTF Future List...
          * [데블스캠프2004]에 전체에 대한 개인 ThreeFs - 시간이 안되면 개인이 제로 위키에 따로 적도록 한다.
          * [데블스캠프2004] 겪고난 자신의 Before, After 말하기 - 전에는 ~했는데, 지금은 ~하다
  • 데블스캠프2009/목요일/연습문제/MFC/김태욱 . . . . 3 matches
         =Describe 데블스캠프2009/목요일/연습문제/MFC/김태욱 here=
          DECLARE_MESSAGE_MAP()
         CZxczxcDlg::CZxczxcDlg(CWnd* pParent /*=NULL*/)
          : CDialog(CZxczxcDlg::IDD, pParent)
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          // TODO: Add extra initialization here
          return TRUE; // return TRUE unless you set the focus to a control
          // Center icon in client rectangle
          CRect rect;
          GetClientRect(&rect);
          int x = (rect.Width() - cxIcon + 1) / 2;
          int y = (rect.Height() - cyIcon + 1) / 2;
          return (HCURSOR) m_hIcon;
          // with the ENM_CHANGE flag ORed into the mask.
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
          // TODO: Add your control notification handler code here
  • 데블스캠프2009/목요일/연습문제/MFC/송지원 . . . . 3 matches
          CTestDlg(CWnd* pParent = NULL); // standard constructor
          double result;
          DECLARE_MESSAGE_MAP()
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          DECLARE_MESSAGE_MAP()
         CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
          : CDialog(CTestDlg::IDD, pParent)
          result = 0;
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          // TODO: Add extra initialization here
          return TRUE; // return TRUE unless you set the focus to a control
          // Center icon in client rectangle
          CRect rect;
          GetClientRect(&rect);
          int x = (rect.Width() - cxIcon + 1) / 2;
          int y = (rect.Height() - cyIcon + 1) / 2;
          result += m_STATUS;
          break;
          result -= m_STATUS;
          break;
  • 데블스캠프2011/네째날/이승한 . . . . 3 matches
         == 이승한/Android Reverse Engineering ==
          * [http://blog.softwaregeeks.org/wp-content/uploads/2011/04/Reverse-Engineering-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%95%99%EC%8A%B5.pdf Reverse Engineering, 안드로이드 학습 발표자료] - 진성주, JCO 발표 자료
          * android reversing tools - 제로페이지 홈페이지 자료실 게시물
          * [http://keedi.pe.kr/presentations/just_do_git/ 발표 자료]
          * [http://code.google.com/p/msysgit/downloads/list msysgit download page] - download {{{Git-1.7.4-preview20110204.exe}}}
          * github repository address - https://github.com/beonit/devils2011GitSeminar
  • 데블스캠프2012/셋째날/앵그리버드만들기 . . . . 3 matches
          * [http://clug.kr/~jereneal20/devils.php 링크]
          context.clearRect(0, 0, 600, 400);
          //context.fillRect(bird.x, bird.y, 50, 50);
          return true;
          this.currentBird = new Bird();
          this.currentBird.shoot(dx, dy);
          var currentTime = new Date();
          var oldTime = currentTime;
          currentTime = new Date();
          var deltaTime = currentTime - oldTime;
          this.drawScreen();
         Game.prototype.drawScreen = function()
          this.context.clearRect(0,0,600,400);
          this.context.drawImage(this.currentBird.img, this.currentBird.x-13, this.currentBird.y-13, 25, 25);
          this.currentBird.move(deltaTime);
          if(this.currentBird.cheekStop())
          this.currentBird = new Bird();
          return {x:e.clientX + pageXOffset - e.target.offsetLeft, y:e.clientY + pageYOffset - e.target.offsetTop};
  • 레밍즈프로젝트/그리기DC . . . . 3 matches
         #define BITMAP_OPT_HREVERSE 1
         #define BITMAP_OPT_VREVERSE 2
          CRect m_rt;
          int m_Vreverse;
          int m_Hreverse;
          resetBmpOpt();
          CmyDouBuffDC(CDC *pDC, CRect rt){
          m_pMemDC->CreateCompatibleDC(m_pDC);
          m_bmp.CreateCompatibleBitmap(m_pDC, m_rt.Width(), m_rt.Height());
          m_pMemDC->Rectangle(0, 0, m_rt.Width(), m_rt.Height());
          CDC* getpMemDC(){return m_pMemDC;}
          BitMapDC.CreateCompatibleDC(m_pMemDC);
          m_pMemDC->StretchBlt(x-m_bitmapInfo.bmWidth*m_Halign, y-m_bitmapInfo.bmHeight*m_Valign,
          (m_bitmapInfo.bmWidth)*m_Hreverse, (m_bitmapInfo.bmHeight)*m_Vreverse,
          break;
          break;
          case BITMAP_OPT_HREVERSE:
          m_Hreverse = -1;
          break;
          case BITMAP_OPT_VREVERSE:
  • 반복문자열/임인택 . . . . 3 matches
         module RepeatStr
          where
         repeatMessage msg n = putStr (message "" msg n)
         RepeatStr> repeatMessage "CAUCSE LOVE." 5
         === Result ===
  • 비행기게임/BasisSource . . . . 3 matches
          raise SystemExit,"sorry, extended image module required"
         SCREENRECT = Rect(0,0,1024,768)
          return surface.convert()
          return imgs
          REGULAR = 1
          FrameFrequence = 5
          PreviousMove = 0
          imagefrequence = 5
          self.image = self.images[self.REGULAR]
          self.rect = self.image.get_rect()
          self.rect.centerx = SCREENRECT.right
          self.rect.bottom = SCREENRECT.bottom - 100
          self.reloading = 0;
          def move(self, directionx,directiony, xy):
          self.rect.move_ip(directionx*self.speed,directiony*self.speed)
          self.rect.move_ip(directionx*self.speed,0)
          self.rect.move_ip(0,directiony*self.speed)
          self.rect = self.rect.clamp(SCREENRECT)
          def setImage(self, direction) :
          if self.count%self.imagefrequence == 0:
  • 상협/감상 . . . . 3 matches
         || ["PowerReading"] || - || - || 1 || ★★★★★ ||
         || [여섯색깔모자] || 에드워드 드 보노 || 1 ||4/24 ~ 5/1 || 이책은 PowerReading 처럼 활용정도에 따라서 가치가 엄청 달라질거 같다. ||
         || [PatternOrientedSoftwareArchitecture]|| || 1권(1) || - || 뭣도 모르고 보니깐 별로 감이 안온다 -_-; ||
         || [Refactoring] || 마틴파울러 || 1 || 굿 || 괜찮은 책이다. 아직 내가 이해와 적용을 제대로 못해서 아쉽다 ||
  • 여섯색깔모자 . . . . 3 matches
          * Review :
         Red - 빨강은 분노와 노여움, 감정을 암시합니다. 따라서 빨간 모자는 감정적인 관점을 가집니다.
         Green - 초록은 풀, 채소의 색으로 풍성하고 풍부한 성장을 나타냅니다. 따라서 녹색 모자는 창조성과 새로운 아이디어를 의미합니다.
         [http://docs.google.com/present/view?id=0AdizJ9JvxbR6ZGNrY25oMmpfM2Q5djhkOGNq&hl=ko&authkey=CKTc9ZoI 2010/7월의세미나/여섯색깔모자]
         = Thread =
         평소에 의견을 교환 하다가 보면 어느새 자신의 자존심을 지키려는 논쟁 으로 변하게 되는 경우가 많다. 이 논쟁이란게 시간은 시간대로 잡아 먹고, 각자에게 한가지 생각에만 편향되게 하고(자신이 주장하는 의견), 그 편향된 생각을 뒷받침 하고자 하는 생각들만 하게 만드는 아주 좋지 못한 결과에 이르게 되는 경우가 많다. 시간은 시간대로 엄청 잡아 먹고... 이에 대해서 여섯 색깔 모자의 방법은 굉장히 괜찮을거 같다. 나중에 함 써먹어 봐야 겠다. 인상 깊은 부분은 회의를 통해서 지도를 만들어 나간후 나중에 선택한다는 내용이다. 보통 회의가 흐르기 쉬운 방향은 각자 주장을 하고 그에 뒷받침 되는것을 말하는 식인데, 이것보다 회의를 통해서 같이 머리를 맞대서 지도를 만든후 나중에 그 지도를 보고 같이 올바른 길로 가는 이책의 방식이 여러사람의 지혜를 모을수 있는 더 좋은 방법이라고 생각한다. 이 책도 PowerReading 처럼 잘 활용 해보느냐 해보지 않느냐에 따라서 엄청난 가치를 자신에게 줄 수 도 있고, 아무런 가치도 주지 않을 수 있다고 생각한다. - [상협]
  • 웹에요청할때Agent바꾸는방법 . . . . 3 matches
         import re
         import thread
         from threading import *
         import re
          ClientCookie.HTTPRefreshProcessor,\
          ClientCookie.HTTPRefererProcessor)
          req = urllib2.Request(theUrl)
          req.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')
          f = self.urlOpener.open(req)
          data = f.read()
          return data
          f = file("result.txt","w")
  • 위키설명회 . . . . 3 matches
          * RecentChanges
          * 로그인과 페이지 만들기를 하면서 UserPreferences가 이상해지고, [페이지이름]의 규칙을 어긴 페이지가 많이 만들어졌습니다.--[Leonardong]
          * Rename, [문서구조조정]을 통해서 [Refactoring]을 경험하고, 이것이 프로그래밍의 영역에서 어떠한 관점을 가지고 있는지 이야기 해 본다.
  • 이승한/PHP . . . . 3 matches
         $query = "select name, eng, math from score";//쿼리문을 스트링을 저장한다.
         $result = mysql_query($query, $dbconn); //<결과값저장변수> = mysql_query(<쿼리문저장된 스트링>, <DB접속정보>); //결과값은 2중배열의 형식으로 저장되는 듯.
         $totalRecord = mysql_num_rows($result); //<변수> = mysql_num_rows(<결과값저장변수>); //되돌아온 리코드의 수를 변수에 저장
         if( $totalRecord == 0 ){
          for($i =0; $i< $totalRecord; $i++){
          $name = mysql_result($result, $i, 0);
          $eng = mysql_result($result, $i, 1);
          $math = mysql_result($result, $i, 2);
          * REMOTE_ADDR: 접속한 컴의 IP주소
          * str_replace("찾을문자열", "바꿀문자열", $변수) // replace
          * break, continue
          function 함수명(전달인자){ 함수내용; return 변수;} // Function 도 상관이 없었다. return은 없어도 돼며 type이 존재하지 않으므로 함수에 리턴타입은 존재하지 않는다.
  • 이승한/mysql . . . . 3 matches
          두부 만들기 : create database 두부이름;
          두부파일에 테이블 생성하기 : create table 테이블명(컬럼명 type(크기), eng integer, date date);
          레코드 삭제 : delete from <table> where <조건식>;
          테이블 스키마만 남기고 레코드 모두 삭제 : delete from score;
          테이블의 레코드 보기 : select * from score; // *자리에 조건 서식이 들어간다.
          레코드 수정 : update <tableName> set <colum Name> = <update val> where <조건식>
         $query = "select name, eng, math from score";
         $result = mysql_query($query, $dbconn);
         $totalRecord = mysql_num_rows($result);
         for($i =0; $i< $totalRecord; $i++){
          $name = mysql_result($result, $i, 0);
         if( $totalRecord == 0 ){
          $query = "insert into score (name, eng, math) values ('$name', '$eng', '$math')";
          $result = mysql_query($query, $dbconn);
         = Thread =
  • 임인책/북마크 . . . . 3 matches
          * [http://feature.media.daum.net/economic/article0146.shtm 일 줄고 여가시간 늘었는데 성과급까지...]
          * http://sangam.sourceforge.net/ -> Xper:RemotePairProgramming 을 [Eclipse]에서 해주게 하는 플러그인!! 한번 경험해 봐야겠다!!
          * [http://codeguru.earthweb.com/system/apihook.html API Hooking Revealed]
          * http://blog.naver.com/rivside.do?Redirect=Log&logNo=60006821813
          * [http://www.mozilla.or.kr/zine/?no=291 FireFox 트랙백]
          * Seminar:SoftwarePioneers
  • 임인택/내손을거친책들 . . . . 3 matches
          * The Haskell School of Expression
          * ObjectOrientedReengineeringPatterns
          * ReadingWithoutNonsense
          * Firefox and thunderbird garage
          * Firefox hacks : tips & tools for next-generation web browsing
          * RefactoringWorkbook
  • 정모/2002.5.30 . . . . 3 matches
          * PairProgramming 에 대한 오해 - 과연 그 영향력이 '대단'하여 PairProgramming을 하느냐 안하느냐가 회의의 관건이 되는건지? 아까 회의중에서도 언급이 되었지만, 오늘 회의 참석자중에서 실제로 PairProgramming 을 얼마만큼 해봤는지, PairProgramming 을 하면서 서로간의 무언의 압력을 느껴봤는지 (그러면서 문제 자체에 대해 서로 집중하는 모습 등), 다른 사람들이 프로그래밍을 진행하면서 어떠한 과정을 거치는지 보신적이 있는지 궁금해지네요. (프로그래밍을 하기 전에 Class Diagram 을 그린다던지, Sequence Diagram 을 그린다던지, 언제 API를 뒤져보는지, 어떤 사이트를 돌아다니며 자료를 수집하는지, 포스트잎으로 모니터 옆에 할일을 적어 붙여놓는다던지, 인덱스카드에 Todo List를 적는지, 에디트 플러스에 할일을 적는지, 소스 자체에 주석으로 할 일을 적는지, 주석으로 프로그램을 Divide & Conquer 하는지, 아니면 메소드 이름 그 자체로 주석을 대신할만큼 명확하게 적는지, cookbook style 의 문서를 찾는지, 집에서 미리 Framework 를 익혀놓고 Reference만 참조하는지, Reference는 어떤 자료를 쓰는지, 에디터는 주로 마우스로 메뉴를 클릭하며 쓰는지, 단축키를 얼마만큼 효율적으로 이용하는지, CVS를 쓸때 Wincvs를 쓰는지, 도스 커맨드에서 CVS를 쓸때 배치화일을 어떤식으로 작성해서 쓰는지, Eclipse 의 CVS 기능을 얼마만큼 제대로 이용하는지, Tool들에 대한 정보는 어디서 얻는지, 언제 해당 툴에 대한 불편함을 '느끼는지', 문제를 풀때 Divide & Conquer 스타일로 접근하는지, Bottom Up 스타일로 접근하는지, StepwiseRefinement 스타일를 이용하는지, 프로그래밍을 할때 Test 를 먼저 작성하는지, 디버깅 모드를 어떻게 이용하는지, Socket Test 를 할때 Mock Client 로서 어떤 것을 이용하는지, 플밍할때 Temp 변수나 Middle Man들을 먼저 만들고 코드를 전개하는지, 자신이 만들려는 코드를 먼저 작성하고 필요한 변수들을 하나하나 정의해나가는지 등등.)
  • 정모/2011.3.7 . . . . 3 matches
         = Weekly Retrospective =
          * [http://www.pnakorea.org/ 대안언어축제] 공유
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 루비에 대해 알게 되었습니다. 매우 흥미로웠지만, 별로 실용적으로 쓸 일은 없을 것이라는 생각이 들었습니다. 좋아하던 영화들을 다른 관점에서 보고 나니 "아 그럴 수도 있군! 이거 재미있는데?"라는 생각이 들었습니다. 갑자기 새싹스터디 커리큘럼 작성에 부하가 걸리기 시작했습니다. 새로운 thread를 열어서 job을 분담하지 않는다면 timeout이 날 것 같아 걱정 중입니다. 다음 페차쿠차로 Objective-C에 대해 발표 해보아야겠습니다. - [황현]
          * 루비로 만들어진 프로그램 많아요!! 대표적인 Ruby on rails랑 redmine도 있고.. 어디서는 요즘 GUI 대세는 루비라고도 하던데ㅎㅎ 루비가 별로 쓸일이 없는건 제가 루비를 잘 몰라서였습니다 하하ㅠㅠㅠ 덧)Objective-c를 아예 날잡고 세미나 하는것도 좋을거같아요 - [서지혜]
          * Redmine이 Ruby로 만들어져있다는건 첨 들었네요. 오오 새로운 지식~ 그런데 'Ruby 曰: "GUI 대세 나임 ㅋ"' 라고 쓰신 이유가 궁금해서 찾아보니 이런 동영상이 있네요. [http://www.youtube.com/watch?v=PoZ9bPQ13Dk Ruby GUI programming with Shoes]. 코드 보니까 직관적이고 좋네요 ㅋㅋㅋㅋ - [박성현]
          * 이것은 여담이지만 Ruby는 붉은 광물(Redmine)이랍니다. - [변형진]
  • 정모/2011.5.2 . . . . 3 matches
         == 2011 Google Campus Recruit 공유 ==
          * 김수경 학우의 Google Campus Recruit 공유시간
          * 이번 정모는 보통 하던 정모에 비해 빠르게 진행이 되었던 것 같네요. Google Campus Recruit를 들으면서 예전에 Google 캠 톡톡이었나 거기 신청했는데 안됬던 씁쓸했던 기억이 나긴 했지만 나중에 어떤 이야기가 있었는지 들어서 좋은 정보였다는 기억이 났습니다. 이번 내용도 그 때 들었던 이야기랑은 크게 다르지 않았던 것 같았던 것 같습니다. 그리고 우리 학교에는 안오네 이러고 관심을 끄고 있었던 생각도 들고 -_-; 이번 OMS를 들으면서 난 좋아는 하는데 잘 하지는 못하는 분류에 속해 있구나 라는 생각이 들면서 분발해야 겠다고 느꼈습니다. 학교 수업에 질질 끌려 다니는 제 모습이 오버되면서 한편으로는 예전에 친구가 링크해놔서 봤었던 글(대학 수업이 무슨 수능을 준비하는 고등학생의 수업과 다른게 없는 것 같다라는)도 생각났습니다. (쩝.. 암울해지네 -ㅅ-;) - [권순의]
  • 진격의안드로이드&Java . . . . 3 matches
          * [http://www.slideshare.net/novathinker/1-java-key Java-Chapter 1]
          * [http://www.slideshare.net/novathinker/2-runtime-data-areas Java-Chapter 2]
          * [http://www.kandroid.org/board/data/board/conference/file_in_body/1/8th_kandroid_application_framework.pdf Android]
         // Result of Decompile
          4: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
          9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          12: return
          1: istore_1
          3: istore_2
          7: istore_3
          8: return
         // Result of Decompile
          4: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;
          9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          12: return
          1: istore_1
          3: istore_2
          7: istore_3
          11: astore_1
          12: return
  • 채팅원리 . . . . 3 matches
         서버쪽에서는 총 4개의 Thread가 사용되었다. Thread는 메모리를 공유하면서도 독립적으로 실행될 수 있는 프로세스 단위라 할 수 있겠다. 4개의 Thread는 다음과 같다.
         ReceiveEvent : 클라이언트의 이벤트를 받는 부분이다. 이 이벤트가 StatusDisplay 클래스에 적용된다. 각각의 이벤트는 다음과 같다.
         클라이언트쪽에는 4개의 Thread가 있다. JFrame을 사용한 클래스가 2개 있는데, 하나는 Login때 ID사용 허가를 확인한는 프레임이고, 다른 하나는 채팅의 기본 프레임이다. 4개의 Thread는 다음과 같다.
         ReceiveMessage : 서버로부터 전달되는 메시지를 받아서 ChatMain 클래스의 메시지 출력 화면에 보여주는 역할을 한다.
         서버가 시작하면 ReceiveEvent 클래스에서 클라이언트로부터 전달되는 Event를 기다리는 동시에 StatusDisplay 쓰레드와 다른 쓰레드들을 시작한다.
  • 토이/숫자뒤집기/김정현 . . . . 3 matches
         public int reverseNo1(int num) {
          int reversed= 0;
          reversed *= scale;
          reversed = reversed + input%scale;
          return reversed;
         public int reverseNo2(int num) {
          char[] reversedChar= new char[input.length()];
          reversedChar[input.length-i-1]= input.charAt(i);
          return Integer.parseInt(new String(reversedChar));
         public int reverseNo3(int num) {
          return Integer.parseInt(stringNum);
          public int reverseNo4(int num) {
          return Integer.parseInt(new String(numChars));
          return inputChar;
          public int compareTo(CharBox o) {
          return -1;
          return 1;
          public int reverseNo5(int num) {
          return reverseByRecursion(num, 0);
          private int reverseByRecursion(int input, int made) {
  • 현종이 . . . . 3 matches
          int m_nNumber, m_nKorean, m_nEnglish, m_nMath;
          SungJuk(const char *name,int nNumber, int nKorean, int nEnglish, int nMath);
          void PrintResult(); //결과를 출력합니다.
          void TopKorean_Print(); //국어점수 수석을 출력합니다.
          const SungJuk & Top_Korean(const SungJuk & s) const;
          void Input(int nNumber, char szName[], int nKorean, int nEnglish, int nMath);
         #include<iostream>
         #include<iostream> //strcpy()
          m_nKorean = 0;
          return m_nTotal;
         void SungJuk::PrintResult()
          cout<< " " << m_nNumber << "\t" << m_szName<< "\t" << m_nKorean << "\t"
         void SungJuk::TopKorean_Print()
          << m_nKorean << endl;
          return s;
          return *this;
         const SungJuk & SungJuk::Top_Korean(const SungJuk &s) const
          if (s.m_nKorean > m_nKorean)
          return s;
          return *this;
  • 2dInDirect3d/Chapter3 . . . . 2 matches
          * Direct3D의 두가지 목적을 이해한다.
          == Direct3D의 목적 ==
          만약 D3D를 쓰는 사람에게 "당신은 왜 D3D를 씁니까?" 라고 물으면, 일반적으로 이런 대답이 나온다. Z-Buffer라던지, 모델, 메시, 버텍스 셰이더와 픽셸세이더, 텍스쳐, 그리고 알파 에 대한 이야기를 한다. 이것은 많은 일을 하는 것처럼 보인다. 몇몇을 제외하면 이런 것들은 다음의 커다란 두 목적의 부가적인 것이다. 그 두가지란 Geometry Transformation과 Polygon Rendering이다. 간단히 말해서 D3D의 교묘한 점 처리와 삼각형 그리기라는 것이다. 물론 저것만으로 모두 설명할 수는 없지만, 저 간단한 것을 마음속에 품는다면 혼란스러운 일은 줄어들 것이다.
         RHW : Reciprocal of the homogenous W coordinate
         Texture coordinates
          SeeAlso : [http://member.hitel.net/~kaswan/feature/3dengine/rhw.htm]
         ["2dInDirect3d"]
  • 3N+1Problem/강희경 . . . . 2 matches
         def TreeNPlusOne(aNumber):
          return
          TreeNPlusOne(aNumber)
         def TreeNPlusOne(aNumber, aMin, aMax, aBinaryMap):
          return count
          while IsCorrectInput(min, max) == False:
          return min, max
          return binaryMap
          cycleLength = TreeNPlusOne(i, aMin, aMax, aBinaryMap)
          return maxCycleLength
         def OutputResult(aMin, aMax, aMaxCycleLength):
          return True
          return False
         def PreInspection(aMin, aMax, aBinaryMap):
         def IsCorrectInput(aMin, aMax):
          return True
          return False
          PreInspection(min, max, binaryMap)
          OutputResult(min, max, FindMaxCycleLength(min, max, binaryMap))
  • ACM_ICPC/2012년스터디 . . . . 2 matches
          * Where's Waldorf - [http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=31&page=show_problem&problem=951]
          * [Where's_Waldorf/곽병학_미완..]
          * Expressions
          * Bigger Square Please
          * Binary Indexed Tree
          * [IndexedTree/권영기]
          * Expressions - 풀이를 보고 문제를 풀어오기
          * Bigger Square Please - 좀 더 생각해서 짜보기
          * Binary Indexed Tree
          * Expressions
          * Bigger Square Please
         === required data structure ===
         (=> 여기서 이진검색트리의 최악의 경우 시간복잡도를 줄이기 위해서 AVL Tree가 구현되어졌는데, 레드블랙트리는 AVL의 일종입니다. 정올 할 때 꼭 배울 필요성은 없습니다..)
          - (Binary) Indexed Tree (이건 알아둬야 합니다. 실제로 Binary Indexed Tree는 Binomial에 가깝지만..)
          - Interval Tree (이것 또한 Indexed Tree가 이녀석의 역할을 대신할정도로 만능이지만.)
          - 경로 압축 (휴리스틱의 일종 , Path Compression)
          * ACM-ICPC Asia-Daejeon Regional 참가.
         다각형이 시작되는 edge를 만날때 ... indexed tree
          * Recursion 문제(9) - [http://211.228.163.31/30stair/omok/omok.php?pname=omok 오목], [http://211.228.163.31/30stair/necklace/necklace.php?pname=necklace 목걸이]
          * tree 문제(15) - [http://211.228.163.31/30stair/treeornot/treeornot.php?pname=treeornot treeornot]
  • AOI/2004 . . . . 2 matches
          || [ReverseAndAdd] || . || O || O || O || O || O || . || O ||
          || [WeightsAndMeasures] || || X || X || O || . || . || . || . ||
          || [LightMoreLight]|| . || . || O || . || . || . || . || . ||
          || [Where'sWaldorf?] || . || . || . || . || . || . || . || . ||
          [Refactoring/BadSmellsInCode] --[강희경]
         uva robot의 경우 보통 300 번 이상의 test case 를 쓰는 것 같습니다. 동적 메모리가 아닌 정적으로 할당할 경우 이 점을 유의(?)하지 않으면 RE error(포인터 에러)가 납니다. 보창은 이것때문에 하루종일 프로그램을 뜯어고쳤으나, 결국 우연한 기회에 알게 되었습니다. LCD-Display의 경우 robot은 1000줄 이상을 test하는 걸로 보여집니다. -- 보창
  • AcceleratedC++/Chapter4 . . . . 2 matches
          cout << "Your final grade is " << setprecision(3)
          << setprecision(prec) << endl;
          return 0.2 * midterm + 0.4 * final + 0.4 * homework;
          cout << "Your final grade is " << setprecision(3)
          << setprecision(prec) << endl;
          return 0;
         return_type function_name(parameter lists...) { 함수 내에서 할 일들 }
          return size % 2 == 0 ? (vec[mid] + vec[mid-1]) / 2 : vec[mid];
          === 4.1.2 Reimplementing out grading policy ===
          return grade(midterm, final, median(hw));
          * const vector<double>& hw : 이것을 우리는 double형 const vector로의 참조라고 부른다. reference라는 것은 어떠한 객체의 또다른 이름을 말한다. 또한 const를 씀으로써, 저 객체를 변경하지 않는다는 것을 보장해준다. 또한 우리는 reference를 씀으로써, 그 parameter를 복사하지 않는다. 즉 parameter가 커다란 객체일때, 그것을 복사함으로써 생기는 overhead를 없앨수 있는 것이다.
          === 4.1.3 Reading homework grades ===
          * 이제 우리가 풀어야 할 문제는, 숙제의 등급을 vector로 읽어들이는 것이다. 여기에는 두가지의 문제점이 있다. 바로 리턴값이 두개여야 한다는 점이다. 하나는 읽어들인 등급들이고, 또 다른 하나는 그것이 성공했나 하는가이다. 하나의 대안이 있다. 바로 리턴하고자 하는 값을 리턴하지 말고, 그것을 reference로 넘겨서 변경해주는 법이다. const를 붙이지 않은 reference는 흔히 그 값을 변경할때 쓰인다. reference로 넘어가는 값을 변경해야 하므로 어떤 식(expression)이 reference로 넘어가면 안된다.(lvalue가 아니라고도 한다. lvalue란 임시적인 객체가 아닌 객체를 말한다.)
         istream& read_hw(istream& in, vector<double>& hw)
         read_hw(cin, homework); // 호출
          * 입력받은게 등급이 아닐때(점수를 입력해야 되는데 이상한 것을 입력했을때) istream 객체 in은 실패 상태가 된다. 또한 그것을 읽지 않는다. 파일의 끝에 도달한것 처럼...
         istream& read_hw(istream& in, vector<double>& hw)
          return in;
          === 4.1.4 Three kinds of function parameters ===
          * 지금까지 만든 세개의 함수 median, grade, read_hw 를 살펴보자.
  • AustralianVoting/Leonardong . . . . 2 matches
         #include <iostream>
          return true;
          return false;
         int current( const VoteSheet & sheet )
          return sheet.candidateNum.front();
          return *sheet.candidateNum.erase( sheet.candidateNum.begin() );
          if ( candidators[ current(sheets[i]) ].fallen == false )
          candidators[ current(sheets[i]) ].votedCount++;
          int result = INT_MAX;
          if ( result > candidators[i].votedCount )
          result = candidators[i].votedCount;
          return result;
          return false;
          return true;
         int countRemainCandidators( const CandidatorVector & candidators )
          int result = 0;
          result++;
          return result;
          int remainNum = countRemainCandidators(candidators);
          if ( isWin( candidators[i], remainNum ) )
  • BabyStepsSafely . . . . 2 matches
         This article outlines the refactoring of an algorithm that generate the prime numbers up to a user specified maximum. This algorithm is called the Sieve of Eratosthenes. This article demonstrates that the granularity of the changes made to the source code are very small and rely completely on the ability to recompile and test the code after every change no matter how small. The step where the code is tested insures that each step is done safely. It is important to note that the execution of tests do not actually guarantee that the code is correct. The execution of the tests just guarantees that it isn't any worse that it used to db, prior to the change. This is good enough for the purposes of refactoring since we are tring to not damage anything thay may have worked before Therefore for each change in the code we will be recompilling the code and running the tests.
         The code that is to be refactored has existed in the system for awhile. It has undergone a couple of transformations. Initially it returned an array of int variables that are the prime numbers. When the new collection library was introduced in Java2 the interface was changed to return a List of Integer objects. Going forward the method that returns a List is the preferred method, so the method that returns an array has been marked as being deprecated for the last couple of releases. During this release the array member function will be removed. Listing1, "Class GeneratePrimes," contains the source code for both methods.
         The algorithm is quite simple. Given an array of integers starting at 2.Cross out all multiples of 2. Find the next uncrossed integer, and cross out all of its multiples. Repeat until you have passed the square root of the maximum value. This algorithm is implemented in the method generatePrimes() in Listing1. "Class GeneratePrimes,".
          LinkedList result = new LinkedList();
          result.add(new Integer(primes[i]));
          return result;
          // how many primes are there?
          // move the primes into the result
          // return the primes
          return primes;
          return new int[0]; return null array if bad input.
         The test cases for the GeneratePrimes class are implemented using the JUnit testing framework. The tests are contained in class called TestGeneratePrames. There are a 5 tests for each return type (array and List), which appear to be similiar. Our first step to insure보증하다, 책임지다 that we are starting from a stable base is to make sure what we have works.
         Therefore, recompile the both GeneratePrimes and TestGeneratePrime and run the tests.
          if(n < 2 ) return false;
          boolean result = true;
          while(result && i <= x)
          result = (0 != n % i);
          return result;
          if(primes.length == 0) return false;
          if(value == primes[i]) return true;
  • BasicJAVA2005/실습1/조현태 . . . . 2 matches
         import java.io.BufferedReader;
         import java.io.InputStreamReader;
          Random NumberCreator = new Random();
          answers[i] = NumberCreator.nextInt(10);
          answers[i] = NumberCreator.nextInt(10);
  • BicycleRepairMan . . . . 2 matches
         http://bicyclerepair.sourceforge.net/ . python refactoring 툴. idlefork 나 vim 에 통합시킬 수 있다.
         Seminar:BicycleRepairMan , PyKug:BicycleRepairMan
  • Bioinformatics . . . . 2 matches
         이런 취지에서 NCBI는 sequence-related information에 관한 모델을 만들었다. 그리고 이런 모델을 이용해서 Entrez(data retrieval system)나 GenBank DB(DNA seq.를 저장해둔 DB, 두 가지는 유전자 연구의 중요한 data들이다.)와 같이 소프트웨어나 통합 DB시스템을 가능하게 만들었다.
         GenBank flatfile은 DNA-centered의 보고서이다. DNA중심이라는 것은 어떤 단백질의 유전자 정보를 저장하고 있는 DNA영역이 DNA위의 coding region이라고 불린다. 반대로 대부분의 Protein seq. DB들은 Protein-centered의 관점이며, 이는 단백질과 유전자 사이는 accesion number(유전자를 접근하기위한 DB의 key값) ... 진행중
         National Center for Biotechnology Information 분자 생물 정보를 다루는 국가적인 자료원으로서 설립되었으며, NCBI는 공용 DB를 만들며, 계산에 관한 생물학에 연구를 이끌고 있으며, Genome 자료를 분석하기 위한 software 도구를 개발하고, 생물학 정보를 보급하고 있습니다. - 즉, 인간의 건강과 질병에 영향을 미치는 미세한 과정들을 보다 더 잘 이해하기 위한 모든 활동을 수행
         Established in 1988 as a national resource for molecular biology information, NCBI creates public databases, conducts research in computational biology, develops software tools for analyzing genome data, and disseminates biomedical information - all for the better understanding of molecular processes affecting human health and disease.
         == Entrez 란 ==
         Entrez는 통합 데이터베이스 retrieval 시스템으로서 DNA, Protein, genome mapping, population set, Protein structure, 문헌 검색이 가능하다. Entrez에서 Sequence, 특히 Protein Sequence는 GenBank protein translation, PIR, PDB, RefSeq를 포함한 다양한 DB들에 있는 서열을 검색할 수 있다.
         == DNA Republication ==
  • BoaConstructor . . . . 2 matches
         http://sourceforge.net/potm/potm-2003-08.php 2003년 8월 Project of the month 에 뽑혔다. CVS 최신버전인 0.26에서는 BicycleRepairMan 이 포함되었다.
         UnitTest 가 있는 것만으로도 언제든지 리팩토링할 수 있다는 믿음이 있다면..~ 혼자서 프로토타입 플밍 할때는 그냥 StepwiseRefinement & UnitTest 조합도 괜찮은 것 같다. 빨리 기능을 얻은뒤 기능들 보고 중간에 CRC 해가면서 유용할만한 Object들을 추출해나가는 것도. 언제든지 Object 뽑아낼 자신이 있으니까.
  • Celfin's ACM training . . . . 2 matches
         === Already Solved Problem ===
         || 5 || 6 || 110603/10198 || Counting || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4010&title=Counting/하기웅&login=processing&id=&redirect=yes Counting/Celfin] ||
         || 6 || 6 || 110606/10254 || The Priest Mathmatician || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4132&title=ThePriestMathematician/하기웅&login=processing&id=&redirect=yes The Priest Mathmatician/Celfin] ||
         || 7 || 6 || 110608/846 || Steps || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4130&title=Steps/하기웅&login=processing&id=&redirect=yes Steps/Celfin] ||
         || 8 || 9 || 110908/10276 || Hanoi Tower Troubles Again || . || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4078&title=HanoiTowerTroublesAgain!/하기웅&login=processing&id=&redirect=yes Hanoi Tower Troubles Again/Celfin] ||
         || 9 || 6 || 110602/10213 || How Many Pieces Of Land? || 3 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4143&title=HowManyPiecesOfLand?/하기웅&login=processing&id=celfin&redirect=yes How Many Pieces Of Land?/Celfin] ||
         || 10 || 6 || 110601/10183 || How Many Fibs? || 2 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4172&title=HowManyFibs?/하기웅&login=processing&id=celfin&redirect=yes How Many Fibs?/Celfin] ||
         || 11 || 10 || 111007/10249 || The Grand Dinner || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4188&title=TheGrandDinner/하기웅&login=processing&id=celfin&redirect=yes The Grand Dinner/Celfin] ||
         || 12 || 12 || 111201/10161 || Ant on a Chessboard || 40 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4209&title=AntOnAChessboard/하기웅&login=processing&id=&redirect=yes Ant on a Chessboard/Celfin] ||
         || 13 || 12 || 111204/10182 || Bee Maja || 30 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4235&title=BeeMaja/하기웅&login=processing&id=&redirect=yes Bee Maja/Celfin] ||
         || 14 || 12 || 111207/10233 || Dermuba Triangle || 3 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4238&title=DermubaTriangle/하기웅&login=processing&id=&redirect=yes Dermuba Triangle/Celfin] ||
         || 15 || 11 || 111105/10003 || Cutting Sticks || 3 days || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4198&title=CuttingSticks/하기웅&login=processing&id=&redirect=yes CuttingSticks/Celfin] ||
         || 16 || 13 || 111303/10195 || The Knights of the Round Table || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4263&title=TheKnightsOfTheRoundTable/하기웅&login=processing&id=&redirect=yes TheKnightsOfTheRoundTable/Celfin] ||
         || 17 || 13 || 111306/10215 || The Largest/Smallest Box || 40 mins || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4264&title=TheLagestSmallestBox/하기웅&login=processing&id=&redirect=yes TheLargestSmallestBox/Celfin] ||
         || 18 || 13 || 111307/10209 || Is This Integration? || 2 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4265&title=IsThisIntegration?/하기웅&login=processing&id=&redirect=yes IsThisIntegration/Celfin] ||
         || 19 || 1 || 110106/10033 || Interpreter || much || [Interpreter/Celfin] ||
         || 28 || 5 || 110502/10018 || Reverse And Add || 2 hours || [ReverseAndAdd/Celfin] ||
         || 30 || 3 || 110302/10010 || Where's Waldorf? || 1 hour 30 mins || [WheresWaldorf/Celfin] ||
         === Current Solving Problem ===
  • CollectiveOwnership . . . . 2 matches
         Wiki:RefactorLowHangingFruit . 고쳐야 할 것이 많다면 오히려 조금씩 고치도록 한다(그리고 고치는 작업을 엔지니어링 태스크로 혹은 유저 스토리로 명시화해서 관리한다). 고치는 중에, 5분 정도의 단위로 테스트를 해봐서 하나도 문제가 없도록 고쳐 나가야 한다. 섬과 육지를 연결하는 다리가 있을 때, 이걸 새 다리로 교체하려면 헌 다리를 부수고 새 다리를 만드는 것이 아니고, 새 다리를 만든 다음 헌 다리를 부수어야 하는 것이다. {{{~cpp formatText(String data)}}}을 {{{~cpp formatText(String data,boolean shouldBeVeryFancy)}}}로 바꾸어야 한다면, {{{~cpp fancibleFormatText}}}를 만들고, 기존의 {{{~cpp formatText}}}를 호출하는 곳을 {{{~cpp fancibleFormatText(data,false)}}}로 하나씩 바꿔나가면서 계속 테스트를 돌려보면 된다. 이게 완전히 다 되었다고 생각이 들면 {{{~cpp formatText}}} 정의를 지워본다. 문제가 없으면 {{{~cpp fancibleFormatText}}}를 {{{~cpp formatText}}}로 rename method 리팩토링을 해준다. 하지만 만약 이 작업이 너무 단순 반복적인 경우에, 충분히 용기가 생기고, 또 확신이 들면 이 작업을 자동화할 수 있다(OAOO). 예컨대 IDE에서 지원하는 자동 리팩토링을 사용하거나, 정규식을 통한 바꾸기(replace) 기능을 쓰거나, 해당 언어 파서를 이용하는 간단한 스크립트를 작성해서 쓰는 방법 등이 있다. 이렇게 큰 걸음을 디디는 경우에는 자동화 테스트가 필수적이다.
         일단 리팩토링을 필요로 하는 부분을 한정하고, 그 주위에 테스트 프로그램을 조금씩 붙여 나가야 한다. 그리고 리팩토링을 한다. 간혹 컴파일러를 테스트 프로그램으로 여기는 약간은 위험한 방법도 있다. see also Wiki:RefactoringLegacyCode
         ["ExtremeProgramming"]
  • ComputerGraphicsClass/Exam2004_2 . . . . 2 matches
         === Ploygon Rendering Methods ===
         점 D 는 선분 AB 의 중점이고, 점 E는 선분 AC를 3 : 2로 나눈 점이다. 또한 F는 D 와 E의 중점이다. 점 A,B,C의 색이 각각 red(1,0,0), green(0,1,0), white(1,1,1)일 때 점 D,E,F의 색을 (r,g,b) 형태로 나타내어라.
         곡선(수식)을 나타내는 기본 형태(Three basic forms of curves)를 쓰고, 이 중에서 컴퓨터 그래픽스에서 어떤 형태가 가장 적합한지 그 이유를 설명하시오.
         === Non-Photorealistic Rendering ===
  • CppStudy_2002_2 . . . . 2 matches
         || 8.1 ||["Refactoring/ComposingMethods"]||몇개 소스 리팩토링 해보기||
         = Thread =
          * ["Refactoring"] 책을 보고 있다면, 이번이 아마 Bad Smells 를 인식할 수 있는 좋은 기회가 될것임. ^^ --["1002"]
  • CppStudy_2002_2/STL과제/성적처리 . . . . 2 matches
         #include <iostream>
         #include <fstream>
         class ScoresTable
          vector<int> _Scores;
          int _TotalScore;
          double _AverageScore;
          ScoresTable(const string& aStudentName) : _StudentName(aStudentName)
          _TotalScore = 0;
          _AverageScore = 0.0;
          void addScoreToVector(int aScore)
          _Scores.push_back(aScore);
          void calculateTotalScore()
          for(unsigned int i = 0 ; i < _Scores.size() ; ++i)
          _TotalScore += _Scores[i];
          void calculateAverageScore()
          _AverageScore = (double)_TotalScore / 4.0;
          return _StudentName;
          int getnthScore(int n) const
          return _Scores[n];
          int getTotalScore() const
  • DPSCChapter5 . . . . 2 matches
         '''Chain of Responsibility(225)''' Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects, and pass the request along the chain until an object handles it.
         '''Command(245)''' Encapsulate a request or operation as an object, thereby letting you parameterize clients with different operations, queue or log requests, and support undoable operations.
         '''Interpreter(261)'''
         '''Chain of Responsibility(225)'''
         '''Command(245)''' 는 요청(request)이나 명령(operation)을 object로서 캡슐화시킨다. 그러함으로써 각각 다른 명령을 가진 클라이언트들을 파라미터화 시키고, 요청들을 queue에 쌓거나 정렬하며, 취소가능한형태의 명령들을 지원한다.
  • DataStructure/List . . . . 2 matches
          Node* Prev_ptr;
         Head->Prev_ptr=Tail; // 1 노드의 앞 노드는 3노드
         Mid->Prev_ptr=Head; // 2 노드의 앞 노드는 1노드
         Tail->Prev_ptr=Mid; // 3 노드의 앞 노드는 2노드
          return ndata;
          return false;
          return true;
          return false;
          return true;
         void Add_ToRear(int n)
         boolean Delete_Rear()
         ["DataStructure"]
  • Data전송 . . . . 2 matches
         JSP (Request, Response)
         // form method="get" or "post" 넣어주면 된다. action="receive.jsp" //
         <form name="sub" method="post" action="receive.jsp">
         === receive.jsp File ===
         <% String id = request.getParameter("id");
          String pass = request.getParameter("pass");
          String list = request.getParameter("name");
          String hobby[] = request.getParameterValues("hobby");
          String season = request.getParameter("season");
         == Thread ==
  • Debugging . . . . 2 matches
         || Start Debugging, Go || *F5 || 디버깅 모드로 실행, 디버깅 모드 중에 F5를 다음 BreakPoint로 이동함 ||
         ||BreakPoint ||* F9 || 디버깅 모드에서 멈출곳을 지정 ||
         ||BreakPoint ||* Ctrl + Shift + b || 디버깅 모드에서 멈출곳을 지정 ||
         || Run to Return(Step Out) || F7 || 어떤 함수안에 들어갔다가 바로 그 함수를 나오고 싶을때 사용 ||
         || Resume(go)|| F8 || 다음 BreakPoint 지점으로 이동 ||
         = Thread =
          * [http://korean.joelonsoftware.com/Articles/PainlessBugTracking.html 조엘아저씨의 손쉬운 버그 추적법]
         [http://zeropage.org/~namsangboy/Score.zip Debugging/Seminar2005자료소스]
  • DebuggingSeminar_2005 . . . . 2 matches
          || [http://www.sysinternals.com/ SysInternal] || [http://www.sysinternals.com/Utilities/ProcessExplorer.html Process Explorer Page] ||
          || [http://www.compuware.com/products/devpartner/enterprise.htm DevPartner] || Compuware DevPartner ||
          || [http://www.compuware.com/products/numega.htm NuMega] || [SoftIce] , DevPartner 개발사 ||
          || [http://www.compuware.com/products/devpartner/softice.htm SoftIce for DevPartner] || 데브파트너랑 연동하여 쓰는 SoftIce, [http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/SoftICE.shtml Freeware Download] ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rebase.asp ReBase MSDN] || Rebase is a command-line tool that you can use to specify the base addresses for the DLLs that your application uses ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_viewing_decorated_names.asp undname.exe] || C++ Name Undecorator, Map file 분석툴 ||
          || [http://www.vmware.com/ VMWARE] || 가상 컴퓨터 에뮬레이터? ||
          || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/_core_c_run2dtime_library_debugging_support.asp Debug CRT] || VC++4 에서 지원하기 시작한 C런타임 라이브러리 ||
  • Doublets/황재선 . . . . 2 matches
          public String readWord() {
          return new Scanner(System.in).useDelimiter("\n").next().trim();
          return null;
          return false;
          int differentBitCount = 0;
          differentBitCount++;
          return differentBitCount == 1 ? true : false;
          public void storeWord(String word) {
          public void printResult() {
          return start;
          String word = simulator.readWord();
          break;
          simulator.storeWord(word);
          String words = simulator.readWord();
          break;
          simulator.printResult();
  • EcologicalBinPacking/강희경 . . . . 2 matches
         #include<iostream>
          return totalBottle;
          return minimum;
          break;
          break;
          break;
          break;
          break;
         #include<iostream>
         #define NumberOfResultInformations 2
         bool isCorrectInput;
          isCorrectInput = true;
          isCorrectInput = false;
          isCorrectInput = false;
          return slots;
          return noMove;
          if(!isCorrectInput){
          return temp;
          int *resultInformation = new int[NumberOfResultInformations];
          resultInformation[0] = minimumCase;
  • EcologicalBinPacking/임인택 . . . . 2 matches
         results = []
         def RecycleBin():
          results.append(sum)
          for i in range(len(results)):
          if min>results[i]:
          min=results[i]
          print chars[idx],results[idx]
         RecycleBin()
  • EditStepLadders/황재선 . . . . 2 matches
          public String readWord() {
          return new Scanner(System.in).nextLine();
          return null;
          public void storeWord(String word) {
          return !wordList.isEmpty();
          return false;
          int differentBit = 0;
          differentBit++;
          return differentBit == 1 ? true : false;
          return differentBit == 0 ? true : false;
          return startingPoint;
          public void printResult() {
          String word = step.readWord();
          break;
          step.storeWord(word);
          step.printResult();
  • EffectiveSTL/Container . . . . 2 matches
         = Item1. Choose your containers with care. =
          * Random Access Iterator(임의 접근 반복자)가 필요하다면, vector, deque, string 써야 한다. (rope란것도 있네), Bidirectional Iterator(양방향 반복자)가 필요하다면, slist는 쓰면 안된다.(당연하겠지) Hashed Containers 또 쓰지 말랜다.
          * Iterator, Pointer, Reference 갱신을 최소화 하려면 Node Based Containers를 쓴다.
         = Item2. Beware the illusion of container-independant code. =
          * Standard Node-based Container들은 양방향 반복자(bidirectional Iterator)를 지원한다.
          ''STL Tutorial and Refereince 를 보면, 일부러 해당 Container 에게 최적화된 메소드들만 지원한다고 써있었던 기억. 예를 든다면, Vector 의 경우 push_front 같은 것이 없다. (만일 vector에 push_front 를 한다면? push_front 될때마다 매번 기존의 원소들 위치가 바뀐다.) --[1002]''
         = Item3. Make copying cheap and correct for objects in containers. =
          * 컨테이너에 Object를 넣을때에는, 그 Object의 복사 생성자(const reference)와, 대입 연산자를 재정의(const reference) 해주자. 안그러면 복사로 인한 엄청난 낭비를 보게 될것이다.
          ["MoreEffectiveC++/Techniques1of3"] 의 Item 28 을 봐라. 영문을 보는것이 더 좋을것이다. ["MoreEffectiveC++"] 의 전자책과 아날로그 모두다 소장하고 있으니 필요하면 말하고, 나도 이 책 정리 할려고 했는데, 참여하도록 노력하마 --["상민"]
         = Item5. Prefer range member functions to their single-element counterparts. =
         ifstream dataFile("ints.dat");
         list<int> data(ifstream_iterator<int>(dataFile),ifstream_iterator<int>()); // 이런 방법도 있군. 난 맨날 돌려가면서 넣었는데..--;
         ifstream dataFile("ints.dat");
         ifstream_iterator<int> dataBegin(dataFile);
         ifstream_iterator<int> dataEnd;
         = Item7. When using containers of newed pointers, remember to delete the pointers before the container is destroyed =
         return 0;
         typedef boost::shared_ptr<Object> SPO; // boost 라이브러리라는게 있단다.
         = Item8. Never create containers of auto_ptrs. =
         = Item9. Choose carefully among erasing options. =
  • EightQueenProblem/강인수 . . . . 2 matches
         #include <iostream>
          int ret = 1;
          return 1;
          ret *= i;
          return ret;
         bool isCorrectChecker(vector<int>& ar)
          return false;
          return true;
         vector< vector<int> > getCorrectChecker(vector<int>& ar)
          vector< vector<int> > ret;
          if( isCorrectChecker(ar) )
          ret.push_back( ar );
          return ret;
         void showResult(vector< vector<int> >& result)
          for(int i = 0 ; i < result.size() ; ++i)
          for(int j = 0 ; j < result[i].size() ; ++j)
          cout << result[i][j] << " ";
          vector<int> ret(N);
          ret[i] = i + 1;
          return ret;
  • EightQueenProblemDiscussion . . . . 2 matches
         EightQueenProblem을 풀면서 혹은 푸는데 실패하면서 얻은 ThreeFs를 이야기해 봅시다.
         만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
          * Feelings - 느낀점: 시간이 넘 오래걸려서 한편으로는 쪽팔리긴 하다. -_-; 뭐.. 알고리즘 부분에 대해서 너무 시간을 오래 끌었다. 왜 그랬을까 생각하는데.. 아마 특정 알고리즘들이 먼저 머릿속에 떠올라서가 아닐까 한다. (이 부분에 대해서는 stack을 쓸까 recursive 로 대신할까 이리저리군시렁군시렁) 이런 부분에 대해서는 어떻게 test가능한 부분으로 접근해나갈수 있을까.
          return 0
          Ret = self.DefineQueen (Level + 1)
          if not Ret:
         c+d)/2));return f;}main(q){scanf("%d",&q);printf("%d\n",t(~(~0<<q),0,0));}
         When the program is run, one has to give a number n (smaller than 32), and the program will return in how many ways n Queens can be put on a n by n board in such a way that they cannot beat each other.
         Note that the d=(e-=d)&-e; statement can be compiled wrong on certain compilers. The inner assignment should be executed first. Otherwise replace it with e-=d,d=e&-e;.
         ThreeFs
  • EmbeddedSystem . . . . 2 matches
          * Soft Real Time System 반응이 느려도 무방한 시스템
          * Hard Real Time System 반응이 빠르고 정확해야 하는 시스템
  • EventDrvienRealtimeSearchAgency . . . . 2 matches
         = EDRSA(Event Driven Realtime Search Agency) =
          * 쉽게 생각하면 로봇이 대신 웹서핑을 해서 사용자가 필요한 정보만 실시간으로 수집해서 바로 바로 실시간으로 제공해주는 Searcy Agency를 Event Driven Realtime Search Agency 라고 칭한다.
  • ExtremeBear/Plan . . . . 2 matches
         ["ExtremeBear"] Meeting20021029
         Recorder : Moa:동희
          Moa:컴퓨터고전스터디 에서 나오는 이야기와 연계하며 ExtremeBear 생각해보기
          * 곰 (ExtremeBear 의 마스코드!)
         RefactoringMe ) 참고 ["CodeConvention"]
         ["ExtremeBear"]
  • FactorialFactors/이동현 . . . . 2 matches
          return false;
          return true;
          void printResult(){
          long time = System.currentTimeMillis();
          break;
          break;
          printResult();
          System.out.print(System.currentTimeMillis()-time);
  • Favorite . . . . 2 matches
         [http://xper.org/wiki/seminar/RecentChanges XperSeminar]
         [http://xper.org/wiki/xp/RecentChanges XPer]
  • HaskellExercises/Wikibook . . . . 2 matches
         = Recursion =
         module Recursion where
         --이름 충돌로 replication 대신에 rep
         rep :: a -> Int -> [a]
         rep a 0 = []
         rep a n = a:rep a (n-1)
         module List where
          where sub a b = a - b
         = More on Functions =
          where f x = x * 2 + 3
         lambda2 xs = foldr (\x y -> read x + y) 1 xs
         original2 xs = let f x y = read x + y
  • Hessian . . . . 2 matches
         Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
         hessian simple tutorial (홈페이지의 Servlet 예제) - 이는 Resin Servlet Container 가 동작해야 함.
          public int returnInt();
         이를 컴파일 하기 위해서는 hessian-2.1.3.jar 화일과 jsdk23.jar, resin.jar 화일이 classpath 에 맞춰줘야 한다. (이는 resin 의 lib 폴더에 있다. hessian jar 화일은 [http://caucho.com/hessian/download/hessian-2.1.3.jar hessian] 를 다운받는다)
          return "Hello, World";
          public int returnInt() {
          return 10;
         Java 와 Python 둘 다 구현이 가능하다. 여기서는 간단하게 Python Interpreter 를 이용해보자.
         >>> proxy.returnInt()
          Basic basic = (Basic)factory.create(Basic.class, url);
          System.out.println("returnInt : " + basic.returnInt());
  • JMSN . . . . 2 matches
          * http://cvs.linuxkorea.co.kr/cvs/py-msnm - Python 으로 포팅된 msnmlib
         * 사용자의 일부 properties(Foward list, Reverse list, Allow list, Block list, GTC setting, BLP setting)-$1는 서버에 저장된다. $1은 client에 캐시된다. client에 캐시된 $1를 최신의 것으로 유지해야 한다.
         '''1.6. List Retrieval And Property Management'''
         * client가 $1의 retrieval을 요구할 수 있다.
  • Java2MicroEdition/MidpHttpConnectionExample . . . . 2 matches
         package com.minnysunny.mobilerssreader.spike;
          display.setCurrent(tb);
         package com.minnysunny.mobilerssreader.spike;
         import java.io.DataInputStream;
          private DataInputStream dis;
          httpConn.setRequestMethod(HttpConnection.GET);
          httpConn.setRequestProperty("User-Agent", "Mozilla/4.0");
          dis = httpConn.openDataInputStream();
          String ret = "";
          byte b = dis.readByte();
          ret += (char)b;
          return ret;
          String ret = null;
          dis.read(buffer);
          ret = new String(buffer);
          return ret;
  • JollyJumpers/조현태 . . . . 2 matches
          String text = System.Console.ReadLine();
          return;
          break;
          text = System.Console.ReadLine();
  • KDPProject . . . . 2 matches
          *["DPSCChapter3"] - Creational Patterns - Abstract factory 진행.
          * 임시 Image 자료실 - http://zeropage.org/~reset/zb/zboard.php?id=KDP_board_image . 이미지나 기타 필요 화일 첨부를..~
          * http://c2.com/cgi/wiki?PortlandPatternRepository - Portland Pattern Repository. 유명한 Wiki page.
          * http://www.plasticsoftware.com/ - 국산 Java case tool pLASTIC
  • Komodo . . . . 2 matches
         가장 인상적인 기능을 뽑는다면 Rx(Regular Expression) Toolkit 을 들 수 있다. 이를 이용하면 Regular Expression 에서 각 그룹에 따른 변수들이 어떻게 뽑아져나오는지 쉽게 눈으로 확인할 수 있다.
  • Linux/RegularExpression . . . . 2 matches
         = Mastering Regular Expressions, 2nd Edition =
         == Ch1 Introduction to Regular Expressions ==
          * ^(caret) : 시작을 의미함. ^cat은 cat으로 시작하는 문자...(cats,cater,caterer...).in the line rather real text
          * $(dollar) : 끝을 의미함. cat$은 cat으로 끝나는 문자 ...(blackcat, whitecat, ....) in the line rather real text
          * [](Character Class) : seper[ae]te 하면 seperate, seperete 모두를 포함한다.
          * |(OR) : 여러개의 식을 한개의 식으로 합성할 수 있다. []안에서는 | 이 문자를 가리킬 뿐이다. gr[ea]y, grey|gray,gr(a|e)y 는 같다.
          * ()(parentheses) : a(a|b)cde 하면 aacde, abcde 둘다 해당 된다. [a|b]하면 | 를 문자로 처리 하지만 (a|b) 로 ()를 씌어 주면 |를 OR로 해석한다.
          * -i(option) : 대소문자 구분을 안한다. 예)egrep -i '^(From|Subject|Date): ' mailbox
         (1) ^ (caret) : 라인의 처음이나 문자열의 처음을 표시
         (9) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용
         korea|japan|chinese (korea, japan, chinese 중 하나)
         정규식은 Unix의 대표적인 유틸리티인 vi, emacs, ed, sed, awk, grep, egrep 등에서 사용할 수 있다. 다음은 grep에서 정규식을 활용한 예를 보여 주고 있다.
         (1) $ 명령어 | grep '정규식'
         <= 명령어의 결과를 grep이 입력받아 정규식을 이용하여 패턴을 찾아냄
         예 : $ who | grep 'hgkim' <= hgkim이라는 사용자가 login 해 있는지를 알아봄
         $ ls -al | grep '^d.*' <= ls -al 의 결과 'd'로 시작하는 라인(즉 디렉토리들)
         $ ls -al | grep '^d.*' <= ls -al 의 결과 'd'로 시작하는 라인(즉 디렉토리들)
         $ ls -al | grep '^[^d]..x..x..x' <= 디렉토리는 제외하고("[^d]") 누구나
         (2) $ grep '정규식' 파일이름
         예: $ grep 'telnet' /etc/inetd.conf
  • Linux/필수명령어 . . . . 2 matches
         Unix Power Tools/Shelley Powers, Jerry Peek, Tim O'Reilly
         약간 어려운 부분은 쉘프로그래밍, 정규식(RegularExpression)부분인데 상당히 짜증남 -_-;''
         || whereis || 인자로 주어진 명령어의 바이너리 파일, 소스, man file의 실경로 표시 ||
         || ping || 목적지로 ICMP_REQUEST 보내 반응 시간을 측정. ping test 실시 ||
         || grep || 입력으로 받은 내용에서 특정 내용을 grap 하여 참이 되는 것을 출력해준다 ||
         || more || 입력으로 받은 내용을 페이지 단위로 출력 ||
         || reboot || 설명이 필요없는 명령어. -_-; 원격으로도 재부팅을 제공한다. ||
         || free || 메모리와 스왑 이용량을 출력한다 ||
  • LinuxSystemClass . . . . 2 matches
         === Report Specification ===
         [LinuxSystemClass/Report2004_1] - PosixThread 를 이용, 스레드를 만들고 그에 따른 퍼포먼스 측정.
  • ListCtrl . . . . 2 matches
         m_ctrlZoneList.ScreenToClient(&Index);
         void CBlockDlg::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
          // TODO: Add your control notification handler code here
          *pResult = 0;
         == Thread ==
  • MFC/AddIn . . . . 2 matches
          * Restore Class View Addin
          * IncrediBuild
         CrashReport 라는 것도 있다는데... code project 에서 참조하라고함. StarDock 이 이걸 이용했나본데;; dll이 있네;; - [eternalbleu]
  • MFCStudy_2001/MMTimer . . . . 2 matches
         MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent);
          * MMRESULT에는 타이머의 번호가 리턴됩니다. NULL일 경우에는 실패한 경우입니다.
          * uResolution : 대개 0을 넣습니다만... 정확도 같다고 합니다.
         MMRESULT timeKillEvent(UINT uTimerID);
          setTimerEvent때 얻은 타이머의 번호를 집어넣어 타이머를 죽입니다.
  • MFCStudy_2001/진행상황 . . . . 2 matches
          * Release 로 컴파일 해서 보네주세요. 실행파일만 주세요
          *1월 14일 - 13일 일요일에 석천이형의 조언에 따라 코드 전체적으로 대대적인 Refactoring(이 용어가 맞는지는 모르겠네여..^^;;)을 해서 할수 있는 한 많은 코드들을 함수로 만들었습니다. 이에 따라 라인수가 아주 많이 줄어들게 되었고, 공격과 방어 인공지능을 같은 함수로 동작하게 하여 방어 할 수 있는 패턴은 모두 컴퓨터 공격할 수 있게 하였습니다.(덕분에 코드를 체계적으로 만들때는 상당히 힘들었지만, 한번 그렇게 하니 작업이 훨씬 쉬어 졌습니다. 참으로 중용한 사실을 몸소 체험 한거 같습니다) 3,4 방어 및 공격 인공 지능을 추가 했습니다. 이제 사람을 이길 확률이 좀더 높아 졌지만, 아직도 부족한것 같고 띈 3,3 방어 및 공격과 효율적인 3 만들기를 추가할 예정입니다.
  • MajorMap . . . . 2 matches
         = ComputerArchitecture =
         It's related ProgrammingLanguage, DigitalLogicDesign(, and...)
         Keywords are InstructionSetArchitecture, Register, Memory, Address(,and...)
         InstructionSetArchtecture(ISA) is an abstract interface between the hardware and the lowest-level sogtware. Also called simply architecture.
         Registers are a limited number of special locations built directly in hardware. On major differnce between the variables of a programming language and registers is the limited number of registers, typically 32(64?) on current computers.
         Memory is the storage area in which programs are kept when they are runngin and that contains the data needed by the running programs. Address is a value used to delineate the location of a specific data element within a memory array.
         Keywords are ALU, Overflow/Underflow, Two'sComplement(,and...)
         ALU is is a part of the execution unit, a core component of all CPUs. ALUs are capable of calculating the results of a wide variety of basic arithmetical computations such as integer and floating point arithmetic operation(addition, subtraction, multiplication, and division), bitwise logic operation, and bit shitf operation. Therefore the inputs to the ALU are the data to be operated on (called operands) and a code from the control unit indicating which operation to perform. Its output is the result of the computation.--from [http://en.wikipedia.org/wiki/ALU]
         Two's complement is the most popular method of representing signed integers in computer science. It is also an operation of negation (converting positive to negative numbers or vice versa) in computers which represent negative numbers using two's complement. Its use is ubiquitous today because it doesn't require the addition and subtraction circuitry to examine the signs of the operands to determine whether to add or subtract, making it both simpler to implement and capable of easily handling higher precision arithmetic. Also, 0 has only a single representation, obviating the subtleties associated with negative zero (which is a problem in one's complement). --from [http://en.wikipedia.org/wiki/Two's_complement]
         A Gray code is a binary numeral system where two successive values differ in only one digit. --from [http://en.wikipedia.org/wiki/Gray_code]
  • MemeHarvester . . . . 2 matches
          * 이것은 [EventDrvienRealtimeSearchAgency] 의 일종이다.- 싸이월드를 보면 자신의 방명록에 글이 올라오면 바로 알려준다. 이를 모든 웹사이트에 대해서 가능하도록 하는 프로젝트, 물론 단순히 새글이 올라왔다고만 알려주는것은 아니다. 어떠한 새글이 올라왔는지 실시간으로 알려주며 키워드를 입력하면 해당 키워드가 포함된 글이 올라올때만 알려주기도 한다. 활용 예를 보면 어떤 프로젝트인지 잘 이해가 갈 것임..
         || 데이터 수집 || 로봇이 모든 웹을 돌아다니면서 데이터 저장 || 사용자가 특정 웹을 지정하고, 해당 웹에서 사용자가 원하는 키워드가 포함된 글이 올라올 경우나 새 글이 올라올 경우(옵션에 따라) 실시간으로 알려줌, RealTimeSearchEngine ||
         = Thread =
  • MoinMoinDone . . . . 2 matches
          * Strip closing punctuation from URLs, so that e.g. (http://www.python.org) is recognized properly. Closing punctuation is characters like ":", ",", ".", ")", "?", "!". These are legal in URLs, but if they occur at the very end, you want to exclude them. The same if true for InterWiki links, like MeatBall:InterWiki.
          * Rejoice,
          * Check for a (configurable) max size in bytes of the RecentChanges page while building it
          * SGML-Entities were replaced when saving them a second time, i.e. & #160; without the space had a problem.
          * SpamSpamSpam appeared 3 times in WordIndex. Too much Spam!
  • MoniWiki/HotKeys . . . . 2 matches
         적수네 동네에 있던 기능을 GnomeKorea, KLE에서 쓰도록 개선시킨 것을 내장시켰다.
          ||R(not Safari)||action=show ||Refresh||
          ||Q, S, R(Safari only)[[BR]]또는 F3(Firefox only)|| ||[[Icon(search)]] FindPage ||
          ||F1(Firefox only)|| ||[[Icon(help)]] HelpContents ||
          ||U|| ||UserPreferences ||
          ||C|| ||RecentChanges ||
  • MoreEffectiveC++/C++이 어렵다? . . . . 2 matches
         ["MoreEffectiveC++"]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-fe2478216366d160a621a81fa4e3999374008afa Item 24 Virtual 관련], [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-ce86e4dc6d00b898731fbc35453c2e984aee36b8 Item 32 미래 대비 프로그램에서 String문제]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-4e0fa0edba4b5f9951ea824805784fcc64d3b058 Item 24 다중 상속 관련]
          === RTTI (Real Time Type Information) ===
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-df8e5cb1fbb906f15052798c446df0ed08dfeb91 Item 24 RTTI 관련]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fTechniques3of3 Item 31]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fTechniques3of3#head-85091850a895b3c073a864be41ed402384d1868c RTTI를 이용해 구현 부분]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-a8fe938a36d3be47de007ce24f1d367295cd7ea7 Item 34 name mangle 관련]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-9b5275859c0186f604a64a08f1bdef0b7e9e8e15 Item 34]
          [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-a8fe938a36d3be47de007ce24f1d367295cd7ea7 Item 34 name mangle 관련]
          [http://developer.apple.com/techpubs/macosx/ReleaseNotes/Objective-C++.html]
          [http://www.research.avayalabs.com/user/wadler/pizza/gj/]
         = Thread =
         ["MoreEffectiveC++"]
  • MoreEffectiveC++/Exception . . . . 2 matches
         ["MoreEffectiveC++"]
         == Item 9: Use destuctors to prevent resource leaks. ==
          ALA * readALA(istream& s);
          void processAdoptions( istream& dataSource)
          ALA *pa = readALA(dataSource);
          void processAdoptions( istream& dataSource)
          ALA *pa = readALA(dataSource);
          void processAdoptions(istream& dataSource)
          auto_ptr<ALA> pa(readALA(dataSource));
          WINDOW_HANDLE w(createWindow());
          display info in window corresponding to w;
         일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
          operator WINDOW_HANDLE() {return w;}
          WINDOW_HANDLE w(createWindow());
          display info in window corresponding to w;
         == Item 10: Prevent resource leaks in constructors. ==
          const string& address = "",
          string the Address;
          const string& address,
          :theName(name), theAddress(address), theImage(0), theAudioClip(0)
  • NSIS/예제4 . . . . 2 matches
         LoadLanguageFile "${NSISDIR}\Contrib\Language files\Korean.nlf"
         Name "RealVNC 4.0 한글화 패치"
         InstallDir $PROGRAMFILES\RealVNC\VNC4
  • NSIS_Start . . . . 2 matches
          * 주제 : Installer Program 에 대한 이해를 위해. free software 인 Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System 영문메뉴얼을 보면서 한글 메뉴얼을 만든다.
          * 주요 Reference 의 명령어들에 대해 번역. 1차 초안 완료.
          * ["NSIS/Reference"] - 주요 스크립트 명령어들 관련 reference
  • OOP . . . . 2 matches
         Object-oriented programming is based in the principle of recursive design.
         2. Objects perform computation by making requests of each other through the passing of messages.
         5. The class is the repository for behabior associated with an object.
         6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy.
         Clearer and easier to read
         Code is more easily reusable
          * [Relation](관계)
         Objects should correspond real word objects
         Responsibily area should be simple and compact
         Don’t mix responsibilities
         Keep responsibily areas as general as possible to garantie reuse.
  • OpenCamp/첫번째 . . . . 2 matches
         - 주제: Web Conference
          * 14:15~15:00 Reverse Engineering of Web for Android Apps 정진경
          * 15:00~15:15 Break
          * 16:45~17:00 Break
          * [https://trello-attachments.s3.amazonaws.com/504f7c6ae6f809262cf15522/5050dc29719d8029024cca6f/f04b35485152d4ac19e1392e2af55d89/forConference.html 다운로드]
         - MySQL Create Database -----
         CREATE DATABASE ZPOC;
         CREATE TABLE member (
         - MySQL Create Database END -----
         - 주제: Java Conference
          * 데블스도 그렇고 이번 OPEN CAMP도 그렇고 항상 ZP를 통해서 많은 것을 얻어가는 것 같습니다. Keynote는 캠프에 대한 집중도를 높여주었고, AJAX, Protocols, OOP , Reverse Engineering of Web 주제를 통해서는 웹 개발을 위해서는 어떤 지식들이 필요한 지를 알게되었고, NODE.js 주제에서는 현재 웹 개발자들의 가장 큰 관심사가 무엇있지를 접해볼 수 있었습니다. 마지막 실습시간에는 간단한 웹페이지를 제작하면서 JQuery와 PHP를 접할 수 있었습니다. 제 기반 지식이 부족하여 모든 주제에 대해서 이해하지 못한 것은 아쉽지만 이번을 계기로 삼아서 더욱 열심히 공부하려고 합니다. 다음 Java Conference도 기대가 되고, 이런 굉장한 행사를 준비해신 모든 분들 감사합니다. :) - [권영기]
  • OperatingSystemClass . . . . 2 matches
         수업내용: Operating System 에 대한 전반적인 개론. Computer Architecture 에서 한단계 더 위의 Layer 를 공부하게 된다. 메모리의 계층구조, 멀티테스킹과 그에 따른 동기화문제, 가상 메모리 등등.
          * 타대학 수업: http://inst.eecs.berkeley.edu/~cs162/ 의 Webcast 에서 동영상 제공(real player 필요)
          * http://cne.gmu.edu/workbenches/pcsem/Semaphore.html - Producer / Consumer Simulation Applet
          * http://java.sun.com/docs/books/tutorial/essential/threads/synchronization.html
         === Report Specification ===
         애석하게 중대에서 그 사람수에 비해 강의가 하나밖에 없다. 그리고 요새 보통은 0,1,2 교시 수업이다; 예전 김영찬 교수님때는 모르겠지만, 황준 교수님의 경우 원래 서울여대에 있는 분이셔서, 수업 스케줄이나 준비면에서 좀 부실하시단 느낌이 든다. (특히; Report 로 내는 문제들에 대해서 Spec 에 대한 문서가 없다; 수업시간중 구두 설명정도이다.)
  • PairProgramming . . . . 2 matches
          * Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
          * 해당 시간 내 집중도의 상승, Pair Pressure - 평소 프로그래밍 외의 것(프로그래밍 중 음악듣기, 쓸데없는 웹서핑, 메일 읽기)에 대한 잡음을 없앤다. 작업 자체에만 몰두하게 해준다. ["TestDrivenDevelopment"] 와 상호작용이 빠른 언어(["Python"] 등..)를 이용하면 Feedback 이 빠르므로 집중도가 더 높아진다.
         이 때에는 Expert는 놀지말고 (-_-;) Observer의 역할에 충실한다. Junior 의 플밍하는 부분을 보면서 전체 프로그램 내의 관계와 비교해보거나, '자신이라면 어떻게 해결할까?' 등 문제를 제기해보거나, reference, 관련 소스를 준비해주는 방법이 있다.
          * ExtremeProgrammingPlanning 이라는 책을 보면 해결책을 구할 수 있을 것 같다. (Xp 책들의 장점이자 단점이라면 얇은 두께의 분책이려나.. --a)
          * 자존심문제? - Pair를 의식해서여서인지 상대적으로 Library Reference나 Tutorial Source 를 잘 안보려고 하는 경향이 있기도 하다. 해당 부분에 대해서 미리 개인적 또는 Pair로 SpikeSolution 단계를 먼저 잡고 가벼운 마음으로 시작해보는 것은 어떨까 한다.
         1002는 VNC와 넷미팅 (그때 넷미팅 화면공유시 XP가 뻗었던 관계로. -_-;) 을 이용, Python을 공유해서 다른 곳에 있는 사람과 SpikeSolution 을 VPP로 시도한 적이 있다. VNC가 화면 refresh가 느리다는 단점 빼고는 별다른 지장이 없었다. 모르는 라이브러리들을 Pair 하는 사람이 다운받아주고, 라이브러리를 설치하고. 모르는 것은 Pair 에게 물어보고, 어떻게 만들까 토론했던 경험이 좋았다.
          return new Connection();
         ["ExtremeProgramming"]
  • PatternCatalog . . . . 2 matches
         == Creational Patterns ==
          * ["ChainOfResponsibilityPattern"]
          * ["InterpreterPattern"]
          * ["Gof/ChainOfResponsibility"]
          * ["Gof/Interpreter"]
  • PrimeNumberPractice . . . . 2 matches
         #include <iostream>
          private static void PrintResult() {
          PrintResult();
  • ProgrammingLanguageClass/2006/Report3 . . . . 2 matches
         = Report 3 =
         C supports two kinds of parameter passing mode, pass-by-value and pass-byreference,
         treat the actual parameters as thunks. Whenever a formal parameter is referenced in a
         subprogram, the corresponding thunk compiled for that parameter is executed. Even
         provides a very powerful feature for some applications like a generic summation routine.
         required to prefix the keyword name just in front of both the actual and formal
         You are required to implement C preprocessor that supports the pass-by-name
         parameter-passing method. The preprocessor should transform C programs with name
         parameters into pure C programs so that the transformed programs manage to handle
         parameters prefixed with name as if they were called by name without causing any
         Requirement
         2) You are also recommended to check if Swap (x, y) does work properly or not
          real procedure sum(i, lo, hi, term);
          value lo, hi; integer i, lo, hi; real term;
          begin real temp; temp := 0;
         You should follow the guideline suggested later. To be specific, your report is
         understand what kind of data structures have been used, the characteristics and general
         as well as unique features of your program, etc. An internal documentation means the
         You are supposed to upload your source program and executable file. You are also
         required to submit a listing of your program and a set of test data of your own choice,
  • ProgrammingPartyAfterwords . . . . 2 matches
         이렇게 2시 40분까지 Requirement 와 이번 행사에 대한 설명을 마친뒤, 드디어 개발이 시작되었다.
         한편 실습실 구석에서 Mentor 1002씨가 함께한 Moa팀은 처음에 책상 하나를 두고 4명이서 서로 대화를 하면서 Requirement 를 이해해나갔다. 그러다가 중간에 2명은 Person - Elevator 의 전반적 구조를, 2명은 Elevator 알고리즘에 대해 생각을 전개해 나갔다.
          * NoSmok:StructureAndInterpretationOfComputerPrograms 에 나온 Event-Driven Simulation 방식의 회로 시뮬레이션 [http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_idx_3328 온라인텍스트]
          * Discrete-Event System Simulation : 이산 이벤트 시뮬레이션 쪽에 최고의 책으로 평가받는 베스트셀러. 어렵지도 않고, 매우 흥미로움. [http://165.194.100.2/cgi-bin/mcu240?LIBRCODE=ATSL&USERID=*&SYSDB=R&BIBNO=0000351634 도서관]에 있음
          * Seminar:ElevatorSimulation 문제, 일반적인 discrete event simulation 패턴 소개 등
  • ProjectPrometheus/EngineeringTask . . . . 2 matches
         || ViewBook Linker 만들기 (and register as a service) ||
          * 검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다.
         || view, light review, heavy review 혼합테스트 || ○ ||
          * Review 의 내용을 수정/삭제 할 수 있다.
  • ProjectPrometheus/Estimation . . . . 2 matches
          * 도서관(ref)
         Recomendation System 2
          * Recommendation
  • PyIde/BicycleRepairMan분석 . . . . 2 matches
         BicycleRepairMan_Idle.py 가 실마리가 될것 같다. VIM이나 Idle 통합부분의 경우 BRM에서의 facade를 사용한다.
         코드 분석방법에서 Eclipse 의 Ctrl + Alt + H 를 눌렀을때 나오는 Method call hierarchy 기능으로 코드를 읽어나가는 것이 유용하다는 점을 알아내었다. StepwiseRefinement 를 역순으로 따라가는 느낌이랄까.
  • PyIde/Scintilla . . . . 2 matches
         Scintilla 관련 참조 도큐먼트들. (Refactoring 필요)
         GetCurrentPos()
         === Refactor 할 것들 ===
         SetCurrentPos(PositionFromLine(start))
         SetCurrentPos(aPos)
         pos = GetCurrentPos()
          SetCurrentPos(newpos)
  • RSS . . . . 2 matches
         The technology behind RSS allows you to subscribe to websites that have provided RSS feeds, these are typically sites that change or add content regularly. To use this technology you need to set up some type of aggregation service. Think of this aggregation service as your personal mailbox. You then have to subscribe to the sites that you want to get updates on. Unlike typical subscriptions to pulp-based newspapers and magazines, your RSS subscriptions are free, but they typically only give you a line or two of each article or post along with a link to the full article or post.
         The RSS formats provide web content or summaries of web content together with links to the full versions of the content, and other meta-data. This information is delivered as an XML file called RSS feed, webfeed, RSS stream, or RSS channel. In addition to facilitating syndication, RSS allows a website's frequent readers to track updates on the site using a news aggregator.
         Before RSS, several similar formats already existed for syndication, but none achieved widespread popularity or are still in common use today, and most were envisioned to work only with a single service. For example, in 1997 Microsoft created Channel Definition Format for the Active Channel feature of Internet Explorer 4.0. Another was created by Dave Winer of UserLand Software. He had designed his own XML syndication format for use on his Scripting News weblog, which was also introduced in 1997 [1].
         RDF Site Summary, the first version of RSS, was created by Dan Libby of Netscape in March 1999 for use on the My Netscape portal. This version became known as RSS 0.9. In July 1999 Netscape produced a prototype, tentatively named RSS 0.91, RSS standing for Rich Site Summary, this was a compromise with their customers who argued the complexity introduced (as XML namespaces) was unnecessary. This they considered a interim measure, with Libby suggesting an RSS 1.0-like format through the so-called Futures Document [2].
         Soon afterwards, Netscape lost interest in RSS, leaving the format without an owner, just as it was becoming widely used. A working group and mailing list, RSS-DEV, was set up by various users to continue its development. At the same time, Winer posted a modified version of the RSS 0.91 specification - it was already in use in their products. Since neither side had any official claim on the name or the format, arguments raged whenever either side claimed RSS as its own, creating what became known as the RSS fork. [3]
         The RSS-DEV group went on to produce RSS 1.0 in December 2000. Like RSS 0.9 (but not 0.91) this was based on the RDF specifications, but was more modular, with many of the terms coming from standard metadata vocabularies such as Dublin Core. Nineteen days later, Winer released RSS 0.92, a minor and (mostly) compatible revision of RSS 0.91. The next two years saw various minor revisions of the Userland branch of RSS, and its adoption by major media organizations, including The New York Times.
         Winer published RSS 2.0 in 2002, emphasizing "Really Simple Syndication" as the meaning of the three-letter abbreviation. RSS 2.0 remained largely compatible with RSS 0.92, and added the ability to add extension elements in their own namespaces. In 2003, Winer and Userland Software assigned ownership of the RSS 2.0 specification to his then workplace, Harvard's Berkman Center for the Internet & Society.
         = Related Site =
         [http://web.resource.org/rss/1.0/ RSS 1,0 Spec]
  • RedThon/HelloWorld과제 . . . . 2 matches
          === Redmoon ===
         [RedThon]
  • RedundantPower . . . . 2 matches
         ups 는 정전이나 순간적인 전력의 약화 시에 ups 안의 내부 전력을 이용하여 컴퓨터의 정상 동작을 보증하지만 Redundant Power 시스템은 Power Suply 를 병렬로 연결하여, 하나의 Power 가 고장 났을 때, 병렬로 연결된 Redundant 로 전원을 계속 공급함으로써 컴퓨터의 정상 동작을 보증한다.
         보통 서버급 컴퓨터에서는 ups 와 redundant power 가 둘 다 쓰이는 편이다. 왜냐하면, redundant power 를 사용하더라도 정전 등의 이유로 전원이 아예 나가버리면 컴퓨터가 작동을 중단하고, 설사 ups 가 있더라도, power suply 자체가 오류를 일으킬 소지가 있기 때문이다.
         극단적인 예로, redundant power 를 사용시에, 한쪽의 파워를 강제 연결 해지해버려도 컴퓨터는 멀쩡히 잘 동작한다.
  • Refactoring/BigRefactorings . . . . 2 matches
         = Chapter 12 Big Refactorings =
          * You have an inheritance hierarchy that is doing two jobs at once.[[BR]]''Create two hierarchies and use delegation to invoke one from the other.''
         http://zeropage.org/~reset/zb/data/TeaseApartInheritance.gif
          * You have code written in a procedural style.[[BR]]''Turn the date records into objects, break up the behavior, and move the behavior to the objects.''
         http://zeropage.org/~reset/zb/data/ConvertProceduralDesignToObjects.gif
         == Separate Domain from Presentation ==
         http://zeropage.org/~reset/zb/data/SeparateDomainFromPresentation.gif
          * You have a class that is doing too much work, at least in part through many conditional statements.[[BR]]''Create a hierarchy of classes in which each subclass represents a special case.''
         http://zeropage.org/~reset/zb/data/ExtractHierarchy.gif
         ["Refactoring"]
  • Release Planning . . . . 2 matches
         Rename : ReleasePlanning 으로 이름변경합니다.
  • ReverseAndAdd/Celfin . . . . 2 matches
         #include <iostream>
         void getReverseAndAdd()
          getReverseAndAdd();
          return 0;
  • ReverseAndAdd/정수민 . . . . 2 matches
         Describe ReverseAndAdd/정수민 here.
          break
         [ReverseAndAdd]
  • STL . . . . 2 matches
         C++ 의 [GenericProgramming] 기법인 Template 을 이용, container (["DataStructure"] class. 다른 언어에서의 Collection class 들에 해당) 와 [Algorithm|algorithm] 에 대해 구축해놓은 라이브러리.
          * [STL/remove_copy] : -
          * ["STL/VectorCapacityAndReserve"] : Vector 의 Capacity 변화 추이
         === Thread ===
          DeleteMe) 인수가 가진 모든 STL 페이지 ["Refactoring"] (예제가 그 자체로만으로 돌아가나 컴파일. 이모티콘과 잡담 모두 빼서, Document Mode로 만들기, 쉬운말, 쉬운 예제로 고치기) 결과 ["인수"]의 모든 STL 페이지 사라짐(피바람);;
  • STLErrorDecryptor . . . . 2 matches
         = Before Reading =
         Upload:CL2Rename.gif
         Upload:ProxyCLConfigure.gif
          return 0;
          ****** {BD Software Proxy CL v2.26} STL Message Decryption is Off ******
         h:\MyProgrammingLab\JunkRoom\Weired_C++\Test.cpp(6) :
          ****** {BD Software Proxy CL v2.26} STL Message Decryption is ON! ******
         h:\MyProgrammingLab\JunkRoom\Weired_C++\Test.cpp(6):
  • SVN 사용법 . . . . 2 matches
         2. refo brower 선택 -> 해당 파일 선택 후 -> Delete
         3. RefoBrower
         == Reference ==
         == Thread ==
  • SWEBOK . . . . 2 matches
         [http://object.cau.ac.kr/selab/lecture/undergrad/20021/참고자료/SWEBOKv095.pdf SWEBOK] - Software Engineering Body of Knowledge
          * SWEBOK 은 이론 개론서에 속하며 마치 지도와도 같은 책이다. SWEBOK 에서는 해당 SE 관련 지식에 대해 구체적으로 가르쳐주진 않는다. SWEBOK 는 해당 SE 관련 Knowledge Area 에 대한 개론서이며, 해당 분야에 대한 실질적인 지식을 위해서는 같이 나와있는 Reference들을 읽을 필요가 있다. (Reference를 보면 대부분의 유명하다 싶은 책들은 다 나와있다. -_-;) --석천
  • SeminarHowToProgramIt/Pipe/vendingmachine.py . . . . 2 matches
          self.reset()
          def reset(self):
          def getCurrentMoney(self):
          return self.account
          def getCurrentDispenser(self):
          return self.dispenser
          def getCurrentButton(self):
          return self.button
          return self.account == aMoney
          return self.button == aButton
          def rejectLever(self):
          returnMoney = self.account
          return returnMoney
          return self.dispenser == aKind
          self.assertEquals(expected, vm.getCurrentMoney())
          self.assertEquals(expected, vm.getCurrentButton())
          self.assertEquals(expected, vm.getCurrentDispenser())
          self.assertEquals(expected, vm.getCurrentButton())
          self.assertEquals(expected, vm.getCurrentDispenser())
          def testRejectLever(self):
  • SpiralArray/Leonardong . . . . 2 matches
         TDD로 풀었다는 점이 기쁘다. 처음부터 너무 메서드를 어디에 속하게 할 지 고민하지 않고 시작한 것이 유용했다. 그 결과로 예전 같으면 생각하지 못했을 Direction클래스와 그 하위 클래스가 탄생했다. 또한 행렬은 최종 결과물을 저장하고 보여주는 일종의 뷰처럼 쓰였다.
         현재는 행렬 구성이 비효율적이다. 움직였던 기록을 가지고 행렬을 구성하기를 반복한다.이것을 수정할 때 좀더 효율적으로 작동하게 만들어야겠다. Mover클래스, Array클래스의 종료검사, 테스트 케이스는 확실히 Refactoring이 필요하다.
         class Direction:
          return coordinate
          return self.next(coordinate)
         class Down(Direction):
          return (coordinate[ROW] + 1, coordinate[COL])
         class Up( Direction ):
          return (coordinate[ROW] - 1, coordinate[COL])
         class Right(Direction):
          return (coordinate[ROW], coordinate[COL] + 1 )
         class Left(Direction):
          return (coordinate[ROW], coordinate[COL] - 1 )
          return True
          return True
          return True
          return True
          return False
          def decreaseBoundary(self, amount):
          return self.coordinate
  • Spring/탐험스터디/2011 . . . . 2 matches
          1.1 RESTful : 이기종간 통신. RESTful 웹서비스는 리소스 URI를 알면 웹서버와 웹클라이언트의 종류에 상관없이 HTTP 프로토콜만으로 접근 가능한 서비스라 할 수 있다. 리소스 하나에 하나의 URL을 할당해놓았다.
          리소스 함수의 4가지 method : CRUD(Create, Read, Update, Delete)
          1.3 Resttemplate : spring에서 RESTful에 접근하기 위한 template. spring에서 데이터를 받아오는 방법.
          - HomeController.java의 home()에서 Welcome home!을 하고 return "home";을 하는데 프로젝트를 실행해보면 Hello world!가 나온다. 어떻게 된 것인가.
          - HomeController는 MVC 모델의 컨트롤러로 뷰에 모델을 바인딩하는 역할을 담당한다. home() 메소드 내부의 Welcome home!은 logger에 찍히는 문자열이기 때문에 실제로 실행시에 보이는 것은 아니다. HomeController가 하는 주된 역할은 return "home";을 함으로써 HomeController를 사용하는 쪽에서 home.jsp(뷰)를 찾을 수 있게 하는 것이다.
          2.1. 우선 책에서 외부 라이브러리를 사용하고 있는데, STS에는 필요한 라이브러리가 들어있지 않은 것 같다. 이쪽 페이지(http://www.tutorials4u.net/spring-tutorial/spring_install.html)를 보고 라이브러리를 받아야 한다. 받아서 압축을 풀고 spring-framework-3.0.5.RELEASE/dist 폴더에 있는 jar 파일들을 프로젝트에 포함시켜주면 AnnotationContext, AnnotationConfigApplicationContext, @Configuration, @Bean 등을 사용할 수 있게 된다.
          1. 책 1장에서 Statement와 PreparedStatement를 봤는데 두 개의 차이점을 잘 모르겠다.
         spring-framework-3.0.5.RELEASE/dist 폴더에 있는 jar 파일들을 프로젝트에 포함시켰는데,
         Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
          ... 5 more
  • StephaneDucasse . . . . 2 matches
         OORP(ObjectOrientedReengineeringPatterns) 의 저자중 한명.
         Refactoring 책에서 acknowledgement 를 읽던중 StephaneDucasse 이름을 보게 되었다. 이전이라면 저 이름을 그냥 지나쳤을텐데. 신기하다. --[1002]
  • Steps/조현태 . . . . 2 matches
         #include <iostream>
         bool IsCanResize(int* targetNumber)
          return TRUE;
          return FALSE;
          for (register int i = 1; i < (int)initNumbers.size(); ++i)
          if (i < (int)initNumbers.size() - 2 && IsCanResize(&initNumbers[i]))
          return GetNumbersSize(makedNumbers);
          return makedNumbers.size();
          for (register int j = startNumber; j < endNumber; ++j)
  • Steps/하기웅 . . . . 2 matches
         #include <iostream>
         int showResult(int number)
          return 0;
          return 2*sqrtNum;
          return 2*sqrtNum+1;
          cout << showResult(y-x) << endl;
          return 0;
  • SummationOfFourPrimes/1002 . . . . 2 matches
          return
          self.resultTable = []
          self.createList()
          def createList(self):
          self.resultTable.append(i)
          for eachValue in self.resultTable:
          return False
          return True
          return self.resultTable
         from __future__ import generators
          self.resultTable = []
          self.createList()
          def createList(self):
          self.resultTable.append(i)
          for eachValue in self.resultTable:
          return False
          return True
          return self.resultTable
          return
          1 0.075 0.075 1.201 1.201 summationoffourprimes.py:13(createList)
  • TheGrandDinner/조현태 . . . . 2 matches
         #include <iostream>
         char* InputBaseData(char* readData, vector<SNumberAndPosition>& tableSize, vector<SNumberAndPosition>& teamSize)
          sscanf(readData, "%d %d", &numberOfTeam, &numberOfTable);
          readData = strchr(readData, '\n') + 1;
          return NULL;
          for (register int i = 0; i < numberOfTeam; ++i)
          readData = strchr(readData, ' ') + 1;
          sscanf(readData, "%d", &buffer);
          readData = strchr(readData, '\n') + 1;
          for (register int i = 0; i < numberOfTable; ++i)
          readData = strchr(readData, ' ') + 1;
          sscanf(readData, "%d", &buffer);
          return strchr(readData, '\n') + 1;
          return one.number > another.number;
         void CalculateAndPrintResult(vector<SNumberAndPosition>& tableSize, vector<SNumberAndPosition>& teamSize)
          for (register int i = 0; i < (int)tableSize.size(); ++i)
          for (register int i = 0; i < (int)teamSize.size(); ++i)
          return ;
          return ;
          teamTableNumber.resize(teamSize.size());
  • TheOthers . . . . 2 matches
          * GUI와 Access DB를 이용한 Weekly Report Manager
          * Weekly Report Manager? 주로 회사 같은 데서 많이 쓰는 금주 했던 일에 대한 결산 레포트이다. 어느 일을 몇시부터 몇시까지 했으며, 그 일의 종류는 무엇이며, 주별로 통계를 내어, 어느 프로젝트에 몇시간을 투자했고 자기개발에 몇시간을 투자했는지 등등을 적어 회계용도로 쓰이기도 한다.
         == Thread ==
  • TicTacToe/임민수,하욱주 . . . . 2 matches
          repaint();
          repaint();
          g.fillRect(0,0,size.width, size.height);
          g.drawRect(100 * j, 100 * i, 100, 100);
  • TortoiseSVN/IgnorePattern . . . . 2 matches
         */debug *\debug */Debug *\Debug */Release *\Release */release *\release *.obj *.pdb *.pch *.ncb *.suo *.bak *.tmp *.~ml *.class Thumbs.db *.o *.exec ~*.* *.~*
  • TugOfWar/남상협 . . . . 2 matches
          def solutionOfTwoRemain(self,numbers):
          def compare(self):
          def removeUsedNumber(self,numbers):
          self.solutionOfTwoRemain(numbers)
          return self.sum
          self.compare()
          self.removeUsedNumber(numbers)
          return self.sum
  • VimSettingForPython . . . . 2 matches
         === BicycleRepairMan ===
         Python extension 을 설치하고 난뒤, BicycleRepairMan 을 install 한다. 그리고 BRM 의 압축화일에 ide-integration/bike.vim 을 VIM 설치 디렉토리에 적절히 복사해준다.
         let g:bike_progress = 1
         set ai showmatch hidden incsearch ignorecase smartcase smartindent hlsearch
         set fileencoding=korea
         let g:EnhCommentifyPretty = "yes"
         let g:bike_progress = 1
  • VonNeumannAirport/Leonardong . . . . 2 matches
          return self.matrix[origin-1][destination-1]
          return self.getElement( origin, destination )
          return self.getElement( origin, destination )
          result = 0
          result += distance.getDistance(origin, dest)\
          return result
          def testReversalDistance(self):
          def testReal(self):
  • WikiProjectHistory . . . . 2 matches
         || ["ExtremeProgramming"] || ["1002"] || 2002.1.9~1.31. ExtremeProgramming 에 대한 개념이해 & 정리 ||종료||
         || ["MoreEffectiveC++"] || ["neocoin"] || 2002.1.14~3.8 '''More Effective C++''' 예제 중심 한글화 || 종료 ||
         || ["DataStructure"] || ["[Lovely]boy^_^"] || 자료구조! 목표달성! || 종료 ||
         || ["D3D"] || ["erunc0"], ["woodpage"] || "Advanced 3D Game Programming using DirectX"|| 유보 ||
         || ["DirectDraw"] || ["snowflower"] || 유보인양 하며 진행중인..ㅡㅡa || 유보 ||
         || ["Refactoring"] || ["neocoin"], ["1002"] || 책요약 "Refactoring"의 요약 || 유보 ||
         || ["PatternOrientedSoftwareArchitecture"] || ["상협"],["[Lovely]boy^_^"] || 책에서 본거 간단하게 정리 || 유보 ||
  • XMLStudy_2002/Resource . . . . 2 matches
          *국내 XML 메일링 리스트 : [http://dblab.comeng.chungnam.ac.kr/~dolphin/xml/korean/mailinglist.html]
          *Netscape 6 Preview 2
          *XML Software의 XML Editor 페이지 : [http://xmlsoftware.com/editors/]
          *Robin Cover's XML Software : [http://www.oasis-open.org/cover/xml.html#xmlSoftware]
          *XML Software의 XML Parsers/Processors 홈페이지 : XML 파서와 파싱 및 DOM이나 SAX를 지원하는 XML 프로세서에 대한 간단한 설명과 라이센스 상태와 다운로드 받을수 있거나 또는 해당 프로세서의 메인 페이지로 이동할 수 있는 링크를 포함 하고 있다. 수십개 이상의 프로세서에 대한 정보가 있어 거의 모든 파서를 찾을 수 있다. [http://www.xmlsoftware.com/parsers/]
          *XML.com의 Resource Guide 중 XML Parsers : 여기에서도 여러 파서들에 대한 목록을 제공한다. 목록에서는 각 파서에 대한 설명이 간단하게 되어 있지만, 각 파서 이름을 클릭하면, XML.com의 Editor 중의 한 사람인 Lisa Rein이 평가한 내용들이 기술되어 있고, 해당 파서의 메인 페이지나 다운로드 페이지로 이동할 수 있는 링크를 포함하고 있다. [http://www.xml.com/pub/Guide/XML_Parsers]
  • XMLStudy_2002/Start . . . . 2 matches
         [<!ELEMENT MAIL (SUBJECT,SENDER,RECEIVER,BODY,SIGNATURE)>
         <!ELEMENT SENDER (NAME,ADDRESS)>
         <!ELEMENT RECEIVER (NAME,ADDRESS)>
         <!ELEMENT SIGNATURE (#PCDATA)>
         <!ELEMENT ADDRESS (#PCDATA)>
         <!ATTLIST ADDRESS TYPE (office|home|e-mail) 'e-mail'>
         <ADDRESS TYPE="home">서울 강남구 서초동 000번지</ADDRESS>
         <RECEIVER>
         <ADDRESS TYPE="office">대전 유성구 만년동 111번지</ADDRESS>
         </RECEIVER>
         <SIGNATURE>
         </SIGNATURE>
         <?xml-stylesheet type="text/xsl" href="price7.xsl"?>
          *href : 사용할 스타일 시트 파일의 위치를 기술
         1. MAIL 엘리먼트에는 SUBJECT,SENDER,RECEIVER,BODY,SIGNATUER 엘리먼트가 순서대로 위치하는데 ,다른 엘리먼트들은 단 한번 위치하지만 RECEIVER 엘리먼트는 1개 이상 올수 있으며, SIGNATURE 엘리먼트는 한 번 나오거나 또는 사용하지 않아도 되는 예
         <!ELEMENT MAIL (SUBJECT,SENDER,(RECEIVER)+,BODY,(SIGNATURE)?)>
         4. SIGNATURE 엘리먼트에 PCDATA가 위치하는 예
         <!ELEMENT SIGNATURE (#PCDATA)>
          * XML 문서에서 엔티티를 사용하는 방식(Entity Reference)
         <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements -->
  • XMLStudy_2002/XML+CSS . . . . 2 matches
         <?xml-stylesheet type="text/css" href="mydoc.css"?>
          *그리고 위와 같이 HTML 네임 스페이스를 지정한 경우에는 <HTML : A> 뿐 아니라 다른 HTML의 태그들도 HTML 네임 스페이스의 Prefix를 붙여 사용할 수있다.
         <HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp">How to Write a CSS StyleSheet for Browsing XML</HTML:A>
         <?xml-stylesheet type="text/css" href="mydoc.css"?>
          <EMAIL><HTML:A href="mailto:jiyuns@netsgo.com">jiyuns@netsgo.com</HTML:A>
         <PA>< ?xml-stylesheet type="text/css" href="mydoc.css"? > </PA>
         <PA>< ?xml-stylesheet type="text/xsl" href="mydoc.xsl"? > </PA>
         <PA> <HTML:A href="mydoc_itself.xml">참고</HTML:A>
         <PA> <HTML:A href="mydoc_nostyle.xml">참고</HTML:A> :
         <LCOMPO>(1) <HTML:A href="mydoc_itself.xml">실제 XML 문서 보기</HTML:A></LCOMPO>
         <LCOMPO>(2) <HTML:A href="mydoc_nostyle.xml">스타일이 지정안된 문서 보기(IE5.0의 raw style)</HTML:A></LCOMPO>
         <LCOMPO>(3) <HTML:A href="mydoc_style.xml">이 XML 문서가 사용하는 CSS로 작성된 스타일시트 보기</HTML:A></LCOMPO>
         <LCOMPO>(4) <HTML:A href="mydoc_dtd.xml">이 XML 문서가 사용하는 DTD 보기</HTML:A></LCOMPO>
         <HTML:A href = "xml_hlink.xml">여기</HTML:A>에 설명되어있다.</PA>
         <MTITLE>5. Refereces</MTITLE>
         [1]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-css.asp ">
         [2]<HTML:A href="http://msdn.microsoft.com/xml/xslguide/browsing-overview.asp">
         Browsing XML Documents in Internet Explorer 5</HTML:A>
         [3]<HTML:A href="http://msdn.microsoft.com/xml/samples/review/review-css.xml">
         MSDN에서 제공하는 CSS사용 XML 문서 예제</HTML:A>(IE5.0 required)
  • XpWeek/20041221 . . . . 2 matches
         아침에 TDD하면서 [Refactoring]이 만만치 않다는 생각을 했다. 생각보다 PlanningGame이 오래 걸려 지루한 느낌과 지친다는 느낌을 받았다. 고객의 입장일 때 내가 뭘 원하는지 명확하지 않았다. 그래도 내일은 왠지 잘 될 것만 같다.
         TDD 경험하면서 test class의 Refactoring을 어떻게 해야 될지 모르겠다. test 코드라 굳이 할 필요성을 못 느꼈고 테스트만 하면 된다는 생각이 들었기 때문이다. 인원이 적어서 고객과 개발자의 역할을 번갈아가면서 했는데 개발하기 쉬운 방향으로 생각을 이끌어나가는 것 같았다. 입장을 명확히 한 후 생각을 정리하고 표현해야겠다. 회의가 길어지면서 나타난 의욕상실이 아쉬웠다.
  • Yggdrasil/가속된씨플플 . . . . 2 matches
          * [Refactoring]은 중간중간에 계속 해주는 것이 도움이 되었습니다. 계속 다르게 진행하면 소스를 통합하기가 매우 힘들어 지죠. NoSmok:문서구조조정 마찬가지 같습니다. [위키요정]에서 말하는 정원일과 비슷하지 않을까요? 쓸말이 없다면, 지금 페이지들을 지우는 것도 좋은 방법입니다. 어차피 차후에 '내가 했다.'라는 것은 자신만이 알면 되지요. --NeoCoin
         예를들어, [STL]의 모든 하위페이지, EffectiveSTL의 하위 페이지들은 기존에 ZeroWikian 들의 개인 하위 페이지에 국한되어 있었습니다. 예를들어, {{{~cpp NeoCoin/STL}}} ExtremeSlayer/Vector 식으로 말이지요. 이것들을 [페이지다듬기]를 통해서 통합하고 기존 페이지들을 지워서, 한곳에 완전한 문서로 만들었습니다.
         지금 하는 작업들도 그렇게 될수 있겠지요. 마치 긴 프로그래밍 소스가 [Refactoring]을 통해서 짧아 지는것 처럼 말이지요.
  • Z&D토론/학회현황 . . . . 2 matches
         ZeroPage 의 경우는 일단 01에 관해서는 MFCStudy팀 초기 1회만 참석, 그리고 정모 미참석, 이후 아무런 언급이 없는 사람을 제하고 말한 것이므로, 그외 인원의 추가사항도 언급 부탁드립니다. 그리고 데블스의 경우도 통합시의 전체 Resource 파악이라는 면에서, 통합뒤 실질적인 운영을 주도하는 사람들 위주로 적어주시기 바랍니다.
         DeleteMe) ZeroPage 도 OB 회원님들 다 적을까요? 겹치시는 분들도 많고 (01 중에서도 또한 같은 현상). 그리고 위에서도 언급했지만, 통합시의 전체 Resource 에 대한 파악이라고 할 때, 통합 뒤의 학회를 실질적인 운영을 주도하는 사람들 위주로 적는게 낫지 않을까 생각해봅니다. (휴학, 군복무를 표시한 이유도 같은 이유입니다.) -- 석천
  • Z&D토론백업 . . . . 2 matches
          * 위키 스타일에 익숙하지 않으시다면, 도움말을 약간만 시간내어서 읽어주세요. 이 페이지의 편집은 이 페이지 가장 최 하단에 있는 'EditText' 를 누르시면 됩니다. (다른 사람들의 글 지우지 쓰지 않으셔도 됩니다. ^^; 그냥 중간부분에 글을 추가해주시면 됩니다. 기존 내용에 대한 요약정리를 중간중간에 해주셔도 좋습니다.) 정 불편하시다면 (위키를 선택한 것 자체가 '툴의 익숙함정도에 대한 접근성의 폭력' 이라고까지 생각되신다면, 위키를 Only DocumentMode 로 두고, 다른 곳에서 ThreadMode 토론을 열 수도 있겠습니다.)
         = Thread 토론중 =
          *제가 말씀드린 ''고학번이 주도적인 프로젝트 운영''이라는 것이 생각난건 99년에 과거 전시회 자료를 뒤져 볼때 였습니다. 전시회 참여 작품중에 무엇가 '대단한걸~' 하고 느끼는 많은 부분이 3학년과 4학년의 작품이고, 1,2학년의 작품이라면 3,4학년의 도움이 있는 작품들이 많았습니다. 위 글에도 잠깐 언급했지만, 인터넷과 함께 학생들이 접할수 있는 주제의 다양성 때문에 3,4학년 이라도 완전히 방향을 잡은 사람은 소수입니다. 하지만 분명 1,2학년에 비하여 그 질이 높아진 것은 분명하죠. 일단 고학번 혹은 고학년 주도적인 프로젝트의 의미는 단순히 고학년의 2명 이상의 프로젝트 활동이 좀더 활성화 되어야 한다는 생각에서 언급을 한것입니다. 군입대를 마치고 왔거나, 병특 이후에 복학한 회원들이 단체로 프로젝트를 추진하는것을 아직 보지 못했습니다. zp의 정모 토론에서 꾸준히 제기되어 왔던 이야기는 개인 스터디이고, 이중에 학회의 양에 부정적 영향을 끼치는건 1학년의 관리 부실과 개인 스터디이고, 2학년의 개인 스터디는 학회의 양과 질에 둘다 부정적 영향을 끼치는 것 같고, 학회의 질에 부정적 영향을 끼치는건 3,4학년의 개인 스터디이라고 생각합니다. 프로젝트의 용이성과, 개인 스터디에 해당하는 Semi project와 관심분야를 공개하는 개인 페이지로 다른 사람의 참여의 유도를 해서 Regular project로 만들어 나가려는 토양의 제공을 위해 현 zp에서는 위키를 통한 프로젝트 추진을 장려하고 있으며, 이제 저도 고학년에 고학번이니 쿨럭 열심히 해야죠. ^^;; '''주도적'''의 표현에서는 저학년이 고학년의 프로젝트 모습을 보면서 관심분야를 넓히고, 안목을 익히는데 있습니다. 물론 같이 하는것이 주도적의 마지막 종착점이고, 예를 들자면 현재 OS 만들기를 하고 게시는 선배님 위키에, 관심있는 00들이 접근하는것이라고 할수 있죠. -- 상민
         이 페이지에서 학회의 발전 방안이나 진짜로 중요한것은... 과 같은 주제의 글들은 새로운 페이지 하나로 옮겨져서(다큐먼트 모드로) 정리되었으면 합니다. RefactorMe !!!
  • ZIM . . . . 2 matches
          * ["ZIM/RealUseCase"] (by 시스템 아키텍트)
          * ["ZIM/UIPrototype"] (Window&Reports) (by 패키지 개발팀)
          * Architecture package Diagram (by 시스템 아키텍트)
         ==== Software ====
          * 개발툴 : JCreator
         ==== Hardware ====
  • ZIM/CRCCard . . . . 2 matches
         || 화일 송신 / 수신 요청 & 수락|| FileSender, FileReceiver ||
         |||||| FileReceiver ||
  • ZeroPageServer/Log . . . . 2 matches
          * Q : domain 에 관련된 문의입니다.. ["ZeroPageServer"] 에서는 user.domain 으로 자신의 home directory 에 접근할 수 없습니까.? 또 이것은 관련없는 질문인데..-_- 저렇게 셋팅을 하려면 어떻게 해야하죠.. named.conf 랑.. /var/named 에서 관련파일 다 수정했는데도... username.domain.com 에 접속을 하니.. www.domain.com 에 접속이 되는군요..-_- - ["임인택"]
          * Q : 현재 ZeroPage의 서블릿컨테이너가 사흘이 멀다하고(좀 부풀려서 ^^) 운명을 달리하시는데, 데비안 버전의 Resin 문제인건가요? 아니면 파악된 다른 원인이 있습니까? 현재 2.1.6 버전이 나와있던데, 업그레이드해볼 계획이 있나요? 또는, 다른 서블릿 컨테이너를 사용해보는건 어떤가요? Resin 2.0 대 기준으로 스트레스 테스트시 죽는 일은 있었습니다. 누군가 ZeroPageServer에 스트레스테스트를 하고 있나요?
          ''간단한 resin log analyzer를 만들어두었습니다. admin 안쪽 RLA.jsp로 확인바랍니다. 참, resin이 root 계정으로 동작하던데, 권한을 바꾸길 바랍니다. (권한을 바꿔줄때, 그 부산물 - jsp가 컴파일된 자바 소스나 클래스등 - 도 함께 권한을 바꿔줘야 합니다.)''
  • ZeroPageServer/old . . . . 2 matches
          올초에 상민이형께서 서버를 다시 설치하신것으로 알고 있습니다.. 배포본은 아마.. FreeBSD 였던걸로 기억... - [임인택]
          * (V) 자유게시판 변화->RecentChanges 에 반영
          * (V) Resin 과 Apache2 연동 -> Apache/1.3.29 로 변경후 resin 기존 모듈 적재로 해결
          * Proxy Server 세팅 - 학교 외부에서 [IeeeComputer], [IeeeSoftware] 를 보게 해준다.
         === Thread ===
  • [Lovely]boy^_^/EnglishGrammer . . . . 2 matches
         = Present and Past =
          * ["[Lovely]boy^_^/EnglishGrammer/PresentAndPast"]
         = Present Perfect and Past =
          * ["[Lovely]boy^_^/EnglishGrammer/PresentPerfectAndPast"]
         = Future =
         = Reported Speech =
          * ["[Lovely]boy^_^/EnglishGrammer/ReportedSpeech"]
  • eXtensibleStylesheetLanguageTransformations . . . . 2 matches
         Extensible Stylesheet Language Transformations, or XSLT, is an XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents.
         XSLT was produced as a result of the Extensible Stylesheet Language (XSL) development effort within W3C during 1998–1999, which also produced XSL Formatting Objects (XSL-FO) and the XML Path Language, XPath. The editor of the first version (and in effect the chief designer of the language) was James Clark. The version most widely used today is XSLT 1.0, which was published as a Recommendation by the W3C on 16 November 1999. A greatly expanded version 2.0, under the editorship of Michael Kay, reached the status of a Candidate Recommendation from W3C on 3 November 2005.
         = related =
         = thread =
  • html5/canvas . . . . 2 matches
          * IE를 제외한 모든 주요 브라우저(?)에서 사용할 수 있는 기능. IE에서 사용하고 싶으면 Explorer Canvas, uuCanfas.js 등의 라이브러리를 사용하여 제한적 기능으로 사용할 수 있다.
          * stroke(), strokeRect() 등을 이용하여 그린 선의 색이나 스타일을 지정한다.
          * fill(), fillRect() 등을 이용하여 그린 선의 색이나 스타일을 지정한다.
          * restore()
          * save()로 저장한 상태는 스택에 쌓이고 restore()를 호출할때마다 스택의 탑에서부터 상태를 불러온다.
          * [http://efreedom.com/Question/1-3684492/Html5-Canvas-Framerate framerate 측정 코드]
  • html5/others-api . . . . 2 matches
         == figure ==
          * http://blog.naver.com/zimny327?Redirect=Log&logNo=90092307426
          * http://cafe.naver.com/tonkjsp.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1727
  • html5practice/계층형자료구조그리기 . . . . 2 matches
         function roundRect(ctx, x, y, width, height, radius, fill, stroke) {
         function measureNode(node){
          return node.height;
          node.height += measureNode(node.child[i]);
          return node.height;
          // calc rect
          var calcRt = ctx.measureText(node.text);
          // draw rect
          roundRect(ctx, x-NodePaddingW, y-NodePaddingH, calcRt.width + NodePaddingW*2, NodeFontHeight + NodePaddingH*2, NodeRadius, true, true);
          return NodeFontHeight + NodePaddingH * 2 + NodeMarginH * 2;
          return;
          console.log("measure node start");
          measureNode(RootNode);
  • naneunji . . . . 2 matches
         === Reading ===
          ["naneunji/Read"]
          * ["MagicSquare"]
  • neocoin/Read/5-6 . . . . 2 matches
         ["neocoin/Read"]/5-6
         ["neocoin/Read"]/5-6
  • radiohead4us/SQLPractice . . . . 2 matches
         1. Find the names of all branches in the loan relation. (4.2.1 The select Clause)
         2. Find all loan numbers for loans made at the Perryridge branch with loan amounts greater that $1200. (4.2.2 The where Clause)
         6. Find the names of all branches that have assets greater than at least one branch located in Brooklyn. (4.2.5 Tuple Variables)
         7. Find the names of all customers whose street address includes the substring 'Main'. (4.2.6 String Operations)
         8. Find the average account balance at each branch. (4.4 Aggregate Functions)
         9. Find the number of depositors for each branch. (4.4 Aggregate Functions)
         10. Find the average balance for all accounts. (4.4 Aggregate Functions)
         11. Find the average balance for each customer who lives in Harrison and has at least three accounts. (4.4 Aggregate Functions)
         14. Find the names of all branches that have assets greater than those of at least one branch located in Brooklyn. (4.6.2 Set Comparison)
         16. Find all customers who have both an account and a loan at the bank. (4.6.3 Test for Empty Relations)
         17. Find all customers who have an account at all the branches located in Brooklyn. (4.6.3 Test for Empty Relations)
  • woodpage/VisualC++HotKeyTip . . . . 2 matches
          *다이얼로그 편집하는 부분에서 Ctrl + T를 누르면 미리보기가 된다. 왼쪽 밑에 Ready 위에 레바같은걸 당겨도 됨
          *BrowseGotoReference라고 함 함수는 선언된곳으로 감 예를 들어 클래스 맴버 함수면 클래스 header로 감
  • 강성현 . . . . 2 matches
          * ACM-ICPC Asia-Daejeon Regional 2013 본선 (11.1 - 11.2)
          * ACM-ICPC Asia-Daejeon Regional 2012 본선 38위, 교내 1위 (11.1 - 11.2)
          * 동네팀에서 만든 CAUCSE Cuarenta Project
          * [Ruby/2011년스터디] 의 공유 차원에서 진행. 시간이 빠듯해서 대충 진행한 것 같아 아쉬움. [https://docs.google.com/presentation/d/1ld_NTuqaEF4OIY2_f4_2WhzF57S6axgxnMLf3LMcvrM/pub?start=false&loop=false&delayms=3000 발표자료]
         var array = text.replace(/\r\n|\r|\n/, ' ').split(' ').sort();
  • 고한종 . . . . 2 matches
         >MySql, hapi.js, React, Node, Socket.io 입니다.
         >Mongo, Redis 사용 경험 있습니다.
         - [고한종/업적/Math-Explorer] (...)
          * 근데 이거 덕분에 JAVA로 작업할때는 모든 것을 얕은 복사라고 생각해야 한다는 것을 발견함. 아니 ArrayList에서 빼고 싶어서 빼버리라고 하면, 다른 ArrayList에서도 빠져버리는 건데?! (Objective-C 처럼 말하자면, release를 원했는데 dealloc이 되어버림.) 결국 그냥 모든 대입문에 .clone을 붙였더니 메모리 폭발, 속도 안습. - [고한종], 13년 3월 16일
         - [고한종/업적/DrawPicture]
          * 완성은 못 했고, 이때는 멀티스레드 쓸 생각을 전혀 못 했는데, 이제는 할 줄 아니까 지금 붙잡으면 고칠 수 있음. 이거 만들땐 AppStore에 올려서 돈벌 생각을 했었는데... 얼마전에 이거보다 훨씬훨씬 훨씬 훌륭한게 이미 나와버려서.. -_-;; 몇몇 사람들에겐 보여줬으니 알지도... [권순의]선배 사진가지고 많이 테스트해봤다. 테스트할려고 찍은 인물사진중엔 제일 좋은결과가 나왔었음. - [고한종], 13년 3월 16일
  • 구구단/Leonardong . . . . 2 matches
         #include <iostream>
          return 0;
          8 timesRepeat:
          [9 timesRepeat:
  • 구구단/aekae . . . . 2 matches
         #include <iostream>
          return 0;
          8 timesRepeat: [
          9 timesRepeat: [Transcript show: a;show:'*';show:b;show:'='; show: a * b; cr. b := b + 1.].
  • 구구단/문원명 . . . . 2 matches
         #include <iostream>
          8 timesRepeat:[[9 timesRepeat: [Transcript show:n*c.Transcript cr.c:=c+1.]].c := 1.n := n +1.].
  • 구구단/조재화 . . . . 2 matches
         #include<iostream>
          return 0;
         8 timesRepeat: [9 timesRepeat: [ Transcript show:x*y; cr. y := y + 1. ]. x := x + 1. y := 1 ].
  • 그래픽스세미나/1주차 . . . . 2 matches
          * Bresenham의 알고리즘
         || 강인수 || Upload:OpenGL_Report1_Insu.zip API Ver. ||
         || 강인수 || Upload:GL_Report1_Insu_MFC.zip MFC Ver. ||
  • 김태진 . . . . 2 matches
         == 간단 소개. 홈페이지 : [https://sites.google.com/site/jerenealkim/ 링크] ==
          * If you have any Q, feel free to contact me.
          * '''목표 및 해본것 : [https://sites.google.com/site/jerenealkim/yearbook 링크]''' - 계속 수정 중
          * '''프로젝트/스터디 소개 : [https://sites.google.com/site/jerenealkim/projects 링크]'''
          * 정규표현식 - [RegularExpression/2011년스터디]
          * [Refactoring/BadSmellsInCode]
  • 데블스캠프2005/RUR-PLE . . . . 2 matches
         || [데블스캠프2005/RUR-PLE/TwoMoreSelectableHarvest] ||
         || [데블스캠프2005/RUR-PLE/Harvest/Refactoring] ||
         || [데블스캠프2005/RUR-PLE/Newspaper/Refactoring] ||
         http://rur-ple.sourceforge.net/images/left_square2.png
          * repeat 명령어를 써서 여러번 수행해야 하는 함수(명령어 포함)을 한번에 방복 횟수만 지정해서 사용할 수 있다.
          repeat(turn_left, 3)
          * 위의 if문과 함수 정의, repeat를 사용하여 아래 화면과 같은 상황을 처리한다.
         # introducing vocabulary related to the problem
          plant_carrot() # replace missing seed
          plant_carrot() # we had removed the only one
          plant_carrot() # replant only one
  • 데블스캠프2005/RUR-PLE/Sorting . . . . 2 matches
          repeat(turn_left,2)
          repeat(turn_left,3)
          move() # search the smallest column in unordered columns
          #return to the larger column which must be sorted
          move() # search the smallest column in unordered columns
          repeat(move_end,10)
          repeat(move_end,10)
          repeat(sort_sub,20)
          repeat(gaedan,9)
          repeat(turn_left,3)
          repeat(go_pick,5)
          repeat(go_pick,5)
          repeat(go_pick,6)
          repeat(go_pick,5)
          repeat(move,5)
          repeat(go_pick_sub,5)
          repeat(go_pick_sub,5)
          repeat(go_pick_sub,6)
          repeat(go_pick_sub,5)
          repeat(move,5)
  • 데블스캠프2005/주제 . . . . 2 matches
         [Refactoring], [TestDrivenDevelopment], [STL], [ObjectOrientedProgramming],
         Recursion 과 Iteration (IndexCard 등을 이용해서.. ToyProblems 따위의 문제 풀어보기,
         In my life, I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one's destination.
         My point is that a program is never a goal in itself; the purpose of a program is to evoke computations and the purpose of the computations is to establish a desired effect.
         -Edsger W. Dijkstra, 'Notes on structured programming'
  • 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 2 matches
          return exec(trim("file -bi ".escapeshellarg($f)));
         //echo str_repeat(" ",300);
         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
         socket_setopt($socket, SOL_SOCKET, SO_REUSEADDR, 1);
          $result = "";
          while(false!==($read = socket_read($client_socket, 100, PHP_NORMAL_READ)))
          echo "> ".$read;
          if(!$read = trim($read)) $cnt++;
          if($cnt==3) break;
          if(preg_match("/(GET|POST) (\/[^ \/]*) (HTTP\/[0-9]+.[0-9]+)/i", $read, $t))
          if(preg_match("/\/$/", $file))
          foreach($index_file as $idxf)
          if(is_readable($file.$idxf))
          break;
          if(is_readable($file))
          $res[] = "HTTP/1.1 200 OK";
          $res[] = "Server: Kesarr's WebServer";
          $res[] = "Connection: close";
          $to_read = $file;
          $res[] = "HTTP/1.1 404 Not Found";
  • 데블스캠프2009/목요일/연습문제/MFC/박준호 . . . . 2 matches
          DECLARE_MESSAGE_MAP()
         CTestAPPDlg::CTestAPPDlg(CWnd* pParent /*=NULL*/)
          : CDialog(CTestAPPDlg::IDD, pParent)
          // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
          // TODO: Add extra initialization here
          return TRUE; // return TRUE unless you set the focus to a control
          // Center icon in client rectangle
          CRect rect;
          GetClientRect(&rect);
          int x = (rect.Width() - cxIcon + 1) / 2;
          int y = (rect.Height() - cyIcon + 1) / 2;
          return (HCURSOR) m_hIcon;
          // TODO: Add your control notification handler code here
  • 데블스캠프계획백업 . . . . 2 matches
          * NoSmok:ApprenticeShip 모델을 적용해서, 처음에는 선배 주도로 프로젝트를 하나 하고, 다음에는 조금씩 후배가 안으로 들어오게 하고, 선배는 바깥으로 빠지는 것도 좋습니다. 이 NoSmok:ApprenticeShip 에는 전통적으로 두가지가 있습니다. 재단사들의 경우, 사람이 새로 들어오면 맨 마지막 마무리 일(예컨대 단추달기 등)을 맡깁니다. 그러면서 경험이 쌓이면 공정을 역으로 거슬러 올라오게 합니다. 즉, 이번에는 단추달기도 하고, 주머니 달기도 하는 겁니다. 다음에는 단추달기, 주머니 달기, 팔 만들기처럼 하나씩 늘려 갑니다. 어느 시점이 되면 자신은 Journeyman이 되고 작은 일은 새로 들어온 Apprentice에게 넘기고, 자신은 나름의 확장을 계속하죠. 반대로 처음 공정부터 참여를 시키는 방법(항해사)도 있습니다. 중요한 것은 "주변"(덜 중요한 것)에서 "중심"(더 중요한 것)으로의 점차적 확장이지요. 이렇게 되면 견습공은 매번 "제품의 완전한 개발 과정"을 관찰할 수 있고, 어떻게든 도움이 되는 일을 하며, 그 참여의 영역을 넓혀나가게 되어, 종국에 가서는 전 개발 과정에 참여할 수 있습니다. 장난감 문제(Toy Problem)의 한계를 벗어나는 길이지요. --JuNe
          ''변화를 두려워하면 영원히 개선되지 않습니다. 하지만 어찌되건, 이 캠프를 할 당사자(가르치고 배울 사람들) 이외의 사람들의 입김이 크게 작용하는 것은 여러모로 바람직하지 못하다고 봅니다. 선배들의 이야기를 참고는 하되, 결정은 당사자들(특히 직접 가르칠 사람들)이 자신의 주관을 갖고 하길 바랍니다. 필요하다면 몇가지 실험을 해볼 수도 있을 겁니다. (그리고, NoSmok:ApprenticeShip 방식은 수천년의 시행착오를 거쳐 인류와 함께한, 우리 DNA에 코딩된 방식입니다. 이 방식의 장점은 아무 기초가 없는 사람도 참가할 수 있다는 것이죠. 과거에 공식적인 교육기관이나 별도의 책을 접하기 힘든 상황을 생각하면 오히려 당연하죠.) --JuNe''
          * 변화를 두려워 하지는 않지만 무턱대고 마구 바꿔대면 망할수 있다는것은 감안해야 할겁니다. 마찬가지로 NoSmok:ApprenticeShip 모델이 어떤걸 말하는지 알지는 못하네요. 당연히 당사자가 세미나는 어떻게 할것인가 등등은 당사자들이 정해야 할 문제이고 어쩌면 제가 그 당사자중 하나가 되어 버릴지도 모르겠네요. 저역시 기존의 ["데블스캠프"]( 실제로는 데블스가 신입회원을 뽑을때 썼던 방법입니다. 95년에 시작했으니 벌써 8년째를 접어드는군요..) 를 여러차례 해왔고 기존 방법의 장점을 누구보다 잘 피부로 느끼고 있습니다.위에서 간략하게 설명해 놓은 내용을 볼때 기존의 방식이 위에서 제시한 방법보다 훨씬 효과적이라고 장담할 수 있습니다. 그건 수년간 기존의 방법을 수행해온 경험자로써의 확신입니다. -태호-
          * 학교를 다니면서 혼자서는 거의 공부하지 않을만한, 그러나 중요한 것들(see also FocusOnFundamentals). 앞으로 학교생활에서 체험하기 힘든 것들. 학교를 졸업할 때까지 유효한 지식으로 남아있을만한 생명력이 긴 것들. 학교생활 동안 공부, 프로그래밍에 영향을 많이 끼칠 메타 수준이 높고 늘상 하는 것들. 사고하는 방법. 프로그램을 만드는 방법. 아마추어 아이디어 맨은 "아이디어"를 만들고, 프로 아이디어 맨은 "아이디어를 대량으로 생성해 낼 수 있는 구조와 과정"을 만들어 낸다고 합니다 -- 프로가 만든 아이디어는 엄청난 양의 아이디어를 자동 생산해 냅니다. 제가 학교를 다닐 때 "프로그램을 생성해 낼 수 있는 구조와 과정"을 선배에게서 배웠더라면 얼마나 좋았을까 하는 생각을 자주 합니다. 예를 들어, 이메일 주소를 찾는 RE를 "답"으로서 가르치거나, 혹은 무작정 시행착오를 거치면서 그 답을 찾으라고 종용하거나 하는 것보다는, 그런 RE를 효율적이고 손쉽게 생성해 낼 수 있는 과정과 인식적 도구를 가르쳤으면 합니다. --JuNe
          * 이런 걸 할 때 날마다 위키에 조별로 공동일기를 쓰고 ThreeFs를 공유하면 좋을 겁니다. 그리고, 매일 저녁에 조원들이 같이 모여 Daily Retrospective를 갖도록 합니다. 이런 건 좋았다, 나빴다, 내일은 이렇게 저렇게 해보자 등등. 그러고 나서, 선배들이 같이 모여 전체 Daily Retrospective를 합니다. 우리 조는 이랬고, 너희 조는 저랬구나, 그럼 우리는 이렇게 해야겠다 등. --JuNe
  • 도형그리기 . . . . 2 matches
         사각형 : Rectangle (Start_x, Start_y, End_x, End_y)
         둥근 사각형 : RoundRect (Start_x, Start_y, End_x, End_y, width, height)
         == Thread ==
  • 몸짱프로젝트/BinarySearchTree . . . . 2 matches
          === Before Refactoring ===
         class BinartSearchTree:
          def makeChildren(self, aRoot):
          return aNode
          return self.getNode( aNode.left, aKey )
          return self.getNode( aNode.right, aKey )
          return False
          return True
          return self.search( aRoot.left, aKey )
          return self.search( aRoot.right, aKey )
          self.makeChildren( node )
          return True
          return False
         ## if self.getNumofChildren( node ) == 0:
         ## elif self.getNumofChildren( node ) == 1:
         ## self.replace(node, child)
          if node.numofChildren() == 0:
          elif node.numofChildren() == 1:
          self.replace(node, child)
          self.replace( largest, child )
  • 문자반대출력/김정현 . . . . 2 matches
          return text;
          public void reverseWrite(String text)
         //ReverseText.java 파일
         public class ReverseText
          test.reverseWrite(test.getText(addr));
  • 문자반대출력/조현태 . . . . 2 matches
         #include <iostream>
         #include <fstream>
          int where_is_save;
          where_is_save=0;
          free(data_p);
          if (where_is_save != max_size_of_stack)
          *(data_p+where_is_save)=save_data;
          ++where_is_save;
          return TRUE;
          return FALSE;
          bool get_out(char *where_save_p )
          if (where_is_save)
          --where_is_save;
          *where_save_p=*(data_p+where_is_save);
          return TRUE;
          return FALSE;
          where_is_save=0;
          ifstream inputFile("source.txt");
          return 0;
          ofstream outputFile("result.txt");
  • 변준원 . . . . 2 matches
         Describe 변준원 here.
         = Thread =
         #include<iostream>
          return x,y;
          return 0;
          return 0;
         #include<iostream>
          cout << "break";
          return 0;
         #include<iostream>
          return 0;
         #include <iostream>
         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
         int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
          wc.style = CS_VREDRAW | CS_HREDRAW;
          RegisterClass( &wc );
          hWnd = CreateWindowEx( 0, "DXTEST", "DXTEST",
          if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
          return (int)msg.wParam;
          return (int)msg.wParam;
  • 새싹교실/2011/무전취식/레벨4 . . . . 2 matches
          == ICE Breaking ==
         정진경 : 목요일에 서강대가서 소프트웨어 마에스트로 설명회 갔는데 작년에 소프트웨어 마에스트로 면접관이 날 알아봐서 감격이었다. 토요일에 집에 내려갔다왔는데 형 친구들을 봤다. 형친구가 겜 프로젝트하는데 실무적인 도움되는것을 들었다. Zp정모는 가서 ICE Breaking 진실혹은 거짓을 하고 스피드 게임을 했다. 분위기는 재밋고 좋은것 같다.
          * 함수의 구조는 입력(Parameter), 내부 연산, 출력(Return)으로 설명했습니다.
          * 함수선언시 출력 타입(Return Type)에 따라 마지막에 반환해주는값 또한 같은 Type으로 반환해주어야합니다.
          return x+y; <- return 타입은 x+y의 결과 타입인 int;
          default: printf("잘못된 입력입니다\n"); break;
          Sora = Sora - temp; break;
          Sora = Sora - temp; break;
          My = My - temp; break;
          My = My - temp; break;
          break;
          break;
          break;//while문을 빠져나간다.
          return 0;
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
  • 새싹교실/2011/쉬운것같지만쉬운반/2011.5.17 . . . . 2 matches
          5. Call by Value와 Call by Reference는 무엇인가?
          5. Call by Reference는 무엇인가?
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
  • 새싹교실/2012/AClass/4회차 . . . . 2 matches
          YOU color = "red, blue, yellow, black";
         color =red, blue, yellow, black
         return 0;
          return 0;
          return 0;
          - 원형으로 이루어져 있기 때문에 큐가 가득 찼을때나 완전히 비어있을때 Front와 Rear의 index는 동일하므로 Empty인지 Full인지 구분할 수 없다.
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
         NODE*CreateNode(char name [])
         Return NewNode;
         NODE* 를 반환하는 CreateNode다. NewNode라는 포인터를 생성후 그 해당하는 주소에 malloc함수로 공간을 할당하고 있다.
          return 0;
          return 0;
  • 새싹교실/2012/주먹밥 . . . . 2 matches
          * if문, switch()case: default:}, for, while문의 생김새와 존재 목적에 대해서 알려주었습니다. 말그대로 프로그램의 중복을 없애고 사용자의 흐름을 좀 더 편하게 코딩할수 있도록 만들어진 예약어들입니다. 아 switch case문에서 break를 안가르쳤네요 :(
         return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          * 개인정보 털기 Ice Breaking
         === ICE breaking ===
          * 변수가 저장되는곳 : 변수는 메모리에 저장되는데 int는 4byte 저장공간에 저장된다 그리고 그것의 보관장소는 어떤 '''주소값(address)'''를 가진다.
          * 포인터 : 포인터변수는 32bit 버전 컴파일러에서 4byte 64bit 버전 컴파일러에서 8byte의 크기를 가집니다. 어떤타입이든 말이죠 (void *), (int *), (float *) 모두 말이에요. int *a는 4byte를 할당받고 a에는 '''주소값(address)'''을 가지게 됩니다. 포인터 (*)를 붙이게 되면 그 해당 주소가 가르키는 '''값'''을 찾아가게 되죠. int형 값말이에요 그러니까 4byte만 찾아오겠죠?
          * Call-by-value, Call-by-reference 예제
          return 0;
          * 위와 같이 함수 추상화의 완성형은 Call-by-reference를 이용한 전달입니다. 잊지마세요!
          * 구조체와 함수 - 구조체도 다른변수와 마찬가지로 Call-by-value와 Call-by-reference방식으로 넘기게 됩니다.
          referencefunc(&myfood);
          break;
          break;
          return totalcal;
  • 수면과학습 . . . . 2 matches
          a. Rem 수면( rapid-eye-movement sleep ) : 얕은 잠, 꿈을 꾸는 단계
          REM 53% 회복
          ==> 회복을 위해서는 서파 수면, REM수면의 중요도 시사, 수면의 회복은 곧 정신력의 회복이며, 맑은 정신력의 기준은 알파파를 기준으로 삼는다.
          1. 수면은 지속적인 기억 흔적을 제공하는데 기여한다. 즉 단기->장기 기억 전환시 Rem이 중요하다. (다음 조사 참고)
          * Smith & Lapp(1991) : 새로운 정보를 평소보다 많이 학습할 것으로 추정되는 시험 기간동안 대학생들 REM수면의 증가를 보인다.
  • 시간관리인생관리 . . . . 2 matches
          * Release : 2002년 12월 16일
          * Review :
  • 알고리즘8주숙제 . . . . 2 matches
         == Greedy ==
         Given the denominations of coins for a newly founded country, the Dairy Republic, and some monetary amount, find the smallest set of coins that sums to that amount. The Dairy Republic is guaranteed to have a 1 cent coin.
         Give a greedy method, which is heuristic, to solve the 0/1 knapsack problem and also give an example to show that it does not always yield an optimal solution.
         Give a greedy method to find an optimal solution of the knapsack problem and prove its correctness.
         Consider the problem of scheduling n jobs on one machine. Describe an algorithm to find a schedule such that its average completion time is minimum. Prove the correctness of your algorithm.
         ==== 5. Optimal Binary Tree ====
         Optimal Binary Tree는 Dynamic Programming 기법으로 풀리는 유명한 문제입니다. 그누스 형님 방법에 의하면 O(n<sup>2</sup>)으로 풀립니다. 그러나 우리는 이보다 점근적으로 더 빠른 휴리스틱 버전을 작성해야 합니다.
         || 김상섭 || 엄청 || [AproximateBinaryTree/김상섭] ||
  • 영어학습방법론 . . . . 2 matches
         See Also [http://community.freechal.com/ComService/Activity/PDS/CsPDSList.asp?GrpId=1356021&ObjSeq=6 일반영어공부론], Caucse:일반영어공부론, Caucse:영어세미나20021129
          * 카테고리[ex) dress, cloth category - shirts, pants, etc]로 분류하여 외우기
          * 접두어(prefix), 접미어(suffix), 어근(root)를 따라가는 방법
          * 기본적으로 접두어,접미어,어근을 가진 단어들은 Latin & Greek 계열의 단어로써 고급단어, 학문적인 단어들임. 따라서 일상생활영어에서는 나타나는 빈도가 아주 낮은 단어들임. 단 어느정도 영어가 되고 고급영어를 공부하는(GRE,SAT) 사람들에게는 괜찮음
          * 잘 안외어지는 단어는 동화[자신이 한글로 계속 보고 싶을 정도로 좋아할 정도로 잘 아는 것. ex) Readers]같은 예문을 모르는 단어를 search하면서 그 단어의 쓰임을 예문을 통해서 외운다.
          * Oxford Advanced Learner's Dictionary of Current English (6th Edition이상)
          * 한가지 entity에 대한 다양한 representation을 알아야한다.
          * 페이지당 3, 4단어 정도 모르는게 적당. Level선택두 아주 중요함(읽기만 아니라 듣기도 해야하기때문) Cambridge, Longman, Oxford같은 출판사에서 나온 것을 선택하는 것이 좋음. Penguin Readers 시리즈가 유명함. Tape과 책이랑 같이 있음. 같이 구입 보통 각 책마다 level이 표시되어 있음(단어숫자라던지 교육과정정도를 표기) Tape : 성우가 재밌게 동화구연을 하는 것이라면 더 재밌다. 더 집중할 수 있다. ^^
          * http://technetcast.com - 전산학자들, 유명한 저자의 강의, interview, conference 발표등이 있음
  • 위키설명회2005 . . . . 2 matches
         <p href = "http://blog.naver.com/20oak.do?Redirect=Log&logNo=120003237424">과학동아의 위키소개</p>
         <p href = "http://cafe.naver.com/gosok.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=135">ZDnet기사</p>
         <p href = "http://no-smok.net/nsmk/위키위키">노스모크위키의 위키 소개 페이지</p>
         <p href = "http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EC%9C%84%ED%82%A4">위키백과사전의 위키위키소개 페이지</p>
         = Thread =
  • 위키설명회2005/PPT준비 . . . . 2 matches
         6502 는 16bit addressing이 가능한 CPU 였습니다. 즉, $0000 ~ $FFFF 였죠.
         6502 는 13가지 메모리 access 방식이 있었는데, 그중 하나가 zero page addressing 입니다.
         주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
         BackLink 혹은 ReverseLink.
         ===== RecentPage =====
         [UserPreferences]
  • 이영호/nProtect Reverse Engineering . . . . 2 matches
         1. mabinogi.exe(게임 자체의 업데이트 체크를 한다. 그리고 createprocess로 client.exe를 실행하고 종료한다.)
         2. client.exe(client가 실행될 때, gameguard와는 별개로 디버거가 있는지 확인하는 루틴이 있는 듯하다. 이 파일의 순서는 이렇다. 1. 데이터 파일의 무결성검사-확인해보지는 않았지만, 이게 문제가 될 소지가 있다. 2. Debugger Process가 있는지 Check.-있다면 프로세스를 종료한다. 3. gcupdater.exe를 서버로부터 받아온다. 4. createprocess로 gcupdater를 실행한다. 5. 자체 게임 루틴을 실행하고 gcupdater와 IPC를 사용할 thread를 만든다.)
         3. gcupdater(실행시 항상 서버에 접속하여 파일 3개를 받아온다. guardcat.exe, INST.dat, gc_proch.dll을 순서대로 받아와 자체적으로 wsprintf를 이용하여 복사한다.-아마 디버거에 API를 걸리기 싫었는지 모른다. createprocess로 guardcat.exe를 실행시킨다.)
         CreateProcess() 매개변수
         |CommandLine = ""C:\Program Files\Mabinogi\client.exe" code:1622 ver:237 logip:211.218.233.200 logport:11000 chatip:211.218.233.192 chatport:8000 setting:"file://data/features.xml=Regular, Korea""
         |pThreadSecurity = NULL
         |CreationFlags = 0
         |CurrentDir = "C:\Program Files\Mabinogi"
         client.exe code:1622 ver:237 logip:211.218.233.200 logport:11000 chatip:211.218.233.192 chatport:8000 setting:"file://data/features.xml=Regular, Korea" 로 실행시키면 된다.
         지금은 reverse engineering을 하는 중이다.
  • 이영호/기술문서 . . . . 2 matches
         [http://doc.kldp.org/KoreanDoc/html/Assembly_Example-KLDP/Assembly_Example-KLDP.html] - Linux Assembly Code
         [http://bbs.kldp.org/viewtopic.php?t=24407] - Reference 에 의한 호출과 Pointer에 의한 호출 (결론: Reference는 포인터에 의해 구현되며 표현만 CallByValue 다.)
         [http://bbs.kldp.org/viewtopic.php?t=1244] - 디버깅 이야기: malloc, free, new [], delete []
  • 이영호/지뢰찾기 . . . . 2 matches
         모기도 많고 지뢰찾기도 안되고 해서 지뢰찾기 Reverse Engineering
          return num%limit;
          int ret_base, ret_height;
          ret_base = func(base)++;
          ret_height = func(height)++;
          if(map[ret_height][ret_base] == 0x80)
          map[ret_height][ret_base] = 0x80;
          Reverse 하는 김에 모기 퇴치 프로그램도 같이 짜야 할듯; --[1002]
  • 일취집중후각법 . . . . 2 matches
         ["Refactoring"]의 도를 얻기 위한 수련법의 하나. see also HowToStudyRefactoring
         '''["일취집중후각법"] ThreeFs'''
  • 임인택/RealVNCPatcher . . . . 2 matches
          * 이미 만들어놓은 RealVNC 한글화 패치 자동으로 해주는 인스톨러..작성..-_-a
         === Resource ===
  • 자유게시판 . . . . 2 matches
          - 자유게시판에 글 수정, 삭제, 추가 하면 RecentChanges 에 반영되지 않나요? 글고 저는 위키위주로 사용해서... (제로페이지 북마크를 http://zeropage.org/wiki/RecentChanges 로 해두고 사용하고 있습니다) - [임인택]
  • 정수민 . . . . 2 matches
         === ReverseAndAdd ===
         [ReverseAndAdd/정수민]
          return 0;
          return 0;
          break;
          if (randemsoo[0][i] || randemsoo[1][i]) break;
          break;
          break;
          break;
          break;
          return 0;
          return 0;
          int input_score, i, max, min, sum = 0, compare, *score;
          scanf("%d", &input_score) ;
          score=(int*)malloc(sizeof(int)*input_score);
          for( i = 0 ; i < input_score ; i++ ){
          printf("Enter a number for score[%d] : ", i);
          scanf("%d", &score[i]);
          sum += score[i];
          printf("n[ The contents of score array ]n");
  • 조영준/파스칼삼각형/이전버전 . . . . 2 matches
          s = Console.ReadLine(); //삼각형 크기를 입력받음
          if (lines == 0) return; // 프로그램 종료
          public int[][] triangle { get { return _triangle; } }
          public int row { get { return _row; } }
          public int count { get { return _count; } }
          public int max { get { return _max; } }
          if (_count > _row) return new int[0];
          return _triangle[_count-2];
          public void resetCount()
          return _triangle[row-1];
          return _triangle[row-1][column-1];
          s = Console.ReadLine(); //삼각형 크기를 입력받음
          if (lines == 0) return; // 프로그램 종료
          private int[] current; // 현재 줄
          return savePrv(new int[] { 1 });
          current = new int[count];
          current[0] = 1; //줄의 맨 처음
          current[count-1] = 1; //줄의 맨 마지막
          for (int i = 0; i < current.Length - 2; i++)
          current[i + 1] = prv[i] + prv[i + 1]; //파스칼 삼각형 규칙
  • 졸업논문/본론 . . . . 2 matches
         웹 애플리케이션 개발자가 가장 많이 쓰는 기능은 SQL을 이용하여 데이터베이스 내용을 삽입, 삭제, 수정, 조회하는 것이다. 그 중에도 데이터를 조회하는 SQL문은 다양한 구조를 가진다. 기본 구조는 select from 이다. 여기서 from절에 테이블이 여러 번 나오는 경우 조인 연산을 수행한다. 조인 연산은 다른 테이블 또는 같은 테이블끼리 가능하다. select from where문을 사용하면 where절에 있는 조건을 만족하는 데이터만 조회한다. aggregate function을 사용하면 원하는 결과를 좀더 쉽게 얻을 수 있다. 이에는 개수(count), 합계(sum), 최소(min), 최대(max), 평균(avg)이 있다. aggregate function에 group by문을 사용하면 그룹 단위로 결과를 얻는다. group by절에는 having을 이용해 조건을 제한할 수 있다. 또한 순서를 지정하는 order by문과 집합 연산인 union, intersect, except 등이 있다. where절 이하에 다시 SQL문이 나타나는 경우를 중첩질의라고 한다. 중첩 질의를 사용할 때는 특별히 (not) exist, (not) unique와 같은 구문을 사용할 수 있다.
         데이터를 삽입,삭제,변경할 때는 조회하는 SQL에 비해 하면 단순하다. 삽입에는 insert into value 구문을, 삭제는 delete from where구문을, 변경은 update set where구문을 사용한다. 삭제와 변경시에는 중첩 질의를 사용할 수 있다.
         Django는 오픈 소스 프로젝트로 code.djangoproject.com/browser/django 에서 전체 소스코드를 확인할 수 있다. 문서에 따르면 django 데이터베이스 API는 "SQL문을 효율적으로 사용하고, 필요할 때는 알아서 join연산을 수행하는 강력한 구문을 가졌으며, 사용자가 필요할 경우 직접 SQL문을 작성할 수 있도록 지원"[5]한다. 추상화된 구문을 사용하더라도 데이터는 관계형 데이터베이스에 저장하게 되는데, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같은 DBMS를 사용할 수 있다.
         Django의 설계 철학은 한 마디로 DRY(Don't Repeat Yourself)이다. 확연히 구분할 수있는 데이터는 분리하고, 그렇지 않은 경우 중복을 줄이고 일반화한다. 데이터 뿐 아니라 개발에 있어서도 웹 프로그래밍 전반부와 후반부를 두 번 작업하지 않는다. 즉 웹 애플리케이션 개발자는 SQL을 사용하는 방식이 도메인 언어에 제공하는 프레임워크에 숨어 보이지 않기 때문에 프로그램을 동적으로 쉽게 바뀔 수록 빠르게 개발할 수 있다. 또한 후반부 데이터 모델이 바뀌면 프레임워크에서 전반부에 사용자에게 보이는 부분을 자동으로 바꾸어준다. 이러한 설계 철학을 바탕으로 기민하게 웹 애플리케이션을 개발할 수 있다.
         [django/RetrievingObject]
         [django/AggregateFunction]
         레코드를 검색할 때는 기본적으로 간단한 질의를 처리할 수 있는 함수들을 제공한다. 앞서 살펴본 바와 같이 직접 관계를 가지는 테이블 사이에 조인 연산은 Model클래스의 메소드를 이용해서 추상화되어 있다. 하지만 그 밖인 경우에는 직접 SQL문을 작성하여 데이터를 얻어와야 하기 때문에 django를 사용하더라도 큰 이점이 없다. 또한 추상화된 Model클래스의 메소드는 기본적으로 모든 레코드 속성을 읽어오기 때문에 시간, 공간 측면에서 비효율적일 수 있다. 마지막으로 SQL의 aggregate function등을 대부분 추상화하지 않았기 때문에, 이 역시 SQL문을 작성해야 하는 번거로움이 있다.
  • 졸업논문/참고문헌 . . . . 2 matches
         [1] Tim O'Reilly, "What Is Web 2.0", http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html, Sep. 2005.
         [3] Costa, "Creating a weblog in 15 minutes", http://www.rubyonrails.org/screencasts, July. 2006.
         [6] "Model reference", http://www.djangoproject.com/documentation/model_api/
         [7] "Database API reference", http://www.djangoproject.com/documentation/db_api/#retrieving-objects
         [11] "A Relational Model of Data for Large Shared Data Banks", E. F. Codd , Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387.
  • 즐겨찾기 . . . . 2 matches
         [http://xper.org/wiki/xp/RecentChanges XPer]
         [http://xper.org/wiki/seminar/RecentChanges XperSeminar]
  • 지금그때/OpeningQuestion . . . . 2 matches
          * 참고 : 확률,통계를 공부하는데 JuNe이 추천하는 책 - 『Statistics』,Freduan(?)
         같은 주제 읽기(see HowToReadIt)를 하기에 도서관만한 곳이 없습니다. 그 경이적인 체험을 꼭 해보길 바랍니다. 그리고 도서신청제도를 적극적으로 활용하세요. 학생 때는 돈이 부족해서 책을 보지 못하는 경우도 있는데, 그럴 때에 사용하라고 도서신청제도가 있는 것입니다. --JuNe
         책은 NoSmok:WhatToRead 를 참고하세요. 학생 때 같이 시간이 넉넉한 때에 (전공, 비전공 불문) 고전을 읽어두는 것이 평생을 두고두고 뒷심이 되어주며, 가능하다면 편식을 하지 마세요. 앞으로 나의 지식지도가 어떤 모양새로 나올지는 아무도 모릅니다. 내가 오늘 읽는 책이 미래에 어떻게 도움이 될지 모르는 것이죠. 항상 책을 읽으면서 자기의 "시스템"을 구축해 나가도록 하세요. 책을 씹고 소화해서 자기 몸化해야 합니다. 새로운 정보/지식이 들어오면 자기가 기존에 갖고 있던 시스템과 연결지으려는 노력을 끊임없이 하세요.
         잡지 경우, ItMagazine에 소개된 잡지들 중 특히 CommunicationsOfAcm, SoftwareDevelopmentMagazine, IeeeSoftware. 국내 잡지는 그다지 추천하지 않음. 대신 어떤 기사들이 실리는지는 항상 눈여겨 볼 것. --JuNe
  • 컴퓨터공부지도 . . . . 2 matches
         Windows Programming 이라고 한다면 Windows 운영체제에서 Windows 관련 API 를 이용 (혹은 관련 Framework), 프로그래밍을 하는 것을 의미한다. 보통 다루는 영역은 다음과 같다. (이 영역은 꼭 Windows 이기에 생기는 영역들이 아니다. Windows 이기에 생기는 영역들은 Shell Extension 이나 ActiveX, DirectX 정도? 하지만, 가로지르기는 어떻게든지 가능하다)
         가장 쉽게 GUI Programming 을 배우는방법이라 생각되는건, Python 에서의 Tkinter Programming 또는 Jython Interpreter 에서 Swing Tutorial 을 이용하는것이다. (["Jython"] 페이지의 JythonTutorial 참조)
         ==== Direct X ====
         ==== Multi Thread Programming ====
         이를 위해 Interactive Shell이 지원되는 인터프리터 언어(e.g. Python)와 패킷 스니퍼(e.g. tcpdump, ethereal, etherpeek, ...), 웹 브라우져, FTP, TELNET 클라이언트 등을 이용할 수 있다.
         See Also HowToStudyXp, HowToReadIt, HowToStudyDataStructureAndAlgorithms, HowToStudyDesignPatterns, HowToStudyRefactoring
  • 코드레이스/2007.03.24정현영동원희 . . . . 2 matches
          return color;
          return color2;
          else return color3;
          return getColor(totalSecond);
          if(getColorWithDate(time).equals("Red")) {
          return number;
          return getColorWithDate(time.year, time.month, time.day, time.hour, time.minute, time.second);
          Signal signal= new Signal(120, "Red", 5, "Yellow", 30, "Green");
  • 타도코코아CppStudy/0724 . . . . 2 matches
          Upload:HigherOrderEX.cpp
          * [Refactoring]
          Upload:HigherOrderEX.cpp
          * OWIKI:Refactoring
         == Thread ==
  • 토비의스프링3/오브젝트와의존관계 . . . . 2 matches
          return id;
          return name;
          return password;
         import java.sql.PreparedStatement;
         import java.sql.ResultSet;
          PreparedStatement ps = c.prepareStatement("insert into users(id, name, password) values(?,?,?)");
          PreparedStatement ps = c.prepareStatement("select * from users where id = ?");
          ResultSet rs = ps.executeQuery();
          return user;
          return new UserDao(new DConnectionMaker());
          return new AccountDao(new DConnectionMaker());
          return new MessageDao(new DConnectionMaker());
          return new UserDao(connectionMaker());
          return new AccountDao(connectionMaker());
          return new MessageDao(connectionMaker());
          return new DConnectionMaker();
          * 스코프(scope) : 스프링이 관리하는 빈이 생성되고 존재하고 적용되는 범위. 빈의 기본 스코프는 싱글톤으로 컨테이너 내에 한 개의 오브젝트만 만들어져서 강제로 제거하지 않는 한 계속 유지된다. 경우에 따라서 싱글톤 외의 프로토타입(prototype), 요청(request), 세션(session)스코프 등을 가질 수 있다.
          * <class> : @Bean 메소드가 return하는 값. 패키지까지 모두 써 줘야 한다.
          * <ref> : 수정자 메소드를 이용해서 주입할 오브젝트의 Bean의 id이다.
          * <value> : 다른 Bean 오브젝트가 아니라 단순 값을 주입할 때 <ref> 대신 사용한다. 스프링에서 프로퍼티의 값을 적절하게 변환하기 때문에 스트링, 오브젝트 등 다양한 값을 사용할 수 있다.
  • 프로그래밍언어와학습 . . . . 2 matches
         DeleteMe) 제목짓는 센스가 없는 관계로;; 원글의 뜻에 맞게 제목을 고쳐주시기를; Rename & Refactor This Page; --석천
         The fatal metaphor of progress, which means leaving things behind us, has utterly obscured the real idea of growth, which means leaving things inside us.
  • 프로그래밍잔치/둘째날 . . . . 2 matches
         식사 & Requirement - 50분 (3시)
          * 고객이 구체적 Requirement 제시 - 15분.
  • 호너의법칙/박영창 . . . . 2 matches
         #include <iostream>
         #define EXIT_FAILURE 1
          return EXIT_SUCCESS;
         @return 호너함수의 재귀호출 값 + 호출 차수의 계수값
          // Recursion Termination Condition
          if (exponential == max_exponentials-1) return coefficient[exponential];
          // General Recursion Call
          return horner_func(x_param, coefficient, exponential+1)*x_param + coefficient[exponential];
  • 05학번만의C++Study . . . . 1 match
          *아영아 스터디 관련 페이지마다 링크가 안걸려있어.. 링크 통해서는 이동을 못하고 Recentpage 에서 새글 등록된거로만 들어갈수 있네.. 위키 문제인가? 페이지 이름이 조금씩 달라서 그런거가?..;; 나만 그런지도..;;
  • 1thPCinCAUCSE/null전략 . . . . 1 match
         도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
         적절히 중복코드를 삭제하고 난 뒤, 한 5분정도 Input-Output 코드를 iostream 과 ["STL/vector"] 를 사용하여 작성한 뒤 이를 제출, 통과했습니다.
         A 번 진행중 아쉬웠던점은, 만일 이 문제를 바로 풀기전에 OO 패러다임으로 해결할 것인가 Structured 패러다임으로 해결할 것인가에 대해 먼저 생각하는 여유를 가졌더라면 문제 해결이 더 쉽지 않았을까 하는 점이였습니다.
         문제에 대해 역시 B 번을 진행하던 스타일대로 Structured 로 진행했는데, 초반에 너무 코드위주로 각 변수들을 뽑아내려고 접근한 것이 문제가 되었던 것 같습니다. 여유를 두고 페이퍼 프로그래밍을 했어도. 바늘들에 대해서 OO 로 접근했으면 좀 더 쉽지 않았을까 생각.
  • 2002년도ACM문제샘플풀이 . . . . 1 match
          * [http://cs.kaist.ac.kr/~acmicpc/problem.html 2002년도 문제 샘플] 풀이입니다. ["신재동"]과 ["상규"]가 '개발 시간 최소화' 라는 문제 때문에 시작부터 TDD와 Refactoring 그리고 OOP를 버렸습니다. 그래서 중복도 심하고 남에게 보여주기 정말 부끄럽지만... 용기내서 올립니다. 리펙토링 후에 변한 모습을 다시 올리도록 하겠습니다.
         == Thread ==
  • 2006김창준선배창의세미나 . . . . 1 match
          * Universal Patterns - General Coceptual Framework : 주역(Reflective ,,), 음양 오행, 사상
  • 2006신입생/연락처 . . . . 1 match
         || [http://165.194.17.5/zero/?url=zeropage&title=%BE%C8%B3%E7%C7%CF%BC%BC%BF%E4 송태의] || kofboy at dreamwiz dot com || 010-4691-5179 ||
         || 변형진 || bhjxx at empal닷com || 926-0613-4010 (Reversed) ||
  • 2010JavaScript/강소현/연습 . . . . 1 match
         <area shape="circle" coords="150,150,20"
         href="http://sstatic.naver.com/ncr/Recipe/1/20100413204704092_X0KZLRZZ1.jpg">
         <img src ="http://www.court-records.net/places/DS/berryoffice.png" width ="480" height ="300"
         <area shape ="rect" coords ="151,175,321,224"
         <!-- rect는 x1,y1(왼쪽위),x2,y2(오른쪽아래)의 좌표를 지정한 직사각형-->
         <area shape ="rect" coords ="54,78,130,208"
         <area shape ="poly" coords ="92,239,139,232,164,257,109,268"
         <area shape ="rect" coords ="240,75,320,170"
         <area shape ="poly" coords
  • 2011년MT . . . . 1 match
         * R means 'Refunded'.
  • 2학기파이선스터디/문자열 . . . . 1 match
          4. 반복(Repeat) = *
         Traceback (most recent call last):
  • 3DGraphicsFoundation/MathLibraryTemplateExample . . . . 1 match
         void NormalRet (vec3_t a, vec3_t b, vec3_t c, vec3_t &out); // 노멀 벡터 계산
  • 3N+1Problem . . . . 1 match
         CS에서 등장하는 문제의 종류는 여러가지가 있는데 (예를 들어, NP, Unsolvable, Recursive...) 이 문제는 '입력에 대해 출력이 어떻게 나올지 모르는' 이라고 분류할만한 것에 대한 분석을 하는 것이다. (해석이 애매하군요; )
  • 3N+1Problem/강소현 . . . . 1 match
         ||Language||C++||Result||Accepted||
         #include <iostream>
          return len;
          return max;
          return 0;
  • 5인용C++스터디/에디트박스와콤보박스 . . . . 1 match
         Create / 에디트를 만든다.
         이 멤버함수들 중에서 Create 함수를 사용하면 대화상자 템플리트에 에디트를 배치하지 않고도 실행중에 에디트 컨트롤을 생성할 수 있다.
          CreateEdit라는 프로젝트를 만들어보자. 폼뷰가 아닌 일반 뷰에 에디트를 배치하려면 뷰가 생성될 때 (WM_CREATE) OnCreate에서 에디트를 생성시키면 된다. 우선 뷰의 헤더파일을 열어 CEdit형 포인터를 선언한다.
         class CCreateEditView : public CView
          CCreateEditView();
          DECLARE_DYNCREATE(CCreateEditView)
          CCreateEditDoc* GetDocument();
          그리고 뷰의 WM_CREATE 메시지 핸들러인 OnCreate를 작성하고 이 핸들러에서 에디트를 생성한다.
         int CCreateEditView::OnCreate(LPCREATESTRUCT lpCreateStruct)
          if(CView::OnCreate(lpCreateStruct) == -1)
          return -1;
          m_pEdit -> Create(WS_CHILD | WS_VISIBLE | WS_BORDER,
          CRect(10, 10, 300, 35), this, IDC_MYEDIT);
          return 0;
          m_Edit가 CEdit의 포인터로 선언되었으므로 일단 new 연산자로 CEdit객체를 만든다. 그리고 이 객체의 Create 멤버함수를 호출하여 에디트를 생성한다. Create 함수의 원형은 다음과 같다.
         BOOL Create(DWORD dwstyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
         void CCreateEditView::OnDestroy()
          이렇게 Create 함수로 만든 에디트의 통지 메시지는 어떻게 처리해야 할까. 클래스 위저드가 메시지 핸들러를 만들 때 해주는 세가지 동작을 프로그래머가 직접 해줘야 한다. 우선 메시지 맵에서 메시지와 메시지 핸들러를 연결시켜 준다. ON_EN_CHANGE 매크로에 의해 IDC_MYEDIT 에디트가 EN_CHANGE 메시지를 보내올 때 OnChangeEdit1 함수가 호출된다.
         BEGIN_MESSAGE_MAP(CCreateEditView, CView)
          //{{AFX_MSG_MAP((CCreateEditView)
  • ACM_ICPC/2011년스터디 . . . . 1 match
          * ACM-ICPC 2011 Asia Daejeon Regional에 도전한다.
          * 제 코드에 무엇이 문제인지 깨달았습니다. 입출력이 문제가 아니었어요. 숫자 범위 괜히 0이거나 3000 이상이면 "Not jolly" 출력하고 break하니까 이후에 더 적은 숫자가 들어온 경우가 무시당해서 Wrong Answer(출력 하든 안하든, 0 제외하고 3000 이상일 때만 하든 다 Wrong..;ㅅ;) 입력을 하지 않을 때까지 계속 받아야 하는데, 임의로 끊었더니 그만..... 그리고 continue로 해도 마찬가지로 3000을 제외하고 입력 버퍼에 남아있던 것들이 이어서 들어가서 꼬이게 되는! Scanner을 비우는 거는 어찌 하는 걸까요오;ㅁ;? 쨋든 그냥 맘 편하게 조건 지우고 Accepted ㅋㅋ 보증금 및 지각비 관련 내용은 엑셀에 따로 저장하였습니다. - [강소현]
          * [권순의] - 얼라 이거 안 쓰고 있었네 (흠흠) 솔져는 참.. 어이없게 끝났네요. 결국 마무리도 못하고 -_-;; 이번 문제는 어렵지는 않았는데,, 왜 Presentation Error가 뜨는거지 이러고 있습니다. -_-;;
  • ADO . . . . 1 match
         #Redirect ActiveXDataObjects
  • AKnight'sJourney/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          public static int [][] direct = {{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}};
          return false;
          return true;
          for(int i=0; i<direct.length; i++){
          if(isPromising(p+direct[i][0], q+direct[i][1], path, count+1)){
          return true;
          return false;
  • API . . . . 1 match
         #Redirect ApplicationProgrammingInterface
  • API/ISAPI . . . . 1 match
         #Redirect ISAPI
  • API/WindowsAPI . . . . 1 match
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
         int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
          WndClass.style=CS_HREDRAW | CS_VREDRAW;
          RegisterClass(&WndClass);
          hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
          return Message.wParam;
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
          return 0;
          return(DefWindowProc(hWnd,iMessage,wParam,lParam));
  • ATmega163 . . . . 1 match
         == Features ==
          * Real Time Clock
          * Tree PWM Channels
          * Byte - oriented 2-wire Serial Interface
          * 이후 새롬 데이타맨에서 모뎀에 의한 연결로 SETTING하고 baud rate를 19300(ㅠㅠ) 로 설정 후 reset 버튼을 누르면 [[BR]]
         #put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.)
         #put the name of the target file here (without extension)
         #put your C sourcefiles here
         #put additional assembler source file here
          LDFLAGS = -Wl,-Map=$(TRG).map,--cref
         ###### dependecies, add any dependencies you need here ###################
  • AcceleratedC++ . . . . 1 match
          || ["AcceleratedC++/Chapter10"] || Managing memory and low-level data structures || ||
          || ["AcceleratedC++/Chapter15"] || Revisiting character pictures|| ||
          || ["AcceleratedC++/Chapter16"] || Where do we go from here? || ||
          || [http://lab.msdn.microsoft.com/express/visualc/default.aspx VS2005C++Express] || .net 2005의 VSC++버전의 Express Edition ||
         == Thread ==
  • AcceleratedC++/Chapter10 . . . . 1 match
         = Chapter 10 Managing memory and low-level data structures =
          || 주소 연산자(address operator) || 객체의 주소를 리턴한다. ||
          || 역참조 연산자(dereference operator) || 포인터 p가 가리키는 객체를 리턴한다. ||
         #include <iostream>
          return 0;
          return n+1;
         void write_analysis(std::ostream& out, const std::string& name,
         template<class In, class Pred>
         In find_if(In begin, In end, Pred f) {
          while (begin != end && if f(*begin)) //여기서 Pred는 Pred(*begin)이 의미를 갖는 모든 타입이 가용합니다.
          return begin;
          return n<0;
         == 10.2 String literals revisited ==
          return size;
          // given a numeric grade, find and return the associated letter grade
          return letters[i];
          return "?\?\?";
         #include <iostream>
          // if there are command-line arguments, write them
          // write each remaining argument with a space before it
  • AcceleratedC++/Chapter15 . . . . 1 match
         = Chapter 15 Revisiting character pictures =
  • AcceleratedC++/Chapter7 . . . . 1 match
         (예를 들자면 WikiPedia:Binary_search_tree, WikiPedia:AVL_tree 와 같이 최적화된 알고리즘을 통해서 우리는
         #include <iostream>
          map<string, int> counters; // store each word and an associated counter
          // read the input, keeping track of each word and how often we see it
          return 0;
         == 7.3 Generating a cross-reference table ==
         //cross_reference_table.cpp
         #include <iostream>
         using std::istream; using std::string;
         // find all the lines that refer to each word in the input
         map<string, vector<int> > xref(istream& in, vector<string> find_words(const string&) = split)
          map<string, vector<int> > ret;
          // read the next line
          // break the input line into words
          // remember that each word occurs on the current line
          ret[*it].push_back(line_number); // ret[*it] == (it->second) = vector<int> 같은 표현이다.
          return ret;
          // call `xref' using `split' by default
          map<string, vector<int> > ret = xref(cin);
          // write the results
  • ActiveTemplateLibrary . . . . 1 match
         {{|The Active Template Library (ATL) is a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. The COM support in Visual C++ allows developers to easily create a variety of COM objects, Automation servers, and ActiveX controls.
         pOleWin->Release();
  • Ajax . . . . 1 match
         Ajax or Asynchronous JavaScript and XML is a term describing a web development technique for creating interactive web applications using a combination of:
          * HTML (or XHTML) and CSS for presenting information
          * The Document Object Model manipulated through JavaScript to dynamically display and interact with the information presented
          * The XMLHttpRequest object to exchange data asynchronously with the web server. (XML is commonly used, although any text format will work, including preformatted HTML, plain text, and JSON)
         Like DHTML, LAMP, or SPA, Ajax is not a technology in itself, but a term that refers to the use of a group of technologies together. In fact, derivative/composite technologies based substantially upon Ajax, such as AFLAX are already appearing.
         Ajax applications use web browsers that support the above technologies as a platform to run on. Browsers that support these technologies include Mozilla Firefox, Microsoft Internet Explorer, Opera, Konqueror and Apple Safari.
         http://www.flickr.com picture comment
         = Thread =
  • Ajax/GoogleWebToolkit . . . . 1 match
         The Google Web Toolkit is a free toolkit by Google to develop AJAX applications in the Java programming language. GWT supports rapid client/server development and debugging in any Java IDE. In a subsequent deployment step, the GWT compiler translates a working Java application into equivalent JavaScript that programatically manipulates a web brower's HTML DOM using DHTML techniques. GWT emphasizes reusable, efficient solutions to recurring AJAX challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
         = Related =
         = thread =
  • Ajax2006Summer/프로그램설치 . . . . 1 match
         3. Workspace 설정 후 '''Help''' - '''Software Updates''' - '''Find and Install''' 을 선택합니다.
         4. 다음 다이얼로그에서는 '''Search for new features to install''' 을 선택 후 '''Next>'''를 클릭합니다.
         8. 위쪽에 오류메세지가 나옵니다. 그 때 버튼 중에 '''Select Required''' 를 선택합니다.
  • AnEasyProblem/강성현 . . . . 1 match
         ||Language||G++||Result||Accepted||
         #include <iostream>
          if (i == 0) break;
          if (cc == c) break;
          return 0;
  • AnEasyProblem/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          break;
          break;
          int result = 0;
          result += bin[k]*Math.pow(2,k);
          System.out.println(result);
          return temp;
  • AnEasyProblem/김태진 . . . . 1 match
         ||Problem|| 2453||User||jereneal20||
         ||Language||GCC||Result||Accepted||
          if(N==0) break;
          return 0;
          return kf;
  • AncientCipher/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          if(compare(c,p))
          private static boolean compare(char[] c, char[] p) {
          int[] cSpread = new int[26];
          int[] pSpread = new int[26];
          cSpread[c[i]-65]++;
          pSpread[p[i]-65]++;
          for(int i=0; i<cSpread.length; i++)
          if(!find(cSpread,pSpread[i],check))
          return false;
          return true;
          private static boolean find(int[] cSpread, int pWord, boolean[] check) {
          for(int i=0; i<cSpread.length;i++)
          if(!check[i] && cSpread[i] == pWord){
          return true;
          return false;
  • Ant . . . . 1 match
          || Attribute || Description || Required ||
          <target name="build-module-A" if="module-A-present"/>[[BR]]
          <target name="build-own-fake-module-A" unless="module-A-present"/>[[BR]]
  • ArsDigitaUniversity . . . . 1 match
         학부생 수준의 전산 전공을 일년만에 마칠 수 있을까. 그런 대학이 있다(비록 지금은 펀드 문제로 중단했지만). 인터넷계의 스타 필립 그리스펀과 그의 동료 MIT 교수들이 만든 학교 ArsDigitaUniversity다. (고로, Scheme과 함께 NoSmok:StructureAndInterpretationOfComputerPrograms 를 가르친다)
         자신의 전산학 지식을 전체적으로 정리하거나, 밑바닥부터 새로 공부하고 싶은 사람들에게 많은 참고가 된다 -- 모든 수업이 한 달이면 끝난다. ArsDigitaUniversity의 "하면서 배우는"(learn by doing) 교육 모델(날마다 구체적인 Problem Set이 주어지고 오전에 수업이 끝나면 오후에 Recitation을 하며, 매 주 NoSmok:교육적인시험 을 친다)도 흥미롭다. 모든 수업에 대해 VOD와 문제, 해답, 수업 노트가 제공된다.
  • Atom . . . . 1 match
         Atom is an XML-based document format and HTTP-based protocol designed for the syndication of Web content such as weblogs and news headlines to Web sites as well as directly to user agents. It is based on experience gained in using the various versions of RSS. Atom was briefly known as "Pie" and then "Echo".
         The completed Atom syndication format specification was submitted to the IETF for approval in June 2005, the final step in becoming an RFC Internet Standard. In July, the Atom syndication format was declared ready for implementation[1]. The latest Atom data format and publishing protocols are linked from the Working Group's home page.
         Before the Atom work entered the IETF process, the group produced "Atom 0.3", which has support from a fairly wide variety of syndication tools both on the publishing and consuming side. In particular, it is generated by several Google-related services, namely Blogger and Gmail.
         = Related Site =
         [http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared RSSAtomCompare]
  • AudioFormatSummary . . . . 1 match
         || ra || ? || [http://www.real.com/ RealMedia] || . ||
         || ogg || Free (정확히는..) || [http://vorbis.com] || 오픈소스. 손실압축이지만 커버하는 대역이 mp3보다 넓다 ||
  • Benghun/Diary . . . . 1 match
         아는 사람 중에 함수나 클래스를 만드는 것을 대단히 꺼리는 사람이 있다. 만들면 좋을 것 같은 간단한 함수조차도 직접 만들려고 하지 않는다. 하지만 이미 잘 만들어 진 라이브러리는 자주 사용한다. dependency가 없다면 변경에 영향을 받는 모듈이 없을 것이다. 나름대로 잘 사용하는 replace all in files, replace all in file, copy & paste등이 강력한 프로그래밍 도구중 하나인 것 같기도 하다.(최소한 나보다는 잘 사용하는 것 같다, 나름대로의 노하우도 있는 것 같다) 아마도 그는 dependency를 최소화하는 것에 큰 관심이 있거나 다른 이유가 있나보다.
         Refactoring 세미나 시작한 날 , 근효선배가 스터디에 합류했다
  • BlogChanges . . . . 1 match
         '''See also:''' RecentChanges
  • BlogLines . . . . 1 match
         웹용 [RSSAggregator]
         써본 경험에 의하면... publication 으로 개인용 블로그정도에다가 공개하기엔 쓸만하다. 그냥 사용자의 관심사를 알 수 있을 테니까? 성능이나 기능으로 보면 한참멀었다. 단순한 reader 이외의 용도로 쓸만하지 못하고, web interface 라서 platform-independable 하다는 것 이외의 장점을 찾아보기 힘들다. - [eternalbleu]
         [1002] 의 경우는 FireFox + Bloglines 조합을 즐겨쓴다. (이전에는 FireFox + Sage 조합) 좋은 점으로는, 쓰는 패턴은, 마음에 드는 피드들이 있으면 일단 주욱 탭으로 열어놓은뒤, 나중에 탭들만 주욱 본다. 그리고, 자주 쓰진 않지만, Recommendations 기능과 Subscribe Bookmarklet, feed 공유 기능. 그리고, 위의 기능들을 다 무시함에도 불구하고 기본적으로 쓸모있는것 : 웹(서버사이드)라는 점. 다른 컴퓨터에서 작업할때 피드 리스트 싱크해야 하거나 할 필요가 없다는 것은 큰 장점이라 생각. --[1002]
         DeleteMe) 영창쓰는 Aggregator 어떤거 쓰는중?
  • BookTemplate . . . . 1 match
          * Review :
  • Boost/SmartPointer . . . . 1 match
         == shared_ptr ==
         typedef shared_ptr<Vertex3D> Vertex3DSPtr;
         typedef shared_ptr<Vertexs> VertexsSPtr;
         === shared_ptr_example ===
         shared_ptr_example.cpp
         // Boost shared_ptr_example.cpp --------------------------------------------//
         // use, modify, sell and distribute this software is granted provided this
         // copyright notice appears in all copies. This software is provided "as is"
         // without express or implied warranty, and with no claim as to its
         // See http://www.boost.org for most recent version including documentation.
         // Revision History
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         #include <iostream>
         #include <boost/shared_ptr.hpp>
         // accessed both by occurrence (std::vector)
         // and by ordering relationship (std::set).
         typedef boost::shared_ptr<Foo> FooPtr;
          { return a->x > b->x; }
          foo_ptr.reset( new Foo( 1 ) );
  • BoostLibrary/SmartPointer . . . . 1 match
         == shared_ptr ==
         typedef shared_ptr<Vertex3D> Vertex3DSPtr;
         typedef shared_ptr<Vertexs> VertexsSPtr;
         === shared_ptr_example ===
         shared_ptr_example.cpp
         // Boost shared_ptr_example.cpp --------------------------------------------//
         // use, modify, sell and distribute this software is granted provided this
         // copyright notice appears in all copies. This software is provided "as is"
         // without express or implied warranty, and with no claim as to its
         // See http://www.boost.org for most recent version including documentation.
         // Revision History
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         #include <iostream>
         #include <boost/shared_ptr.hpp>
         // accessed both by occurrence (std::vector)
         // and by ordering relationship (std::set).
         typedef boost::shared_ptr<Foo> FooPtr;
          { return a->x > b->x; }
          foo_ptr.reset( new Foo( 1 ) );
  • BuildingParser . . . . 1 match
         = Reference =
         Writing Compilers and Interpreters by Ronald Mak
         Programming Language Processors in Java: Compilers and Interpreters by David Watt, Deryck Brown
         뭔가 스펙이 엉성함. 샘플 입력 read; 이 부분 틀린 것 같음. 샘플 출력에 일관성이 없음. 교수님께서는 일부로 스펙을 그렇게 내주신 것인가! 과연... 예외사항이 뭐가 나올까? 테스트 데이터 공유해 보아요. - 보창
  • BusSimulation/영동 . . . . 1 match
         #include<iostream.h>
          break;
          cout<<"____________Result of Bus Simulation___________"<<endl;
  • Button/진영 . . . . 1 match
          redButton = new JButton("Red");
          add(redButton);
          redButton.addActionListener(this);
          else if(source == redButton)
          color = Color.red;
          repaint();
          private JButton redButton;
  • B급좌파 . . . . 1 match
         http://my.dreamwiz.com/fairday/utopia%20main.htm
         글 투를 보면 대강 누가 썼는지 보일정도이다. Further Reading 에서 가끔 철웅이형이 글을 실을때를 보면.
  • C++ . . . . 1 match
         C++ (pronounced "see plus plus") is a general-purpose computer programming language. It is a statically typed free-form multi-paradigm language supporting procedural programming, data abstraction, object-oriented programming, and generic programming. During the 1990s, C++ became one of the most popular commercial programming languages.
         Bell Labs' Bjarne Stroustrup developed C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. New version of the standard (known informally as C++0x) is being developed.
         In C and C++, the expression x++ increases the value of x by 1 (called incrementing). The name "C++" is a play on this, suggesting an incremental improvement upon C.|}}
         벨 연구소의 [http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup]은 1980년대에 당시의 [C]를 개선해 C++을 개발하였다. (본디 C with Classes라고 명명했다고 한다.) 개선된 부분은 클래스의 지원으로 시작된다. (수많은 특징들 중에서 [가상함수], [:연산자오버로딩 연산자 오버로딩], [:다중상속 다중 상속], [템플릿], [예외처리]의 개념을 지원하는) C++ 표준은 1998년에 ISO/IEC 14882:1998로 재정되었다. 그 표준안의 최신판은 현재 ISO/IEC 14882:2003로서 2003년도 버전이다. 새 버전의 표준안(비공식 명칭 [C++0x])이 현재 개발중이다. [C]와 C++에서 ++이라는 표현은 특정 변수에 1의 값을 증가시키는 것이다. (incrementing이라 함). C++이라는 명칭을 이와 동일한 의미를 갖는데, [C]라는 언어에 증가적인 발전이 있음을 암시하는 것이다.
         = Related =
  • C++/CppUnit . . . . 1 match
         #Redirect CppUnit
  • C++Analysis . . . . 1 match
          * STL Tutorial and Reference Guide, 2E (도서관에 한서 있음)
         == Thread ==
          * 흑~ thread 공부해야 하는데... ㅜ_ㅜ
         ["프로젝트분류"], ["SecretAndTrueOfC++"]
  • C++Seminar03/SimpleCurriculum . . . . 1 match
          ===== Opening Lecture =====
          * Recursion 과 Iteration 에 대한 학습과 이해. (DeleteMe '학습'을 먼저하는게 좋을것 같아요. 학습할 주제로는.. Factorial 이 좋을것 같습니다. - 임인택)
          ==== Opening Lecture ====
         === Thread ===
  • COM . . . . 1 match
         #Redirect ComponentObjectModel
  • CORBA . . . . 1 match
         CORBA(Common Object Request Broker Architecture)는 소프트웨어 객체가 분산 환경에서 협력하여 작동하는 방식에 대한 일단의 명세서이다. 이 명세서에 대한 책임 기관은 OMG이며, 소프트웨어 업계를 대표하는 수 백 개의 회원 업체로 이루어져 있다. CORBA의 핵심부분은 ORB이다. ORB는 객체의 소비자인 클라이언트와 객체 생산자인 서버 사이에서 객체를 전달하는 일종의 버스로 생각될 수 있다. 객체의 소비자에게는 IDL이라는 언어를 이용한 객체 인터페이스가 제공되며, 객체의 생상자에 의해 제공되는 객체의 자세한 구현사항은 객체의 소비자에게는 완전히 숨겨진다.
  • CPPStudy_2005_1 . . . . 1 match
          [http://lab.msdn.microsoft.com/express/visualc/default.aspx VS2005C++Express] .net 2005의 VSC++버전의 Express Edition
          STL Reference) http://www.sgi.com/tech/stl/
  • CPPStudy_2005_1/STL성적처리_2 . . . . 1 match
         #include <iostream>
         #include <fstream>
         bool print_report(ostream&,
          ifstream fin("input.txt");
          print_report(cout, grades);
          return EXIT_SUCCESS;
          vector<string> ret;
          ret.push_back(line.substr(beg, quantity));
          return ret;
          return true;
          return accumulate(grades.begin(), grades.end(), 0.0);
         bool print_report(ostream& os,
          const map< string, vector<int> > record,
          for(map< string, vector<int> >::const_iterator iter = record.begin();
          iter != record.end();
          return true;
         = Result =
         Upload:result.jpg
  • CPPStudy_2005_1/STL성적처리_2_class . . . . 1 match
         = Result =
         Upload:result_stl_grade_sapius.jpg
  • CPPStudy_2005_1/STL성적처리_3 . . . . 1 match
         #include <fstream>
         #include <iostream>
          vector<int> score;
         void readdata(vector<student_type>& ztable); //파일로부터 데이터를 읽어온다
         bool zcompare(const student_type ele1, const student_type ele2); //sort시 비교 조건
          readdata(ztable);
          sort(ztable.begin(),ztable.end(),zcompare);
          return 0;
         void readdata(vector<student_type>& ztable){
          ifstream fin("data.txt");
          tmp.score.push_back(tmp2);
          if(fin.eof()) break;
         bool zcompare(const student_type ele1, const student_type ele2)
          return ele1.avg > ele2.avg;
          i->score[cnt*4+0] << "\t" <<
          i->score[cnt*4+1] << "\t" <<
          i->score[cnt*4+2] << "\t" <<
          i->score[cnt*4+3] << "\t" <<
          i->total = accumulate(i->score.begin()+i->score.size()-4,i->score.end(),0);
         = Result =
  • CVS/길동씨의CVS사용기ForRemote . . . . 1 match
         먼저 다음 내용의 cvs login을 위한 cvs_set_remote.bat 란 세팅 배치 파일을 만들었다.
         cvs_set_remote.bat 내용 (한글부분은 채워넣어 주세요.)
         .\>cvs_set_remote.bat
         cvs import -m "코멘트" 프로젝트이름 VenderTag ReleaseTag
          return 0;
         initial revision: 1.1
         동일하고 cvs_set_remote.bat 을 실행 로그인을 하고, checkout을 한다. 시작 디렉토리는 c:\user> 로 가정하였다.
         C:\User>cvs_set_remote.bat
         #include <iostream>
          return 0;
         C:\User\HelloWorld>cvs commit -m "iostream을 쓴것"
         new revision: 1.2; previous revision: 1.1
         total revisions: 2; selected revisions: 2
         revision 1.2
         iostream을 쓴것
         revision 1.1
         retrieving revision 1.1
         retrieving revision 1.2
         > #include <iostream>
         === Thread ===
  • Cockburn'sUseCaseTemplate . . . . 1 match
          * 기한: Release 1.0
  • CodeCoverage . . . . 1 match
         CodeCoverage 는 Software Testing 에서 사용하는 측정 도구중의 하나이다. 프로그램이 테스트된 소스 코드의 정도를 기술한다. 이는 다른 대다수의 다른 테스트 메소드와 다른다. 왜냐하면 CodeCoverage 는 소프트웨어 기능, Object interface 과 같은 다른 측정 방법에 비하여 source code를 직접 보기 ㅤㄸㅒㅤ문이다.
         일반적으로 소스 코드는 모듈화를 통해 도구처럼 만들어지고, 회귀(regression) 테스트들을 통해 실행되어 진다. 결과 출력은 실행지 않은 코드들을 보고, 이러한 부분에 대한 테스트들이 필요함을 분석해 낸다. 다른 관점의 CodeCoverage 방법들과 혼용하는 것은 회귀 테스트들의 관리하는 회귀 테스트들에게 좀더 엄격한 개발을 이끌어 낸다.
         See also: RegressionTesting, StaticCodeAnalysis
          * http://www.validatedsoftware.com/code_coverage_tools.html : Code Coverage Tool Vender 들
  • ComponentObjectModel . . . . 1 match
         {{|Component Object Model, or COM, is a Microsoft technology for software componentry. It is used to enable cross-software communication and dynamic object creation in many of Microsoft's programming languages. Although it has been implemented on several platforms, it is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework. COM has been around since 1993 - however, Microsoft only really started emphasizing the name around 1997.
         The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET.
         Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
         There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.
         그렇지만 COM은 여전히 소프트웨어의 중요한 기반들과 함께 실용적인 기술이다. 예를 들자면 DirectX 3D의 레더링 SDK 는 COM에 기반하고 있다. Microsoft 는 COM를 계속 개발할 계획도, 지원할 계획도 가지고 있지 않다.
         COM is a feature of Windows. Each version of Windows has a support policy described in the Windows Product Lifecycle.
         COM is a planned feature of the coming version of Windows, code-named "Longhorn".
         = Related =
         = Thread =
  • ComposedMethod . . . . 1 match
         개인적으로, 간단해보이지만 아주 중요한 이야기라 생각함. ProgrammingByIntention 의 입장에서, 또한 '같은 레벨의 추상화를 유지하라'라는 대목에서. (StepwiseRefinement 를 하면 자연스럽게 진행됨) --[1002]
  • ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 1 match
         [http://www.naturesharmony.us/misc/WoW/WoWEmu_Help/wsaerrors.html WSA Error Code]
         [http://www.elbiah.de/hamster/doc/ref/errwinsock.htm Winsock Error Code]
         [ComputerNetworkClass/Report2006]
  • ConcreteMathematics . . . . 1 match
         == Concrete Mathematics ==
         === In finding a closed-form expression for some quantity of interest like T<sub>n</sub> we go Through three stages. ===
         2. Find and prove a mathematical expression for the quantity of interest. (Induction so on..)
         3. Find and prove a closed form for our mathematical expression.
         ==== Recurrent Problems ====
  • ConnectingTheDots . . . . 1 match
         SoftwareDevelopmentMagazine 에 소개된 ModelViewPresenter 관련 구현 예.
         Game - Model. 관계는 Presenter 와만 맺는다. 외부에서 이벤트가 발생했을때는 Presenter 를 통해 통지받는다.
         BoardPanel - View. 실제 Swing 등 구체적 라이브러리들을 이용, 실제 표현을 한다. BoardPresenter 와 상호참조 관계를 가진다.
         BoardPresenter - Presenter. Game 과 BoardPanel 사이의 일종의 Mediator. Game 은
          _presenter = new BoardPresenter(game, this);
         이며 BoardPresenter 를 보면
          public BoardPresenter(Game game, BoardPresenterDrawListener listener) {
         이다. (BoardPresenter 에서 listener 는 BoardPanel)
         BoardPanel.mouseReleased -> BoardPresenter.processClick -> Game.join 식으로 호출되며
         Game.boxClosed -> listener.boxClosed (여기서 listener 는 Presenter. Presenter 들은 여러개가 될 수 있다. Game 객체에 addListener 로 등록된 만큼) -> BoardPanel.drawInitials. 식으로 도메인 모델로부터 올라온다.
  • ContestScoreBoard . . . . 1 match
         === About [ContestScoreBoard] ===
         각 입력은 심사 큐의 스냅샷으로 구성되는데, 여기에는 1번부터 9번까지의 문제를 푸는 1번부터 100번까지의 경시 대회 참가 팀으로부터 입력된 내용이 들어있다. 각 줄은 세 개의 수와 경시 대회 문제 시간 L형식의 글자 하나로 구성된다. L은 C, I, R, U 또는 E라는 값을 가질 수 있는데 이 글자들은 각각 Correct(정답), Incorrect(오답), clarification Request(확인 요청), Unjudged(미심사), Erroneous submission(제출 오류)을 의미한다. 마지막 세 개의 케이스는 점수에 영향을 미치지 않는다.
         || [문보창] || C++ || 90min || [ContestScoreBoard/문보창] ||
         || [신재동] || C++ || 45min || [ContestScoreBoard/신재동] ||
         || 차영권 || C++ || 100min|| [ContestScoreBoard/차영권] ||
         || [조현태] || C || . || [ContestScoreBoard/조현태] ||
         || [허아영] || C++ || 몰라요? || [ContestScoreBoard/허아영] ||
  • CppStudy_2002_1/과제1/CherryBoy . . . . 1 match
         #include <iostream>
          return 0;
         #include <iostream>
          return 0;
         #include <iostream>
          char testing[] = "Reality isn't what it used to be.";
          return 0;
         #include <iostream>
          return 0;
          return 0;
          return 1;
  • CppStudy_2002_1/과제1/Yggdrasil . . . . 1 match
         #include<iostream.h>
         #include<iostream.h>
          return answer;
         #include<iostream.h>
          char testing[]="Reality isn't what it used to be.";
          return 0;
         #include<iostream.h>
          return 0;
          return 1;
         #include<iostream.h>
         #include<iostream.h>
          break;
          return max;
         #include<iostream.h>
          int ret_int=max(arr_int, 6);
          double ret_double=max(arr_double, 4);
          char * ret_char_p=max(arr_char_p, 5);
          cout<<ret_int<<endl;
          cout<<ret_double<<endl;
          cout<<ret_char_p<<endl;
  • CppStudy_2002_1/과제1/상협 . . . . 1 match
         #include <iostream>
          return 0;
         #include <iostream>
          return 0;
         #include <iostream>
          char testing[] = "Reality isn't what it used to be.";
          return 0;
         #include <iostream>
          return 0;
          return 1;
          return 0;
         #include <iostream>
          int re1 = max(ex);
          double re2 = max(ex2);
          cout<<re1<<"\t"<<re2<<"\n";
          return max;
         #include <iostream>
          char *re;
          int re1 = max(ex,5);
          double re2 = max(ex2,5);
  • Cracking/ReverseEngineering/개발자/Software/ . . . . 1 match
         Software 개발자가 알아야 하는 것은 Language, Algorithm만이 아니다. (이 것만 알면 Coder일 뿐이 잖는가?)
         개발자가 만들어 놓은 Software는 다른 사람들에 의해(물론 이런 사람들은 어느정도 컴퓨터에 대한 지식이 있는 사람들) 파괴 되고 분석된다.
         Jeffrey Richter의 Programming Applications for Microsoft Windows란 책을 추천한다. 현재 4th edition까지 나온 상태이다. 물론 한글판은 없다.
         (윈도우즈 시스템 커널이 하는 일등을 배울 수 있으며 그것을 이용해 나쁘게 사용하든 좋게 사용하든 도움이 많이 되는 책이다. Windows에 Base를 둔 Software 개발자로서는 꼭 읽어야할 책.)
         Keyword : Cracking, Reverse Engineering, Packing, Encypher, Encrypt, Encode, Serial, Exploit, Hacking, Jeffrey Ritcher
  • CubicSpline/1002/GraphPanel.py . . . . 1 match
          def __init__(self, parent, id=NewId(), pos=wxDefaultPosition, size=wxDefaultSize):
          wxScrolledWindow.__init__(self, parent, id, pos, size)
          def mappingToScreenX(self, x):
          return (x) * (cx / 2) + cx / 2
          def mappingToScreenY(self, y):
          return (-y) * (cy / 2) + cy / 2
          self.PrepareDC(dc)
          dc.DrawRectangle(0,0, cx, cy)
          realX = self.mappingToScreenX(x)
          realY = self.mappingToScreenY(y)
          dc.DrawPoint(realX, realY)
  • CvsNt . . . . 1 match
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi - 현재 [1002]의 컴퓨터에서 돌고있는 ViewCVS. apache cgi 로 돌리고 있다.
         === Reference ===
         [http://www.redwiki.net/wiki/moin.cgi/CVSNT_20_bc_b3_c4_a1_20_b0_a1_c0_cc_b5_e5_bf_cd_20_c6_c1 CVSNT 설치 가이드와 팁] - 게임쪽에서 유명한 redwiki 님의 글.[DeadLink]
         [http://www.redwiki.net/wiki/wiki.php/CVS 위 redwiki님이 정리한 페이지]
  • CxxTest . . . . 1 match
          return ' '.join(aList)
          '''cmd= "python cxxtestgen.py --runner=ParenPrinter --gui=Win32Gui -o runner.cpp "+toStr(testFiles)'''
          cmd= "python cxxtestgen.py --runner=ParenPrinter -o runner.cpp "+toStr(testFiles)
         단점이 있다면 테스트 상속이 안된다는 점이다. 개인적으로 MockObject 만들어 인터페이스 테스트 만든뒤 RealObject 를 만들어 테스트하는 경우가 많은 만큼 귀찮다. (테스트의 중복으로 이어지므로) 어흑.
  • DataStructure/Tree . . . . 1 match
         = Tree 기본 개념들 =
          * Degree : 노드에 딸려있는 Edge의 수
          * Parent : 부모 노드
         = Binary Tree =
          * n0을 잎사귀 노드의 갯수, n2를 Degree가 2인 노드의 갯수라고 하면 n0 = n2 + 1 이라는 공식이 성립한다.
         = Binray Tree 의 표현 =
          * Parent : 인덱스/2 -> 내림
         = Binary Tree Traversal =
          * PreOrder : Root -> Left Child -> Right Child : 컴파일러가 가장 좋아하는 방식
         PreOrder(a)
          Preorder(a->left)
          Preorder(a->right)
          if(!a) break;
         = Binary Search Trees (우리말로 이진 탐색 트리) =
          * Binray Search Tree 니까 당연히 Binary Tree 여야 한다.
          * Keys in Left Subtree < Keys of Node
          * Keys in Right Subtree > Keys of Node(고로 순서대로 정렬되어 있어야 한단 말입니다.)
          * Search x => Compare with Root
          * else if x > Root's Key Root를 Right Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
          * else if x < Root's Key Root를 Left Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
  • DatabaseClass/Exam2004_1 . . . . 1 match
          * JDBC 의 ResultSet 에서의 next()
         (with, derived relation, view 이용금지)
  • DatabaseManagementSystem . . . . 1 match
         [RelationalDatabaseManagementSystem]
  • DeleteThisPage . . . . 1 match
         일단 자신이 해당 페이지를 지우는 것 보다는 전체 글을 지운뒤 DeleteThisPage 문구 남김 -> 다른 사람들의 동의 (즉, 해당 문구와 history, RecentChanges 를 통한 상황 파악) & 삭제 의 순서를 띄는 것이 위험도를 줄일 수 있겠다.
  • DesignPatterns . . . . 1 match
         ["디자인패턴"] 서적중에서 레퍼런스(Reference) 라 불러지는 책. OOP 를 막연하게 알고 있고 실질적으로 어떻게 설계해야 할까 하며 고민하는 사람들에게 감동으로 다가올 책. T_T
  • DesignPatterns/2011년스터디/1학기 . . . . 1 match
          1. SRP(Single Response Principle)에 대해 얘기하면서 '책임'이란 무엇인가에 대한 이야기가 나왔다. 삽질 경험이 없는 사람에게 객체지향 원칙을 설명할 때 '책임'이 무엇인지 어떻게 이해시켜야 할지 모르겠다. 오늘 얘기하면서 낸 결론도 경험이 없으면 이해하기 어렵다는 것…
  • DesigningObjectOrientedSoftware . . . . 1 match
         Object 의 ClassResponsibiltyCollaboration 에 대한 개념이 잘 설명되어있는 책.
  • DevelopmentinWindows/UI . . . . 1 match
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/UI/ProgressBar.jpg
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/UI/TreeView.jpg
          http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/UI/Replace.jpg
  • DirectDraw/APIBasisSource . . . . 1 match
         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
         int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
          wc.style = CS_VREDRAW | CS_HREDRAW;
          RegisterClass( &wc );
          hWnd = CreateWindowEx( 0, "DXTEST", "DXTEST",
          if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ) )
          return (int)msg.wParam;
          return (int)msg.wParam;
         LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
          break;
          return DefWindowProc(hWnd, msg, wParam, lParam);
         ["DirectDraw"]
  • DirectDraw/DDUtil . . . . 1 match
         DXSDK에서 제공하는 함수 모음집.(ㅡ.ㅡa) (Direct Draw 의 Wrapping Class 가 되겠지요.)
         DirectDraw의 생성과 Surface와 연결을 담당하는 Class
         CreateFullScreenDisplay(HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP)
          DirectDraw 장치를 풀스크린 모드로 생성한다.
         CreateWindowedDisplay HWND hWnd, DWORD dwWidth, DWORD dwHeight)
         CreateSurface( CSurface **ppSurface, DWORD dwWidth, DWORD dwHeight)
         CreateSurfaceFromBitmap(CSurface** ppSurface, TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight)
         CreateSurfaceFromText( CSurface** ppSurface, HFONT hFont, TCHAR* strText, COLORREF crBackground, COLORREF crForeground)
         CreatePaletteFromBitmap( LPDIRECTDRAWPALETTE *ppPalette, const TCHAR *strBMP)
         SetPalette( LPDIRECTDRAWPALETTE pPalette)
         ShowBitmap(HBITMAP hbm, LPDIRECTDRAWPALETTE pPalette)
         ColorKeyBlt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc)
         Blt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc, DWORD dwFlags)
         Blt(DWORD x, DWORD y, CSurface *pSurface, RECT *prc)
         Present()
          CDislpay의 멤버 m_rcWindow를 갱신한다. 저 CRect형 변수에는 윈도우의 크기가 들어있다.
          컬러키(투명색)으로 사용할 색을 COLORREF (RGB) 형에 맞추어서 집어넣으면 된다. [[BR]]
         DirectDraw
  • EclipsePlugin . . . . 1 match
          * Restart Workbench
         ==== Colorer take5 Library ====
         여러 언어의 소스의 Highlight 해주는 라이브러리인데 여기에 Eclipse Plug-in 도 있습니다. JSP, C/C++, HTML, XML 등등 여러 타입이 지원됩니다. [http://colorer.sourceforge.net/lang-list.html 지원 언어 목록]
          * http://colorer.sourceforge.net/
         http://colorer.sourceforge.net/php/demos.php
  • Eclipse와 JSP . . . . 1 match
         == Cite Address ==
         [http://download.eclipse.org/webtools/downloads/] 에서 Release 에서 최신 버젼 다운
         Windows->Preferences->Tomcat 선택 후
          * 톰캣이 설치된 폴더를 Tomcat Home으로 설정 ex) C:\Program Files\Apache Software Foundation\Tomcat 5.5
         (필요한 경우) Windows->Preferences->Tomcat->Advanced 선택 후
          * Tomcat Base 설정 ex) C:\Program Files\Apache Software Foundation\Tomcat 5.5
         work/org/apache/jsp부분 해당 소스에 break point를 걸고(해당 페이지 좌측에 더블 클릭) 웹 페이지 구동하면 break point에서 걸린다
         F8 이 다음 Break Point 까지 이동
         work에서 마우스 오른 쪽 후 refresh
         == Thread ==
  • EightQueenProblem/이준욱 . . . . 1 match
         void result(void)
          for (printf("\nResult: "); i < 8 ; printf("[%2x] ", rmap[i++]));
         int mask(unsigned char * tmap , register int x, register int y)
          register int i;
          if(map[y] & MASK << x) return 0;
          return 1;
          if((depth + 1) == 8) result();
          return 0;
  • EightQueenProblem2Discussion . . . . 1 match
         EightQueenProblem2를 풀면서 혹은 푸는데 실패하면서 얻은 ThreeFs 공유, 토론
         문제를 나름대로 해결한 사람들은 StepwiseRefinement를 꼭 공부해 보세요.
         BackTracking 이야기가 나오는데, 대강 수업시간에 들은것이 있었지만 그냥 연습장에 판을 그리고 직접 궁리했고요. 결국은 전체 방법에 대한 비교방법이 되어서 (8단계에 대한 Tree) 최종 구현부분은 BackTracking의 방법이 되어버리긴 했네요. (사전지식에 대해 영향받음은 어쩔수 없겠죠. 아에 접해보지 않은이상은. --;) --석천
  • EnglishSpeaking/2012년스터디 . . . . 1 match
          * [https://trello.com/board/english-speaking-study/5076953bf302c8fb5a636efa Trello]
          * Don't be nervous! Don't be shy! Mistakes are welcomed. We talk about everything in English.
         = Regular Meetings =
          * [http://www.youtube.com/watch?v=C3p_N9FPdy4 English Speaking Schools Are Evil]
          * Free talking and retrospective.
         @ 527 Lecture Room
          * We listened audio file and read part of script by taking role.(And after reading script once, we also change our role and read script again.)
          * Free talking and retrospective.
          * 2nd time of ESS! Our English speaking ability is not growing visibly but that's OK. It's just 2nd time. But we need to study everyday for expanding our vocabulary and increasing our ability rapidly. Thus I'll memorize vocabulary and study with basic English application(It's an android application. I get it for FREE! YAY!) I wish I can speak English more fluent in our 20th study. XD
          * Listen and read script.
          * Free talking and retrospective.
          * Today, we were little confused by Yunji's appearance. We expected conversation between 2 persons but there were 3 persons who take part in episode 2. And we made a mistake about deviding part. Next time, when we get 3 persons' conversation again, we should pay attention to devide part equally. Or we can do line by line reading instead of role playing.
          * We decided to talk about technical subject freely, about 3 minutes in every month. It might be a little hard stuff at first time. But let's do it first and make it better gradually. Do not forget our slogan(?) - '''''Don't be nervous! Don't be shy! Mistakes are welcomed.'''''
  • EnglishWritingClass/Exam2006_1 . . . . 1 match
         교과서 "Ready To Write" 에서 제시된 글쓰기의 과정을 묻는 문제가 다수 출제되었음. (비록 배점은 낮지만)
         1. Prewriting 종류를 기술하라.
         Freewriting, Clustering, Brainstorming, Planning
  • EnterpriseJavaBeans . . . . 1 match
         Lomboz - ["Eclipse"] 플러그인. 내부적으로 XDoclet를 이용, Home & Remote & Local Interface 를 자동으로 생성해준다.
  • ErdosNumbers . . . . 1 match
         Erdos, P., Reisig, W.: Stuttering in petri nets
         Smith, M.N., Chen, X.: First oder derivates in structured programming
         Jablonski, T., Hsueh, Z.: Selfstabilizing data structures
  • Eric3 . . . . 1 match
         무료 Python IDE. 제공하는 기능이 꽤 많은듯 하다. [Refactoring]을 지원하는게 가장 큰 기능중의 하나가 아닐까 생각한다.
         http://www.die-offenbachs.de/detlev/images/eric3-screen-1.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-2.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-3.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-4.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-5.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-6.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-7.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-8.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-9.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-10.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-11.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-12.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-13.png
         http://www.die-offenbachs.de/detlev/images/eric3-screen-14.png
  • Euclid'sGame/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          break;
          if(g>1) break;
  • Expat . . . . 1 match
         Expat is a stream-oriented XML 1.0 parser library, written in C. Expat was one of the first open source XML parsers and has been incorporated into many open source projects, including the Apache HTTP Server, Mozilla, Perl, Python and PHP.
         James Clark released version 1.0 in 1998 while serving as technical lead on the XML Working Group at the World Wide Web Consortium. Clark released two more versions, 1.1 and 1.2, before turning the project over to a group led by Clark Cooper, Fred Drake and Paul Prescod in 2000. The new group released version 1.95.0 in September 2000 and continues to release new versions to incorporate bug fixes and enhancements. Expat is hosted as a SourceForge project. Versions are available for most major operating systems.
         To use the Expat library, programs first register handler functions with Expat. When Expat parses an XML document, it calls the registered handlers as it finds relevant tokens in the input stream. These tokens and their associated handler calls are called events. Typically, programs register handler functions for XML element start or stop events and character events. Expat provides facilities for more sophisticated event handling such as XML Namespace declarations, processing instructions and DTD events.
         Expat's parsing events are similar to the events defined in the Simple API for XML (SAX), but Expat is not a SAX-compliant parser. Projects incorporating the Expat library often build SAX and DOM parsers on top of Expat.
         = Related =
         = thread =
  • ExtractMethod . . . . 1 match
         See ["Refactoring/ComposingMethods"]
  • FileStructureClass . . . . 1 match
         수업내용: 화일 구조에 관한것과 DB 를 쓰기 이전 직접 화일 구조를 만들어서 데이터처리를 할때 데이터 추가/삭제/변경에 관한 이것저것들. External Sort, B-Tree 등의 자료구조와 관련한 좀 더 심화된 내용들.
         === Report Specification ===
         BTree
  • FocusOnFundamentals . . . . 1 match
         '''Software Engineering Education Can, And Must, Focus On Fundamentals.'''
         Tube Manual" was of no use. None of my lecturers extolled the virtues of a particular tube or type
         of tube. When I asked why, I was told that the devices and technologies that were popular then
         would be of no interest in a decade. Instead, I learned fundamental physics, mathematics, and a
         laboratory assignments, in my hobby (amateur radio), as well as in summer jobs, but the lectures
         taught concepts of more lasting value that, even today, help me to understand and use new
         Readers familiar with the software field will note that today's "important" topics are not
         to experiment with some new ones. However, we must remember that these topics are today's
         replacements for earlier fads and panaceas and will themselves be replaced. It is the responsibility
         of educators to remember that today's students' careers could last four decades. We must identify
         the lectures. Many programmes lose sight of the fact that learning a particular system or language
         --David Parnas from [http://www.cs.utexas.edu/users/almstrum/classes/cs373/fall98/parnas-crl361.pdf Software Engineering Programmes Are Not Computer Science Programmes]
         Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them.
         Q: What advice do you have for computer science/software engineering students?
         A: Most students who are studying computer science really want to study software engineering but they don't have that choice. There are very few programs that are designed as engineering programs but specialize in software.
         I would advise students to pay more attention to the fundamental ideas rather than the latest technology. The technology will be out-of-date before they graduate. Fundamental ideas never get out of date. However, what worries me about what I just said is that some people would think of Turing machines and Goedel's theorem as fundamentals. I think those things are fundamental but they are also nearly irrelevant. I think there are fundamental design principles, for example structured programming principles, the good ideas in "Object Oriented" programming, etc.
  • FortuneCookies . . . . 1 match
          * "It seems strange to meet computer geeks who're still primarily running Windows... as if they were still cooking on a wood stove or something." - mbp
          * "Heck, I'm having a hard time imagining the DOM as civilized!" -- Fred L. Drake, Jr.
          * Some men are discovered; others are found out.
          * By failing to prepare, you are preparing to fail.
          * If you always postpone pleasure you will never have it. Quit work and play for once!
          * Your present plans will be successful.
          * He who spends a storm beneath a tree, takes life with a grain of TNT.
          * You attempt things that you do not even plan because of your extreme stupidity.
          * Take care of the luxuries and the necessities will take care of themselves.
          * Words are the voice of the heart.
          * The best prophet of the future is the past.
          * Money will say more in one moment than the most eloquent lover can in years.
          * Creditors have much better memories than debtors.
          * Alimony and bribes will engage a large share of your wealth.
          * Stop searching forever. Happiness is just next to you.
          * Mind your own business, Spock. I'm sick of your halfbreed interference.
          * You are secretive in your dealings but never to the extent of trickery.
          * You are tricky, but never to the point of dishonesty.
          * The person you rejected yesterday could make you happy, if you say yes.
          * Show your affection, which will probably meet with pleasant response.
  • FreechalAlbumSpider . . . . 1 match
          * 결과물 : http://dolcom.toher.net/~reset/zb/zboard.php?id=gallery
          * 소스 : ZPCvs:FreechalAlbumSpider (테스트를 위해선 proper.py 수정 필요)
         vi - python - ctags - grep 조합이 손에 참 잘 들어맞는다. 다른 Python 쪽 좋은 IDE들을 잘 못접해서 그런지 개인적으론 가장 편한 조합이 되었다. 타 개발툴들로 작업할때 하던 일들을 이것들의 조합으로 의식적으로 할 수 있게 된다.
         처음에는 모듈에 대해 Remote Test 를 먼저 진행했다가, Local Test 로서 일단 HTML 문서를 받아놓고, 이를 TDD 로 하면서 데이터들을 추출하는것이 낫겠다 판단, Local Html Test 를 작성해나갔다. 이전 ProjectPrometheus 에서 했었던 방법과 비슷했었던지라, 일사천리로 거의 하루동안 관련 작업들이 끝났다.
         암만 해도 안 되서요.. freechal 앨범용량이 너무 커져서 앨범의 일부분을 이주하려고 하는데, 이미지 가져오는 부분을 PHP로 하는데 잘 안되서요..
          늦게서야 보게 되어서..; 지금도 작동을 할런지는 잘 모르겠습니다. 알바때문에 바빠서 유지보수를 못하는 중인지라.. freechal service UI 가 바뀌면 깨지는 녀석일것인지라..; 사용하기전에 필요한 것으론 Python 2.2x 버전 정도와 MySQLdb 라이브러리가 필요하고요. 해당 proper.py 화일을 맞춰주신뒤, freechalscript.py 를 실행해주시면 됩니다. 같은 역할을 하는 프로그램은 http://www.perlmania.or.kr 에서 먼저 구현된걸로 기억합니다. 거기서 해당 강좌도 있던걸로 기억하오니 참조하세요. --[1002]
  • FromCopyAndPasteToDotNET . . . . 1 match
          * [http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_aboutole.asp What OLE Is Really About]
          * [http://msdn.microsoft.com/library/en-us/dndcom/html/msdn_dcomarch.asp DCOM Architecture]
         === Thread ===
  • FrontPage . . . . 1 match
         <div style = "float:right"> <a href="https://wiki.zeropage.org/wiki.php/UserPreferences">로그인하러가기</a> </div>
          * [https://docs.google.com/spreadsheet/ccc?key=0AuA1WWfytN5gdEZsZVZQTzFyRzdqMVNiS0RDSHZySnc&usp=sharing 기자재 목록]
          * [https://docs.google.com/spreadsheets/d/1c5oB2qnh64Em4yVOeG2XT4i_YXdPsygzpqbG6yoC3IY/edit?usp=sharing 도서목록]
         [[RecentChanges()]]
  • Functor . . . . 1 match
         A function object, often called a functor, is a computer programming construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax. The exact meaning may vary among programming languages. A functor used in this manner in computing bears little relation to the term functor as used in the mathematical field of category theory.
         비슷한 구현에 대해서 OO 쪽에서는 MethodObject 라 부르기도 함. (Refactoring에 나옴) 구현 모양상으로 보면 CommandPattern, C++ 진영에서는 Functor 가 일반적인 표현.; --[1002]
  • FundamentalDesignPattern . . . . 1 match
         DesignPatterns 의 패턴들에 비해 구현이 간단하면서도 필수적인 패턴. 전체적으로 가장 기본이 되는 소형 패턴들. 다른 패턴들과 같이 이용된다. ["Refactoring"] 을 하면서 어느정도 유도되는 것들도 있겠다. (Delegation의 경우는 사람들이 정식명칭을 모르더라도 이미 쓰고 있을 것이다. Java 에서의 InterfacePattern 도 마찬가지.)
  • GDG . . . . 1 match
          * Google Korea 부장님과 [김민재] 컨택.
          * GDG Pre-DevFest Hackathon 2013 에 참여하고, GDG DevFest Korea 2013의 HackFair 안드로이드 애플리케이션 공모전에 작품 출품.
          * GDG Korea(구글 코리아) 미팅 참석
          * Chapter Status Requirements 활동이 제로페이지의 활동과 겹치는 부분이 많다고 생각함. 이 부분에 대해서 제로페이지 위주로 활동을 할 것인지, GDG 활동을 할 것인지에 따라 필요 유무가 확실하게 갈릴 것으로 보임 - [이봉규]
  • GUIProgramming . . . . 1 match
         Related) [MicrosoftFoundationClasses]
  • GarbageCollection . . . . 1 match
         2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
         특정 주기를 가지고 가비지 컬렉션을 하기 때문에 그 시점에서 상당한 시간상 성능의 저하가 생긴다. 이건 일반적 애플리케이션에서는 문제가 되지 않지만, time critical 애플리케이션에서는 상당한 문제가 될 부분임. (Incremental garbage collection? 를 이용하면 이 문제를 어느정도 해결하지만 리얼타임 동작을 완전하게 보장하기는 어렵다고 함.)
         = Related =
         = thread =
  • Gof/AbstractFactory . . . . 1 match
         http://zeropage.org/~reset/zb/data/abfac109.gif
         각각의 룩앤필에는 해당하는 WidgetFactory의 서브클래스가 있다. 각각의 서브클래스는 해당 룩앤필의 고유한 widget을 생성할 수 있는 기능이 있다. 예를 들면, MotifWidgetFactory의 CreateScrollBar는 Motif 스크롤바 인스턴스를 생성하고 반환한다, 이 수행이 일어날 동안 PMWidgetFactory 상에서 Presentation Manager 를 위한 스크롤바를 반환한다. 클라이언트는 WidgetFactory 인터페이스를 통해 개개의 룩앤필에 해당한는 클래스에 대한 정보 없이 혼자서 widget들을 생성하게 된다. 달리 말하자면, 클라이언트는 개개의 구체적인 클래스가 아닌 추상클래스에 의해 정의된 인터페이스에 일임하기만 하면 된다는 뜻이다.
         === Structure ===
         http://zeropage.org/~reset/zb/data/abfac109.gif
          * ConcreteFactory(MotifWidgetFactory, PMWidgetFactory)
          * ConcreteProduct(MotifWindow, MotifScrollBar)
          * 보통의 경우 ConcreteFactory 클래스의 단일 인스턴스는 수행시간(run-time)중에 생성된다.
          이 concrete factory는 특정 상속에 의한 객체(ProductObject)를 만들어낸다. 서로 다른 객체(ProductObject)를 만들어 내기 위해서는
          클라이언트는 서로 다른 concrete factory를 사용해야 한다.
          * AbstractFactory는 객체(ProductObject)의 생성을 ConcreteFactory의 서브 클래스에 위임한다.
          1. ''독립적인 concrete 클래스들.'' Abstract Factory 패턴은 어플리케이션이 생성한 오브젝트의 클래스를 조정할 수 있도록 해준다.
          클라이언트는 추상 인터페이스를 통해서 인스턴스를 다룬다. concrete facoty의 수행에서 산물의 클래스 이름은 차단되어있다.
          즉 클라이언트 코드에 concrete factory가 나타나지 않는다.
          2. ''산물의 집합간에 전환을 쉽게 해준다.'' concrete factory의 클래스는 어플리케이션에 단 한번, 선언될 때만 쓰인다.
          이는 conncrete factory를 쉽게 전환해서 사용할 수 있도록 해주고. 이로써 간단하게 concrete factory만 바꿔줌으로서 서로다른 산물의 조건을 쉽게 쓸수 있다.
          UI 예제에서 Motif widgets을 Presentation Manager widgets로 바꾸는 작업을 단지 유사한 팩토리의 객체와 바꿔주고 그 인터페이스를 다시 생성함으로써 행할 수 있다.
          ET++[WGM88]은 다른 윈도우 시스템(예를 들면, X Windows 와 SunViews)간의 호환을 수행하기 위해서 Abstract Factory 패턴을 사용했다. 윈도우 시스템의 추상 base 클래스는 윈도우시스템의 자원 객체(예를 들면, MakeWindow, MakeFont, MakeColor)를 생성할 수 있는 인터페이스를 정의한다. Concrete 서브 클래스는 특정 윈도우 시스템에 인터페이스를 수행한다.
         수행시간에, ET++ 은 concrete 윈도우시스템 서브클래스(concrete 시스템 자원 객체를 생성하는)의 인스턴스를 생성한당=== Related Patterns ===
  • Gof/Adapter . . . . 1 match
         http://zeropage.org/~reset/zb/data/adapt105.gif
          * (object adapter 의 경우에만 해당) 현재 이미 만들어진 여러개의 subclass가 필요한 경우, 하지만 각각의 서브클래스들에 대한 인터페이스를 하는 것은 비효율적이다. 이 경우 parent class의 인터페이스를 adapt 할 수 있다.
         == Structure ==
         http://zeropage.org/~reset/zb/data/adapt106.gif
         http://zeropage.org/~reset/zb/data/adapt104.gif
         http://zeropage.org/~reset/zb/data/adapt107.gif
         http://zeropage.org/~reset/zb/data/adapt103.gif
         http://zeropage.org/~reset/zb/data/adapt102.gif
         directoryDisplay :=
          (TreeDisplay on: treeRoot)
          getChildrenBlock:
          [:node | node getSubdirectories]
          createGraphicNodeBlock:
          [:node | node createGraphicNode].
          virtual Manipulator* CreateManipulator () const;
         Shape assumes a bounding box defined by its opposing corners. In contrast, TextView is defined by an origin, height, and width. Shape also defines a CreateManipulator operation for creating a Manipulator object, which knowns how to animate a shape when the user manipulates it. TextView has no equivalent operation. The class TextShape is an adapter between these different interfaces.
          virtual Manipulator* CreateManipulator () const;
         The IsEmpty operations demonstrates the direct forwarding of requests common in adapter implementations:
          return TextView::IsEmpty ();
         Finally, we define CreateManipulator (which isn't supported by TextView) from scratch. Assume we've already implemented a TextManipulator class that supports manipulation of a TextShape.
  • Gof/Mediator . . . . 1 match
         http://zeropage.org/~reset/zb/data/fontc047.gif
         예를 들면, FontDialogDirector는 다이얼로그 박스의 도구들 사이의 mediator일 수 있다. FontDialogDirector객체는 다이얼로그 도구들을 알고 그들의 interaction을 조정한다. 그것은 도구들 사이의 communication에서 hub와 같은 역할을 한다.
         http://zeropage.org/~reset/zb/data/media033.gif
         http://zeropage.org/~reset/zb/data/media031.gif
         Here's the succession of events by which a list box's selection passes to an entry field.
          1. 리스트 박스가 그것의 director에게 그것이 변했다고 말한다.
          2. director는 리스트 박스로 부터 선택을 얻는다.
          3. director는 입력 필드로 선택을 넘긴다.
          4. 이제 입력 필드는 어떤 문자를 포함한다. director는 행동(글씨를 굵게 하거나 기울이게 하는 따위의 행동)의 초기화를 위해 버튼을 활성화 한다.
         director가 리스트 박스와 입력 필드 사이의 조정하는 방법을 요약하자. 도구들은 서로 단지 간접적으로 director을 통해서 통신한다. 그들은 서로에 대해서 몰라야 하며, 그들 모두는 director를 알아야 한다. 게다가 행위는 한 클래스에 지역화 되어지기 때문에 행위는 클래스를 확장하거나 교체함으로써 변하거나 바꿔질 수 있다.
         FontDialogDirector 추상화가 클래스 library를 통하하는 방법은 다음과 같다.
         http://zeropage.org/~reset/zb/data/media034.gif
         DialogDirect는 다이얼로그의 전체 행위를 정의한 추상 클래스이다. client들은 화면에 다이얼로그를 나타내기 위해서 ShowDialog 연산자를 호출한다. CreateWidgets는 다이얼로그 도구들을 만들기 위한 추상 연산자이다. WidgetChanged는 또 다른 추상 연산자이며, 도구들은 director에게 그들이 변했다는 것을 알려주기 위해서 이를 호출한다. DialogDirector subclass들은 CreateWidgets을 적절한 도구들을 만들기 위해서 override하고 그리고 그들은 WidgetChanged를 변화를 다루기 위해서 override한다.
         == Structure ==
         http://zeropage.org/~reset/zb/data/mediator.gif
         http://zeropage.org/~reset/zb/data/media030.gif
          * Mediator(DialogDirector)
          * ConcreteMediator(FontDialogDirector)
         우리는 DialogDirector를 Motivation에서 보았던 것처럼 font dialog를 구현하기 위해서 사용할 것이다. 추상 클래스 DialogDirector는 director들을 위한 interface를 정의 하고 있다.
          class DialogDirector {
  • Gof/State . . . . 1 match
         네트워크 커넥션을 나타내는 TCPConnection 라는 클래스를 생각해보자. TCPConnection 객체는 여러가지의 상태중 하나 일 수 있다. (Established, Listening, Closed). TCPConnection 객체가 다른 객체로부터 request를 받았을 때, TCPConnection 은 현재의 상태에 따라 다르게 응답을 하게 된다. 예를 들어 'Open' 이라는 request의 효과는 현재의 상태가 Closed 이냐 Established 이냐에 따라 다르다. StatePattern은 TCPConnection 이 각 상태에 따른 다른 행위들을 표현할 수 있는 방법에 대해 설명한다.
         http://zeropage.org/~reset/zb/data/state_eg.gif
         TCPConnection 클래스는 TCP 커넥션의 현재 상태를 나타내는 state 객체를 가지고 있다. (TCPState 서브클래스의 인스턴스) TCPConnection 은 이 state 객체에게 모든 상태-구체적 request들을 위임 (delegate) 한다. TCPConnection 은 커넥션의 특정 상태에 대한 명령들을 수행하기 위해 TCPState 서브클래스 인스턴스를 이용한다.
         == Structure ==
         http://zeropage.org/~reset/zb/data/state.gif
          * 현재 상태를 정의하는 ConcreteState 서브클래스의 인스턴스를 가진다.
          * ConcreteState subclass (TCPEstablished, TCPListen, TCPClosed)
          * Context는 상태-구체적 request들을 현재의 ConcreteState 객체에 위임한다.
          * context는 request를 다루는 State 객체에게 인자로서 자기 자신을 넘길 수 있다. 이는 필요한 경우 State 객체들로 하여금 context 에 접근할 수 있도록 해준다.
          * Context 나 ConcreteState 서브클래스는 상황에 따라 state를 결정할 수 있다.
          1. It localizes state-specific behavior and partitions bahavior for different states.
          * State objects can be shared.
          * Creating and destroying State objects.
         일단, 우리는 TCPConnection 클래스를 정의한다. TCPConnection 은 데이터를 전달하고 상태 전환을 위한 request를 다루는 인터페이스를 제공한다.
         class TCPOctectStream;
          void ProcessOctet (TCPOctetStream* );
          virtual void Transmit (TCPConnection* , TCPOctetStream* ):
         TCPConnection 은 상태-구체적 request들으 TCPState 인스턴스인 _state 에 위임한다. TCPConnection 은 또한 이 변수를 새로운 TCPState 로 전환하는 명령을 제공한다. TCPConnection 의 생성자는 _state를 TCPClosed 상태로 초기화한다. (후에 정의된다.)
         TCPState 는 위임받은 모든 request 에 대한 기본 행위를 구현한다. TCPState는 또한 ChnageState 명령으로써 TCPConnection 의 상태를 전환할 수 있다. TCPState 는 TCPConnection 의 friend class 로 선언되어진다. 이로써 TCPState 는 TCPConnection 의 명령들에 대한 접근 권한을 가진다.
         void TCPState::Transmit (TCPConnection*, TCPOctetStream* ) { }
  • Google . . . . 1 match
         #Redirect Googling
  • Google/GoogleTalk . . . . 1 match
         [http://bbs.kldp.org/viewtopic.php?t=54500 Korean Google Talk]
          my $response = $browser->get($url->as_string, 'User-Agent'=>'Mozilla' );
          if($response->is_success)
          my $res = $response->content;
          $res =~ s/<b>//gs;
          $res =~ s/<\/b>//gs;
          $res =~ s/\n//gs;
          print "Response:\n$res\n" if $debug;
          #$res =~ m/<\/a><br><font size=-1>(.*?)<br><font color=#008000>/i;
          while($res=~m/<\/a><br><font size=-1>(.*?)<br><font color=#008000>/g)
          pos($res)+1;
          return $next_words[$select];
          print $response->error_as_HTML if $debug;
          return $2;
         = result =
  • Googling . . . . 1 match
         || related || 인자로 전달된 사이트와 유사한 사이트를 검색한다. ||
         = Related =
  • GuiTestingWithWxPython . . . . 1 match
          result = self.frame.button.GetLabel()
          self.assertEquals(expected, result)
          def testButtonRect(self):
          result = self.frame.button.GetPositionTuple()
          self.assertEquals(expected, result)
          result = self.frame.button.GetSizeTuple()
          self.assertEquals(expected, result)
          return true
          def __init__(self, parent=NULL, id=NewId(), title='test', pos=(400,400), size=(400,400)):
          wxFrame.__init__(self, parent, id, title, pos, size)
          retList = []
          retList.append(self.listBox.GetString(idx))
          return tuple(retList)
          return true
  • HanoiProblem . . . . 1 match
          * Recursive Function
  • HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 1 match
         상속이란, 기존에 만들어 놓은 객체들로 부터 모든 변수와 메소드를 물려 받아 새로운 객체를 만들 수 있다는 것을 뜻한다. 즉, 새프로그램을 만들 때 기존의 자료를 이용해(상속받아) 새롭게 정의하여 사용한면 된다는 것이다. 이로인해 부수적으로 프로그래밍의 노력이 줄고 시간 단축되며 그리고 OOP의 가장 중요한 재사용성(Reusability) 얻을 수 있다. 델파이는 TObject라는 최상위 객체로부터 상속시켜 단계적으로 하위 객체들을 생성해 만들어진 구조를 지니고 있다.
  • HardcoreCppStudy/첫숙제/ValueVsReference/변준원 . . . . 1 match
         ▶ 참조에 의한 호출 ( Call by Reference )
         참조에 의한 호출(call by reference, call by address, call by location) 방법은 가인수의 값을 변경시키면 실인수의 값도 변경
          - 포인터 참조에 의한 호출(Call by pointer reference)
          - 참조에 의한 호출(Call by reference)
          double base,result;
          result = power(base, exponent); // 함수의 호출
          cout << "밑수("<< base <<")" << "지수("<< exponent <<")" << "결과 :"<< result << endl;
          return ans;
         #include <iostream.h>
         포인터 참조에 의한 호출(Call by point reference)
         #include <iostream.h>
         참조에 의한 호출(Call by reference)
         #include <iostream.h>
  • HeadFirstDesignPatterns . . . . 1 match
         - I received the book yesterday and I started to read it on the way home... and I couldn't stop, took it to the gym and I expect people must have seen me smile a lot while I was exercising and reading. This is tres "cool". It is fun but they cover a lot of ground and in particular they are right to the point.
         {{{Erich Gamma, IBM Distinguished Engineer, and coauthor of "Design Patterns: Elements of Reusable Object-Oriented Software" }}}
  • HelpContents . . . . 1 match
          * ["로그인하기"] - RecentChanges 에 IP대신 실명을 사용하는 방법. 그리고 기타 부가적인 기능을 제공받음.
          * HelpOnUserPreferences - 위키 사용자로 등록하고, 설정가능한 기본값을 입맛에 맞게 고쳐보세요.
          * HelpOnPageCreation - 새 페이지 만드는 방법과 템플리트 이용하기
  • HelpForBeginners . . . . 1 match
         위키위키에 대하여 좀 더 배우고 싶으신 분은 Wiki:WhyWikiWorks 와 Wiki:WikiNature 를 읽어보시기 바라며, Wiki:WikiWikiWebFaq 와 Wiki:OneMinuteWiki 도 도움이 될 것 입니다.
          * RecentChanges: 사람들이 지금 무슨 작업을 하고 있는지
  • HelpOnNavigation . . . . 1 match
         각 페이지의 좌측 상단 (혹은 임의의 위치)에는 대문(FrontPage 혹은 home), 최근 바뀐 글(RecentChanges), 목록(모든 페이지의 가나다순 알파벳순 목록), 찾기(FindPage), 도움말(HelpContents) 등등의 메뉴가 있습니다.
  • HelpOnProcessingInstructions . . . . 1 match
          * '''StructuredText''' ( <!> 모니위키에서 지원하지 않음)
          * {{{#redirect}}} ''페이지이름'': 다른 페이지로 이동 (MeatBall:PageRedirect''''''참조)
         모든 PI는 페이지의 맨 상단에 위치해야 합니다. 특별히 {{{#redirect}}}는 가장 맨 윗줄에 위치해야 합니다. 주석임을 나타내는 {{{##}}}만은 페이지 어느곳에나 쓸 수 있습니다만, 중간에 쓰는 경우에는 `wiki` 포매팅 문서일 경우에만 {{{##}}}가 주석으로 인식됩니다.
          * {{{#redirect}}} ''url'' : 페이지를 보게되면 `url`이 가리키는 곳으로 이동한다. `url`은 페이지 이름이 될 수도 있고, 인터위키, url 등등이 될 수 있다.
         See also MoniWikiProcessors for more complete supported {{{#FORMAT}}} list.
  • Hibernate . . . . 1 match
         조만간 [http://www.theserverside.com/resources/HibernateReview.jsp Hibernate In Action] 이란 책이 출간될 예정. Chapter 1 을 읽을 수 있다.
         [http://www.theserverside.com/resources/article.jsp?l=Hibernate Introduction to hibernate] 기사가 연재중이다.
  • HighResolutionTimer . . . . 1 match
         '''High-Resolution Timer'''
         A counter is a general term used in programming to refer to an incrementing variable. Some systems include a high-resolution performance counter that provides high-resolution elapsed times.
         If a high-resolution performance counter exists on the system, the QueryPerformanceFrequency function can be used to express the frequency, in counts per second. The value of the count is processor dependent. On some processors, for example, the count might be the cycle rate of the processor clock.
         The '''QueryPerformanceCounter''' function retrieves the current value of the high-resolution performance counter (if one exists on the system). By calling this function at the beginning and end of a section of code, an application essentially uses the counter as a high-resolution timer. For example, suppose that '''QueryPerformanceFrequency''' indicates that the frequency of the high-resolution performance counter is 50,000 counts per second. If the application calls '''QueryPerformanceCounter''' immediately before and immediately after the section of code to be timed, the counter values might be 1500 counts and 3500 counts, respectively. These values would indicate that .04 seconds (2000 counts) elapsed while the code executed.
  • HowToBuildConceptMap . . . . 1 match
         from Learning, Creating, Using Knowledge
          1. Identify a focus question that addresses the problem, issues, or knowledge domain you wish to map. Guided by this question, identify 10 to 20 concepts that are pertinent to the question and list these. Some people find it helpful to write the concept labels on separate cards or Post-its so taht they can be moved around. If you work with computer software for mapping, produce a list of concepts on your computer. Concept labels should be a single word, or at most two or three words.
          * Rank order the concepts by placing the broadest and most inclusive idea at the top of the map. It is sometimes difficult to identify the boradest, most inclusive concept. It is helpful to reflect on your focus question to help decide the ranking of the concepts. Sometimes this process leads to modification of the focus question or writing a new focus question.
          * Work down the list and add more concepts as needed.
          * Begin to build your map by placing the most inclusive, most general concept(s) at the top. Usually there will be only one, two, or three most general concepts at the top of the map.
          * Next selet the two, three or four suboncepts to place under each general concept. Avoid placing more than three or four concepts under any other concept. If there seem to be six or eight concepts that belong under a major concept or subconcept, it is usually possible to identifiy some appropriate concept of intermediate inclusiveness, thus creating another level of hierarchy in your map.
          * Connect the concepts by lines. Label the lines with one or a few linking words. The linking words should define the relationship between the two concepts so that it reads as a valid statement or proposition. The connection creates meaning. When you hierarchically link together a large number of related ideas, you can see the structure of meaning for a given subject domain.
          * Rework the structure of your map, which may include adding, subtracting, or changing superordinate concepts. You may need to do this reworking several times, and in fact this process can go on idenfinitely as you gain new knowledge or new insights. This is where Post-its are helpful, or better still, computer software for creating maps.
          * Look for crosslinks between concepts in different sections of the map and label these lines. Crosslinks can often help to see new, creative relationships in the knowledge domain.
          * Specific examples of concepts can be attached to the concept labels (e.g., golden retriver is a specific example of a dog breed).
          * Concept maps could be made in many different forms for the same set of concepts. There is no one way to draw a concept map. As your understanding of relationships between concepts changes, so will your maps.
  • HowToReadIt . . . . 1 match
         NoSmok:HowToReadIt
         = Thread =
  • HowToStudyDataStructureAndAlgorithms . . . . 1 match
         DataStructure와 알고리즘은 어떻게 공부해야 할까..
         그리고 마지막으로, 자료구조/알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 됩니다. 모든 학습에 있어 이는 똑같이 적용됩니다. 인류의 지성사를 봐도, 구상(concrete) 다음에 추상(abstract)가 오고, 인간 개체 하나의 성장을 봐도 그러합니다. be 동사 더하기 to 부정사가 예정으로 해석될 수 있다는 룰만 외우는 것보다, 그러한 다양한 예문을 실제 문맥 속에서 여러번 보는 것이 훨씬 나은 것은 자명합니다. 알고리즘/자료구조 공부를 할 때 여러 친구들과 함께 연습문제(특히 실세계의 대상들과 관련이 있는 것)를 풀어보기도 하고, ACM의 ICPC 등의 프로그래밍 경진 대회의 문제 중 해당 알고리즘/자료구조가 사용되는 문제를 -- 이게 가능하려면 "이 알고리즘이 쓰이는 문제는 이거다"라는 가이드를 해줄 사람이 있으면 좋겠죠 -- 같이 풀어보는 것도 아주 좋습니다.
         알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
          * decrease-and-conquer
  • HowToStudyXp . . . . 1 match
         ExtremeProgramming을 어떻게 공부할 것인가
          * ["Refactoring"] (by Martin Fowler) : 리팩토링에 대한 최고의 책
          * XP Explored : 가장 쉽고 구체적인 XP 안내서
          * Peopleware (Tom De''''''Marco) : 개발에 있어 인간 중심적 시각의 고전
          * Adaptive Software Development (Jim Highsmith) : 복잡계 이론을 개발에 적용. 졸트상 수상.
          * Software Project Survival Guide (Steve McConnell) : 조금 더 "SE"적인 시각.
          * Agile Software Development (Alistair Cockburn) : 전반적 Agile 방법론에 대한 책
          * ["SoftwareCraftsmanship"] (Pete McBreen) : 새로운 프로그래머상
          * Agile Software Development with [http://www.controlchaos.com/ SCRUM](Schwaber Ken) : 최근 Scalability를 위해 XP+[http://www.controlchaos.com/ SCRUM]의 시도가 agile 쪽의 큰 화두임.
          * IEEE Software/Computer, CACM, ["SoftwareDevelopmentMagazine"] 등에 실린 기사
          * XP Conference, XP Universe 등의 논문들 (특히 최근 것들)
          * http://groups.yahoo.com/group/extremeprogramming
          * http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
          * [http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&newwindow=1&group=comp.software.extreme-programming news:comp.software.extreme-programming]
          * http://groups.yahoo.com/group/refactoring
          *Laurent Bossavit
          *John Brewer
         '''Agile Software Development with [http://www.controlchaos.com/ SCRUM]''' by Schwaber Ken
         '''Agile Software Development Ecosystems''' by Jim Highsmith
         '''A Practical Guide to eXtreme Programming''' by David Astels et al.
  • ISBN_Barcode_Image_Recognition . . . . 1 match
         = 1D Barcode Image Recognition =
          return 10 - sum % 10
         == Threshold ==
         === Global Threshold ===
         === Adaptive Threshold ===
          * 영상 일부에 빛이 비춰지거나, 그림자가 드리울 경우 Global Threshold를 수행하면 기대한 결과를 얻기 힘들다.
  • IdeaPool/PrivateIdea . . . . 1 match
         || 남상협 || 웹지도 브라우저 || 2006.12.19 || Ready || 유상욱 || [WebMapBrowser], [ProjectWMB] ||
  • IndexingScheme . . . . 1 match
          * RecentChanges
         Additionally, there are the
  • IntentionRevealingSelector . . . . 1 match
         == Intention Revealing Selector ==
         BTree::treeSearchFor(Item&);
  • InterestingCartoon . . . . 1 match
         == Thread ==
         그냥 페이지를 나누어도 상관없을듯 합니다. NoSmok 의 경우 NoSmok:애니메이션명대사 , NoSmok:만화속명대사 가 따로있긴 합니다. Responsibility 가 2개 이상이라 느껴진다면 이를 분리하는것도 하나의 방법이겠죠. (한편으로는, 이 페이지의 컨텐츠에 비해 너무 Rigid 하게 나가는 거 아닌가 하는 생각이 듭니다. 이 페이지로부터 다른 사람이 얻어가는, 또는 자신이 이익이 얻는 부분은 어떤건가요? 또는 어떠한 내용이 있다면 사람들로부터 더 활발한 이야기꺼리를 끌어낼 수 있을까요?) --[1002]
  • IpscAfterwords . . . . 1 match
         2002 년도 IPSC (http://ipsc.ksp.sk/) 을 경험하고 난 뒤의 ["ThreeFs"]
          * 전에 K-In-A-Row 같은 경우는 일종의 StepwiseRefinement 의 형식이 나와서 비교적 코딩이 빠르게 진행되었었고, (비록 답은 틀렸지만) Candy 문제의 경우 덕준이가 빨리 아이디어를 내어서 진행이 빨랐었는데, 실전에서는 그런 경우들이 나오지 않아 버겨웠던듯 하네요.
  • ItNews . . . . 1 match
          * MIT Tech Review http://www.techreview.com/ : 기술적 흐름이나 신조류, 미래의 기술 등을 볼 수 있다
          * 코리아 인터넷 닷컴 http://korea.internet.com
          * ZD Net Korea http://zdnet.co.kr
          * Korea Linux Document Project http://kldp.org
  • JTDStudy . . . . 1 match
          * What is different between C++ and Java!
         = Reference Page =
          * [https://eclipse-tutorial.dev.java.net/eclipse-tutorial/korean/] : 이클립스 한글 튜토리얼
  • Java Study2003/첫번째과제/곽세환 . . . . 1 match
         높은 신뢰성(Reliability)을 갖는다:
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
         인터프리터(Interpreter) 방식이다:
         다중 스레드(Multi-thread)를 지원한다:
         자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다(자바언어의 특징중의 하나지요)
          * "아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다" 라는 말을 풀어서 설명해 주세요.
  • Java Study2003/첫번째과제/노수민 . . . . 1 match
          * 높은 신뢰성(Reliability)을 갖는다:
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
          * 인터프리터(Interpreter) 방식이다:
          * 다중 스레드(Multi-thread)를 지원한다:
         자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
  • Java Study2003/첫번째과제/장창재 . . . . 1 match
          자바 언어(Java Language)를 이용하여 작성한 자바 프로그램(Java Program)은 자바 컴파일러(Java Compiler)를 이용하여 자바 바이트코드(Java Byte code)로 컴파일 되고, 이 자바 바이트코드는 자바 가상머신에 의해 해석되어 실행되는데, 이때 자바 가상머신은 자바 바이트코드에 대한 해석기 즉 인터프리터(interpreter)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
         자바 인터프리터(Java Interpreter) 또는 자바 가상머신(Java Virtual Machine):
         자바 바이트코드는 자바 가상머신에서 실행되는 기계어라고 생각하면 됩니다. 그리고, 모든 자바 인터프리터는 자바 가상머신을 구현해 놓은 것으로, 자바 가상머신과 자바 인터프리터를 같은 것으로 생각할 수 있습니다. . 이러한 자바 가상머신은 JDK(Java Development Kit)에 포함되어 있을 수도 있고, 자바 호환 웹 브라우저 내에 내장되어 있을 수도 있습니다. 또는, 자바 칩과 같이 하드웨어에 직접 구현될 수도 있습니다. 자바 바이트코드는 “write once, run anywhere”라는 말을 가능하게 해 줍니다. 다시 말해서, 자바 언어를 이용하여 작성한 자바 프로그램을 각 플랫폼(윈도우 95/98/NT, 리눅스, 유닉스, 매킨토시 등)에 맞게 제공되는 자바 컴파일러를 통해서 바이트코드로 컴파일 할 수 있습니다. 그리고, 이 바이트코드는 자바 가상머신이 있는 어떤 곳에서도 실행될 수 있습니다.
         높은 신뢰성(Reliability)을 갖는다:
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
         인터프리터(Interpreter) 방식이다:
         다중 스레드(Multi-thread)를 지원한다:
         자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
         이러한 문제는 자바가 스레드 스케줄링 정책 구현에 의존하고, synchronized 명령어가 모니터 기반의 동기화 기법만 제공하고 큐 대기 시간을 예측할 수 없으며, notify() 메소드가 스레드를 깨우는 순서가 불명확하고, 우선순위 역전(priority inversion_의 가능성이 있습니다. 이러한 문제는 API 수준에서 해결되어야 하고, 실시간 타스크 처리를 위한 우선순위 레벨을 확장하고, 우선순위 상속(priority inheritance) 또는 우선순위 최고 한도 제한(priority ceiling) 등과 같은 우선순위 역전 방지 (priority inversion avoidance) 프로토콜을 사용하고, MuteX, 이진 세마포어(Binary Semaphore), 계수 세마포어(Counting Semaphore) 등을 사용할 수 있습니다.
         이러한 문제점은 느린(Lazy) 클래스 로딩에서 발생하거나 메모리 할당과 가비지 콜렉션이 비결정적이고 느린 최악의 경우(worst-case) 특성을 가지며 stop-start 방식으로 모든 스레드를 멈출 수 있다는 문제점이 있습니다. 이를 해결하기 위해 클래스를 미리 로딩(class preloading)한다거나 정적 초기화(static initializer)를 제거하여 패키지 라이브러리에 대해서는 가상머신 초기화를 사용하고 응용프로그램에서는 명시적인 초기화 를 사용하게 하는 등의 기법을 사용할 수 있습니다. 그리고, 메모리 할당과 쓰레기 수집(garbage collection)에 대해서는 정해진 시간 내에 입터럽트 가능한 쓰레기 수집을 하는 것입니다. 또는 표준화된 실시간 API를 제공함으로써 해결할 수 있습니다.
  • JavaScript/2011년스터디/URLHunter . . . . 1 match
          function redraw(){
          location.href="./urlhunter.php#"+str+"||| time:"+(30-time);
          redraw();
          location.href="./urlhunter.php#Game Over";
          redraw();
          break;
          break;
          break;
          redraw();
          <body onload ="replash()">
          Your gun point is 'O' and Others are Monsters.
         var replash = function(){
          location.href = CrtURL + " You caught \'" + map.r.join('') + "\'";
          alert("Press F5 to play again");
          location.href = CrtURL + " "+timer.t +"|" + map.s.join('') + "|"+timer.t + " You caught \'" + map.r.join('') + "\'";
         function Creature(){
          this.where = (this.where+1)%MapLength;
          this.where = (this.where-1<0)? (MapLength-1): this.where-1;
          this.where = w;
          this.where = -1;
  • JavaScript/2011년스터디/윤종하 . . . . 1 match
          if(n==0) return 1;
          return val;
          return fac(n)/(fac(n-k)*fac(k))
          var items = [ "click", "keypress" ];
          // Remember the value within this scope
          // item refers to a parent variable that has been successfully
  • JoelOnSoftware . . . . 1 match
         http://korean.joelonsoftware.com/
          [임인택]은 ZPHomePage보다는 ZeroWiki를 이용하기 때문에 자유게시판을 잘 안보는데, 우연히 갔다가 JoelOnSoftware에 관한 글이 올라온 걸 보게 되었다. 이전처럼 자유게시판 업데이트 되었을때, RecentChanges에 반영되었으면 좋으련만...
  • JollyJumpers/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          return false;
          return false;
          return true;
  • LIB_1 . . . . 1 match
          char *sen = ":::::::: Little / Simple Real Time Kernel ::::::: \n";
          // semaphore section
          LIB_pend_sem(semaphore , 50);
          LIB_post_sem(semaphore);
         LIB_create_task (char* string,int,&task_point,task_size) 함수는
          // create The Sample Task 1,2
          LIB_create_task("Management\n",63,mn_task,&TaskStack0[256]); // 매니져 함수를 만들어준다.
          LIB_create_task("task1\n",60,task1,&TaskStack1[256]); // 사용자 태스크 1을 만들어준다.
          LIB_create_task("task2\n",59,task2,&TaskStack2[256]); // 사용자 태스크 2를 만들어준다.
          LIB_create_task("StatTask\n",LIB_IDLE_PRIORITY + 1,LIB_TASK_CPU_STAT,&OSStack[256]); // 상태를 알아보는 태스크를 만든다.
          LIB_create_task("IdleTask\n",LIB_IDLE_PRIORITY,idle_task,&TaskStack3[256]); // 유휴상태일때 돌아가는 idle태스크를 만든다.
          // create semaphore and message
          semaphore = LIB_create_sem(2);
          message = LIB_create_msg(NULL);
         ["REAL_LIBOS"]
  • LIB_4 . . . . 1 match
          *Stack-- = (INT16U)0x0202; // Flag Register
          return size;
         ["REAL_LIBOS"]
  • LinearAlgebraClass . . . . 1 match
         길버트 스트랭은 선형대수학 쪽에선 아주 유명한 사람으로, 그이의 ''Introduction to Linear Algebra''는 선형대수학 입문 서적으로 정평이 나있다. 그의 MIT 수업을 이토록 깨끗한 화질로 "공짜로" 한국 안방에 앉아서 볼 수 있다는 것은 축복이다. 영어 듣기 훈련과 수학공부 두마리를 다 잡고 싶은 사람에게 강력 추천한다. 선형 대수학을 들었던(그리고 학기가 끝나고 책으로 캠프화이어를 했던) 사람이라면 더더욱 추천한다. (see also HowToReadIt 같은 대상에 대한 다양한 자료의 접근) 대가는 기초를 어떻게 가르치는가를 유심히 보라. 내가 학교에서 선형대수학 수강을 했을 때, 이런 자료가 있었고, 이런 걸 보라고 알려주는 사람이 있었다면 학교 생활이 얼마나 흥미진지하고 행복했을지 생각해 보곤 한다. --JuNe
  • Lines In The Plane . . . . 1 match
         ==== Recurrent Problems - Lines In The Plane ====
         What is the maximum number L<sub>n</sub> of regions defined by lines("unfolding" or "unwinding") in the plane?
         ===== mathematical expression =====
          = 1 + S<sub>n</sub>, where S<sub>n</sub> = 1+ 2 + 3 + ... + (n - 2) + (n - 1) + n.
  • Linux . . . . 1 match
         Hello everybody out there using minix -
         I'm doing a (free) operating system (just a hobby, won't be big and
         professional like gnu) for 386(486) AT clones. This has been brewing
         since april, and is starting to get ready. I'd like any feedback on
         things people like/dislike in minix, as my OS resembles it somewhat
         (same physical layout of the file-system (due to practical reasons)
         I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
         I'd like to know what features most people would want. Any suggestions
         are welcome, but I won't promise I'll implement them :-)
         PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
         리눅스와 비슷한 운영체제로는 정통적인 유닉스 클론 이라고 평가받는 [:FreeBSD BSD]계열이 있다. BSD계열중 가장 잘알려진 [http://www.kr.freebsd.org FreeBSD]의 경우 실제로 과거부터 hotmail.com, yahoo.com, cdrom.com 을 운영해온 네트워킹에 대한 안정성이 입증된 운영체제이다. 실제로 2.6커널의 도입이전에는 BSD의 네트워킹이 더욱 뛰어나다는 평가를 받았지만 일반적인 의견이었으나, 많은 구조적 변경을 통해서 리눅스는 현재 이런 점을 극복하고 BSD와 리눅스를 선택하는 것은 운영자의 기호일 뿐이라는 이야기를 한다. 최근에는 리눅스를 데스크탑의 용도로 까지 확장하려는 노력의 덕분에 로케일 설정관련 부분이 대폭 강화되었으며, 사용자 편의성을 고려한 WindowManager인 [Gnome], [KDE] 등의 프로그램이 대폭 강화되면서 low-level 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
         어느정도 실력을 쌓았다 싶으면 RunningLinux, Oreilly 를 읽기를 권한다. 이 책은 비록 초심자가 읽기에는 부적절하지만 APM설정에 어느정도 리눅스의 구조에 대해서 익힌 사람들이 리눅스를 운영하기 위한 전반적 기초지식의 대부분을 습득 할 수 있는 수작이라고 생각된다.
         [Linux/RegularExpression]
         [http://www.zeropage.org/pub/Linux/Microsoftware_Linux_Command.pdf 마이크로소프트웨어_고급_리눅스_명령와_중요_시스템_관리]
         [http://j2k.naver.com/j2k_frame.php/korean/http://www.linux.or.jp/JF/ 리눅스 문서 일본어화 프로젝트(LJFP)]
         [http://www.gnome.or.kr Gnome Korea Group]
         [http://translate.google.com/translate?hl=ko&sl=en&u=http://www.softpanorama.org/People/Torvalds/index.shtml&prev=/search%3Fq%3Dhttp://www.softpanorama.org/People/Torvalds/index.shtml%26hl%3Dko%26lr%3D 리눅스의 개발자 LinusTorvalds의 소개, 인터뷰기사등]
  • Linux/디렉토리용도 . . . . 1 match
         참고) Running Linux/매트 웰시, 라 카우프만, 칼레달하이머 저, Oreilly
          * reboot, modprobe, insmod 등등의 root 가 시스템을 관리하는데 필요한 명령어들이 존재한다.
          * /etc/CORBA : Common Object Request Broker Architecture (COBRA)에 관한 파일이 들어있음.
          * /etc/ssh : secure shell 설정 파일이 있음
  • LionsCommentaryOnUnix . . . . 1 match
         훌륭한 화가가 되기 위해선 훌륭한 그림을 직접 자신의 눈으로 보아야 하고(이걸 도록으로 보는 것과 실물을 육안으로 보는 것은 엄청난 경험의 차이다) 훌륭한 프로그래머가 되기 위해선 Wiki:ReadGreatPrograms 라고 한다. 나는 이에 전적으로 동감한다. 이런 의미에서 라이온의 이 책은 OS를 공부하는 사람에게 바이블(혹은 바로 그 다음)이 되어야 한다.
  • Lotto/강소현 . . . . 1 match
         ||Language||Java||Result||Accepted||
          num = increase(bin);
          private static int increase(int[] bin){
          break;
          int result = 0;
          result += bin[k]*Math.pow(2,k);
          return result;
          return temp;
          * Presentation Error - 다 출력하고 마지막에 엔터 하나 더 쳐야함.
  • Lotto/송지원 . . . . 1 match
          || Run ID || User || Problem || Result || Memory || Time || Language || Code Length || Submit Time ||
          int res = 1;
          res *= n-i;
          res /= 720;
          return res;
          return *pnum;
          free(nums);
  • MFC . . . . 1 match
         #Redirect MicrosoftFoundationClasses
  • MFC/MessageMap . . . . 1 match
         자료) [http://wiki.zeropage.org/jsp-new/pds/pds_read.jsp?page=1&no=23 자료실]
          afx_msg LRESULT OnAcceptClient(WPARAM wParam, LPARAM lParam); // 이부분에 이렇게 정의한 메시지를 실행할 함수를 넣어준다. 함수명은 하고 싶은데로..
          DECLARE_MESSAGE_MAP()
         afx_msg LRESULT OnAcceptClient(WPARAM wParam, LPARAM lParam)
          // NOTE - the ClassWizard will add and remove member functions here.
          DECLARE_MESSAGE_MAP() // 메시지 맵이 정의된 클래스에는 반드시 이 매크로 함수가 포함되어야 한다.
          // NOTE - the ClassWizard will add and remove mapping macros here.
          클래스의 정의 부분에 DECLARE_MESSAGE_MAP()을 포함했다면 그 클래스의 구현 부분에는 반드시 BEGIN_MESSAGE_MAP(), END_MESSAGE_MAP()매크로가 반드시 추가되어야 한다. 이 부분에서는 WM_COMMAND 형태를 갖는 메시지 만을 처리하고 있다.
          DECLARE_MESSAGE_MAP()
         #define WM_CREATE 0x0001
         #define WM_SETREDRAW 0x000B
          POINT ptReserved;
         #define WM_MEASUREITEM 0x002C
         #define WM_COMPAREITEM 0x0039
         #define PWR_SUSPENDREQUEST 1
         #define PWR_SUSPENDRESUME 2
         #define PWR_CRITICALRESUME 3
         #define WM_INPUTLANGCHANGEREQUEST 0x0050
         #define NF_REQUERY 4
         #define WM_NCCREATE 0x0081
  • MFC/Print . . . . 1 match
          * CView::OnPreparePrinting()
          페이지 카운트를 계산한다. DoPreparePrinting() 호출
          * CView::OnPrepareDC()
          페이지가 남았다면 OnPrepareDC()로 이동하여 루프
          뷰클래스의 5개의 멤버함수는 프로그래머가 재정의 해야한다. 최소한 5개중에서 OnPreparePrinting(), OnPrepareDC(), OnPrint()는 구현해야한다.
         || m_bDirect || 출력작업이 프린트 대화상자를 건너뛰면 TRUE 그외에는 FALSE ||
         || m_bPreview || Print Preview 가 선택되면 TRUE, 아니면 FALSE ||
         || m_nNumPreviewPages || UINT preview 우니도우에 나타나 있는 페이지들의 번호 1 or 2 ||
         || m_rectDraw || CRect 객체. 페이지에서 사용 가능한 영역을 논리 좌표로 정의 한다. ||
         || m_strPageDesc || CString 객체로 프린트 preview 동안에 페이지 번호를 나타내기 위해 프레임 웍에서 사용되는 포맷 문자열을 포함한다. ||
  • MFC/Serialize . . . . 1 match
         protected: // create from serialization only
          DECLARE_DYNCREATE(CPainterDoc)
         IMPLEMENT_DYNCREATE(CXXXDoc, CDocument)
          // TODO: add storing code here
          // TODO: add loading code here
         DECLARE_DYNCREATE
          CXXXDoc 클래스의 객체가 시리얼화 입력과정동안 응용 프로그램을 통해 동적으로 생성될 수 있도록 한다. IMPLEMENT_DYNCREATE와 매치. 이 매크로는 CObject 에서 파생된 클래스에만 적용된다. 따라서 직렬화를 하려면 클래스는 직접적이든 간접적이든 CObject의 Derived Class 여야한다.
         IMPLEMENT_DYNCREATE
          (float, double, BYTE, int, LONG, WORD, DWORD, CObject*, CString, SIZE, CSize, POINT, CPoint, RECT, CRect, CTime, CTimeSpan 이 오버라이딩 되어있다.)
         DECLARE_SERIAL()매크로를 통해서 직렬화 기능의 추가가 가능하다. 내부적으로 new, delete 를 사용하는데, 매모리 릭을 추적하는 코드가 들어가므로 특별히 프로그래머가 신경써야 하는 부분은 없다.
         {{{~cpp DECLARE_SERIAL{CExample) //매크로 이므로 ;를 붙여선 안된다.
          * DECLARE_SERIAL() 매크로를 추가하라. 만약 바로 상위의 클래스가 CObject 가 아니라면 바로 상위의 클래스에 추가하라)
         = Thread =
  • MFCStudy2006/1주차 . . . . 1 match
          * 화면 위치 및 크기 조정 : CMainFrame 클래스 -> PreCreateWindow() 에서 수정
         BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
          if( !CFrameWnd::PreCreateWindow(cs) )
          return FALSE;
          // TODO: Modify the Window class or styles here by modifying
          // the CREATESTRUCT cs
          cs.x = ::GetSystemMetrics(SM_CXSCREEN)-300;
          return TRUE;
          * Resource에서 Menu 부분을 수정
  • MITOCW . . . . 1 match
         #Redirect MITOpenCourseWare
  • MatrixAndQuaternionsFaq . . . . 1 match
         This FAQ is maintained by "hexapod@netcom.com". Any additional suggestions or related questions are welcome. Just send E-mail to the above address.
         Feel free to distribute or copy this FAQ as you please.
          Introduction I1: steve@mred.bgm.link.com
         I1. Important note relating to OpenGL and this document
         Q3. How do I represent a matrix using the C/C++ programming languages?
         Q4. What are the advantages of using matrices?
         Q5. How do matrices relate to coordinate systems?
         Q12. How do I square or raise a matrix to a power?
         Q13. How do I multiply one or more vectors by a matrix?
         Q16. What are Isotropic and Anisotropic matrices?
         Q30. What are Euler angles?
         Q31. What are yaw, roll and pitch?
         Q34. What is the correct way to combine rotation matrices?
         Q44. How can I render a matrix?
         Q45. What are quaternions?
         Q46. How do quaternions relate to 3D animation?
         === I1. Important note relating to OpenGl and this document ===
          In this document (as in most math textbooks), all matrices are drawn
          like IrisGL, OpenGL and SGI's Performer all represent them with the
          matrix represented as follows:
  • McConnell . . . . 1 match
         == Structure ==
         == Related Patterns ==
  • Microsoft . . . . 1 match
         {{|Microsoft Corporation (NASDAQ: MSFT) is the world's largest software company, with over 50,000 employees in various countries as of May 2004. Founded in 1975 by Bill Gates and Paul Allen, it is headquartered in Redmond, Washington, USA. Microsoft develops, manufactures, licenses, and supports a wide range of software products for various computing devices. Its most popular products are the Microsoft Windows operating system and Microsoft Office families of products, each of which has achieved near ubiquity in the desktop computer market.|}}
  • MicrosoftFoundationClasses . . . . 1 match
          Create(0, "MFC Application"); // 기본설정으로 "MFC Application"이라는 타이틀을 가진 프레임을 생성한다
          return TRUE;
          nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
          nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
          Debug/ex13_01.exe : fatal error LNK1120: 2 unresolved externals''
         = Related Page =
  • MobileJavaStudy/HelloWorld . . . . 1 match
          private TextBox mainScreen = null;
          mainScreen = new TextBox("HelloWorld","Hello World",512,0);
          mainScreen.addCommand(exit);
          mainScreen.setCommandListener(this);
          display.setCurrent(mainScreen);
          g.fillRect(g.getClipX(),g.getClipY(),g.getClipWidth(),g.getClipHeight());
          display.setCurrent(canvas);
  • MobileJavaStudy/Tip . . . . 1 match
         InputStream is = this.getClass().getResourceAsStream("readme.txt");
          while ((ch = is.read()) != -1) {
  • MoinMoinDiscussion . . . . 1 match
         '''Q''': How do you inline an image stored locally? (e.g. ../wiki-moimoin/data/images/picture.gif)
          * '''R''': The Icon macro worked well. I wanted to avoid the fully qualified URL because to access the Wiki in question requires password authentication. Including an image using the full URL caused my webserver (Apache 1.3.19) to reprompt for authentication whenever the page was viewed or re-edited. Perhaps a default {{{~cpp [[Image]]}}} macro could be added to the distribution (essentially identical to {{{~cpp [[Icon]]}}} ) which isn't relative to the data/img directory. (!) I've actually been thinking about trying to cook up my own "upload image" (or upload attachment) macro. I need to familiarize myself with the MoinMoin source first, but would others find this useful?
          * '''Note:''' Regarding the upload feature - pls note that the PikiePikie also implemented in Python already has this feature, see http://pikie.darktech.org/cgi/pikie?UploadImage ... so I guess you could borrow some code from there :) -- J
  • MoniWikiOptions . . . . 1 match
          * 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'` $theme를 설정한 경우는 이 값이 자동 설정된다.
          * 기본값은 `$url_prefix.'/css/kbd.js'` : 사용하기 싫으면 그 값을 빈 문자열로 한다.
         `'''$menu=array('MoniWiki'=>1,'FindPage'=>4,'TitleIndex'=>3,'BlogChanges'=>'','RecentChanges'=>2,'http://kldp.org KLDP'=>9);'''`
          메뉴의 구분자를 설정한다. 기본값은 `'|'` (''deprecated'')
         `'''$auto_linebreak'''`
         `'''$use_referer'''`
          * 간단한 referer_log 남기기 여부 결정
          * 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'`
          * 기본값 `$url_prefix.'/imgs'`
          * 기본값은 `$url_prefix.'/css/kbd.js'`
         `'''$shared_metadb'''`
         `'''$shared_intermap'''`
         `'''$url_prefix'''`
         `'''$query_prefix= '/';'''`
  • MoniWikiPlugins . . . . 1 match
          * RecentChanges
          * rename
          * restore
          * rss :rss reader
  • MoreEffectiveC++/Miscellany . . . . 1 match
         ["MoreEffectiveC++"]
         == Item 32: Program in the Future tense ==
         원문:As software developers, we may not know much, but we do know that things will change. We don't necessarily know what will change, how the changes will be brought about, when the changes will occur, or why they will take place, but we do know this: things will change.
         좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
         ''program in future tense''는, 변화의 수용하고, 준비한다. 라이브러에 추가될 새로운 함수, 앞으로 일어날 새로운 오버로딩(overloading)을 알고, 잠재적으로 모호성을 가진 함수들의 결과를 예측한다. 새로운 클래스가 상속 계층에 추가될 것을 알고, 이러한 가능성에 대하여 준비한다. 새로운 어플리케이션에서 코드가 쓰이고, 그래서 새로운 목적으로 함수가 호출되고, 그런 함수들이 정확히 동작을 유지한다. 프로그래머들이 유지 보수를 할때, 일반적으로 원래의 개발자의 영역이 아닌, 유지 보수의 몫을 안다. 그러므로, 다른 사람에 의해서 소프트웨어는 이해, 수정, 발전의 관점에서 구현하고 디자인된다.
         "변화한다.", 험난한 소프트웨어의 발전에 잘 견디는 클래스를 작성하라. (원문:Given that things will change, writeclasses that can withstand the rough-and-tumble world of software evolution.) "demand-paged"의 가상 함수를 피하라. 다른 이가 만들어 놓지 않으면, 너도 만들 방법이 없는 그런 경우를 피하라.(모호, 원문:Avoid "demand-paged" virtual functions, whereby you make no functions virtual unless somebody comes along and demands that you do it) 대신에 함수의 ''meaning''을 결정하고, 유도된 클래스에서 새롭게 정의할 것인지 판단하라. 그렇게 되면, 가상(virtual)으로 선언해라, 어떤 이라도 재정의 못할지라도 말이다. 그렇지 않다면, 비가상(nonvirtual)으로 선언해라, 그리고 차후에 그것을 바꾸어라 왜냐하면 그것은 다른사람을 편하게 하기 때문이다.;전체 클래스의 목적에서 변화를 유지하는지 확신을 해라.
         auto_ptr<String> ps(String::makeString("Future tense C++"));
         String s("Future tense C++");
          * 만약, 당신의 코드를 구현 (generalize:일반화) 하기 위해서 큰 제한사항이 없다면, 구현(generalize:일반화) 해라. 예를들어서, 당신이 tree 검색 알고리즘을 작성하는 중이라면, 사이클이 없는 그레프에 대해 적용 시킬수 있는 일반화에 대한 궁리를 해라.
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_258_1.gif
          return operator=(dynamic_cast<const Lizard&>(rhs));
         불행히 Animal은 concrete 클래스이다.(가상이 아니란 소리) 그리고 이러한 접근은 Animal 객체 간에 할당을 못하는 것을 의미한다.
          if (this == &rhs) return *this;
         이러한 문제를 Animal::operator=를 보호(protected)영역으로 설정해서 해결할수 있다. 하지만 Animal 포인터를 통하여 Lizard와 Chicken객체의 부분적인 할당을 막는 것에 비하여, Animal 객체 간의 할당 문제는 난제이다. 추상 클래스로서 Animal 은 초기화 할수 없다. 그래서 Animal 간의 할당은 허용될 필요가 없다. 물론 새로운 문제를 수반한다. 왜냐하면 우리의 기본적인 디자인에서 이 시스템에서는 Animal을 객체로서 필요가 있어서 지원한 것 이기 때문이다. 이러한 쉬운 방법은 어려운 부분이 둘러싸고 있는 형국이다. 대신에 Animal 을 추상화 시키는 클래스를 새로 만들어 버리는 건 어떨까? AbstractAnimal 같이 말이다. 대신에 이제 이들을 Animal, Lizard, Chicken 객체가 상속을 받고 객체로서 활용 되는 것이다. 그렇게 되면 우리는 AbstractAnimal 이라는 추상 클래스에서 Concrete 클래스를 유도한다. 이러한 계층도를 준비하면 다음과 같다.
         http://zeropage.org/~neocoin/data/MoreEffectiveC++_264_1.gif
          * 현재 클래스에서 유도된 어떠한 concrete 클래스라도 반드시 "보통" 가상 함수로 함수를 선언해야 한다. (다시 말해 "=0"을 제외하고)
         당신은 아마도 데이터 멤버를 가지는 Animal 클래스 같이, Concrete 기초 클래스를 기반으로 전체하고 기초 클래스의 포인터를 통해서 할당에 대한 논의라는걸 주목할 것이다. 그렇다면, 만약 아무런 데이터가 없다면, 의도에 부합하는, 문제가 안될것이 없고, 좀더 생각해 보면, 그것은 자료가 없는 concrete 클래스가 두번 상속 되어도 안전할꺼라고 의견을 펼지 모른다.
         두가지 경우에 한가지는 당신의 데이터가 없는 concrete로 적용한다.:이건 미래에 데이터를 가질지도, 안가질지도 모른다. 만약 미래에 데이터를 가진다면, 당신이 하는 모든 것은 데이터 멤버가 추가도리때까지 문제를 미루어 두는 것이다. 이런 경우 당신은 잠깐의 편함과 오랜 시간의 고뇌를 맞바꾸는 것이다. (Item 32참고) 대안으로, 만약 기초 클래스가 정말 어떠한 데이터도 가지고 있지 않다면, 처음에 추상화 클래스와 아주 비슷한 이야기가 된다. concrete 기본 클래스는 데이터 없이 사용되는건 무엇인가?
         AbstractAnimal 같은 추상 기본 클래스를 Animal 같은 concrete 기본 클래스로의 교체는 operator= 의 동작을 도 쉽게 이해할수 있는 장점을 가져다 준다. 또한 당신이 배열을 다형하게 다루는 기회 역시 줄여준다.(배열과 클래스에 대한 관계는 Item 3을 참고하라.) 그렇지만, 기술적으로 가장 두드러지는 이점은 디자인 레벨에서 나타난다. 왜냐하면 당신은 유용한 추상의 존제를 명시적으로 인지 할수 있기 때문이다. 그것은 유용한 개념의 존재를 의식하지 않을지라도, 당신으로 하여금 새로운 유용한 개념을 위한 추상 클래스 생성하게 한다.
         만약 당신이 C1,C2 두개의 concrete 클래스를 가지고 있고, C2는 C1을 public 상속 했을때 당신은 아마도 두 클래스의 관계를 A라는 새로운 클래스를 생성해서, 다시 구조를 재편하는 과정을 부담없이 할수 있다.
  • NIC . . . . 1 match
         ["zennith"]가 사용하고 있는 NIC 는 현재 '''Realtek 8029(AS)''' 이다. 이 NIC 에 대해서 특별히 불만은 가지고 있지 않았지만, 얼마전에 경험하게 되었다. 바로, Linux 에서의 드라이버 지원 문제였는데, 동사의 8139(10/100 mega bit ethernet 카드로서, 대부분 리얼텍 NIC 를 쓴다고 한다면 이8139일 것이다.)는 매우 잘 지원되는 것으로 보였으나.. 단지 10m bit ethernet 인 내 8029 는 너무 오래전에 나온것인지 꽤, 고난과 역경을 겪게끔 하는 그런 카드였다. 그래서, 지금 ["zennith"] 가 알아보고 있는 카드가 두개 있다. 하나는 ACTTON 에서 나온 것과, 또 다른 하나는 그 이름도 유명한 NetGear 에서 나온 10/100 카드이다. 전자의 ACTTON 것은 나름대로 한 시대를 풍미했던 DEC 의 튤립이란 카드의 벌크 제품이라던데... 7000원이라는 가격이 매우 돋보이지만, 이것역시 벌크제품인지라 드라이버 지원문제가 꽤 걸릴거 같아서, 아무래도 NetGear 의 제품을 사게 될 것 같다.
  • NextEvent . . . . 1 match
         Wiki:ExtremeFishbowl
         현재 재학 중인 학생들 중 단 한 명이라도 오는 14, 15일의 Seminar:ReadershipTraining 에 와서 "공부하는 방법"을 배워가면, 그리고 그 문화를 퍼뜨릴 수 있다면 참 좋겠습니다. --JuNe
  • NumericalAnalysisClass/Exam2002_2 . . . . 1 match
         4. 점 P 를 직선 l=mx + b 를 중심으로 Reflection 하여 p* 로 변환되는 변환행렬 T를 계산하시오.
  • OPML . . . . 1 match
         #Redirect OutlineProcessorMarkupLanguage
  • ObjectWorld . . . . 1 match
         2002 년 6월 8일날 SoftwareArchitecture 에 대한 세미나가 ObjectWorld 주체로 열렸습니다.
          * http://www.freemethod.org:8080/bbs/UML1-SAintro.ppt
          * http://www.freemethod.org:8080/bbs/UML1-JavaArchitectureChanges.ppt
         첫번째 Session 에는 ["ExtremeProgramming"] 을 위한 Java 툴들에 대한 간단한 언급이였습니다. 제가 30분 가량 늦어서 내용을 다 듣진 못했지만, 주 내용은 EJB 등 웹 기반 아키텍쳐 이용시 어떻게 테스트를 할것인가에 대해서와, Non-Functional Test 관련 툴들 (Profiler, Stress Tool) 에 대한 언급들이 있었습니다. (JMeter, Http Unit, Cactus 등 설명)
         Http Unit 에 대해선 좀 회의적인 투로 설명을 하신것 같고, (이정도까지 테스트 할까..에 가까운) ["ExtremeProgramming"] 에서의 TDD 스타일은 따로 취급되었다라는 생각이 들었다는. (XP에서의 테스트를 먼저 작성하라는 이야기에 대해서 그냥 TP를 읽는 수준으로만 넘어간것 보면. 코딩 완료이후 테스트를 기본이라 생각하고 설명하셨다 생각됨.)
         두번째 Session 에서는 세분이 나오셨습니다. 아키텍쳐란 무엇인가에 대해 주로 case-study 의 접근으로 설명하셨는데, 그리 명확하지 않군요. (Platform? Middleware? API? Framework? Application Server? 어떤 걸 이야기하시려는것인지 한번쯤 명확하게 결론을 내려주셨었더라면 더 좋았을 것 같은데 하는 아쉬움.) 아키텍쳐를 적용하는 개발자/인지하는 개발자/인지하지 못한 개발자로 분류하셔서 설명하셨는데, 저의 경우는 다음으로 바꾸어서 생각하니까 좀 더 이해하기가 쉬웠더라는. '자신이 작업하는 플랫폼의 특성을 적극적으로 사용하는 개발자/플랫폼을 이해하는 개발자/이해하지 못한 개발자' 아직까지도 Architecture 와 그밖에 다른 것들과 혼동이 가긴 하네요. 일단 잠정적으로 생각해두는 분류는 이렇게 생각하고 있지만. 이렇게만 정의하기엔 너무 단순하죠. 해당 자료집에서의 Architecture 에 대한 정의를 좀 더 자세히 들여다봐야 할듯.
          * Architecture - 시스템 구조의 abstract class 단계
          * Middleware, Application Server - Architecture 를 Instance 화 시킨 실질적 제품들. 전체 시스템 내에서의 역할에 대한 설명으로서의 접근.
         세번째 Session 에서는 지난번 세미나 마지막 주자분(신동민씨였던가요.. 성함이 가물가물;)이 Java 버전업에 대한 Architecture 적 관점에서의 접근에 대한 내용을 발표하셨습니다. Java 가 결국은 JVM 이란 기존 플랫폼에 하나의 Layer를 올린것으로서 그로 인한 장점들에 대해 설명하셨는데, 개인적으론 'Java 가 OS에서 밀린 이상 OS를 넘어서려니 어쩔수 없었던 선택이였다' 라고 생각하는 관계로. -_-. 하지만, Layer 나 Reflection 등의 Architecture Pattern 의 선택에 따른 Trade off 에 대해서 설명하신 것과, 디자인을 중시하고 추후 LazyOptimization 을 추구한 하나의 사례로서 설명하신건 개인적으론 좋았습니다.
         ''Haven't read it. If I gave advice and I were to advise /you/, I'd advise more testing and programming, not more theory. Still, smoke 'em if ya got 'am.
         [From a [http://groups.yahoo.com/group/extremeprogramming/message/52458 thread] in XP mailing list]
  • OnceAndOnlyOnce . . . . 1 match
         OAOO. 필요한 부분에 대해서는 중복없이 오직 한번만 나타나야 한다는 원칙. ["Refactoring"] 의 원칙.
  • Ones/송지원 . . . . 1 match
          || Run ID || User || Problem || Result || Memory || Time || Language || Code Length ||
          break;
          break;
          break;
          int rem = 0;
          pns->digits[i] += (rem * 10000);
          rem = pns->digits[i] % divisor;
          return rem;
          if( division(&ns, n) == 0 ) break;
  • OperatingSystemClass/Exam2002_2 . . . . 1 match
          * countable semaphore class 를 구현. 단, default 생성자에서 세마포어 값은 0으로 설정.
          * 앞에서 완성된 class를 상속받아서 binary semaphore class 를 구현.
         class A extends Thread
          Thread.sleep(( (int)(3*Math.random()) )*1000);
          System.out.println("threadA got first mutex");
          System.out.println ("threadA got second mutex");
         class B extends Thread
          Thread.sleep(( (int)(3*Math.random()) )*1000);
          System.out.println ("threadB got second mutex");
          System.out.println ("threadB got first mutex");
          A threadA = new A(mutexX, mutexY);
          B threadB = new B(mutexX, mutexY);
          threadA.start ();
          threadB.start ();
         4. Consider a paging system with the page table stored in memory.
          * If a memory reference takes 200 nanoseconds, how long does a paged memory reference take?
          * If we add associative registers and 75 percent of all page-table references are found in the associative regsters, what is the effective memory time? (Assume that finding a page-table entry in the associative registers takes zero time, if the entry is there)
         5. Consider the following page reference string:
         How many page faults would occur for the following replacement algorithm, assuming one, three, five, seven frames? Remember all frames are initially empty, so your first unique pages will all cost one fault each.
          * LRU replacement
  • OriginalWiki . . . . 1 match
          * wiki:Wiki:PortlandPatternRepository
          * wiki:Wiki:ExtremeProgrammingRoadMap
  • OurMajorLangIsCAndCPlusPlus/string.h . . . . 1 match
         || int memcmp(const void * buf1, const void * buf2, size_t count) || Compare characters in two buffers. ||
         || int memicmp(const void * buf1, const void * buf2, unsigned int count) || Compares characters in two buffers (case-insensitive). ||
         || int strcmp(const char *stirng1, const char *string2) || Compare strings. ||
         || int strcmpi(const char *stirng1, const char *string2) || Compares two strings to determine if they are the same. The comparison is not case-sensitive. ||
         || int strncmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings. ||
         || int strnicmp(const char *string1, const char *string2, size_t count) || Compare characters of two strings without regard to case. ||
         || int strcoll(const char * stirng1, const char * stirng2) || Compare strings using locale-specific information. ||
         || char * strrchr(const char *string, int c) || Scan a string for the last occurrence of a character. ||
         || char * strerror(int errnum) || Get a system error message (strerror, _wcserror) or prints a user-supplied error message (_strerror, __wcserror). ||
         || char * strrev(char *string) || Reverse characters of a string. ||
  • PHPStudy2005 . . . . 1 match
          * [http://ezphp.net/lecture/ 다우니 PHP 초보 강좌] - 정현아 왼쪽꺼 강좌 3 문법 배우기, 4 카운터 만들기만 익히면 된다. 그리고 바로 투입~! ㅋ -[상협]
          * [http://zeropage.org/~namsangboy/wiki/wiki.php/RegularExpressions 정규식]
  • PPProject . . . . 1 match
         Review 10-15m
  • PairProgramming토론 . . . . 1 match
         PairProgramming 자체에 대해 조금 설명을 드리자면, 우선 이건 Driver와 Observer로 역할 분담이 되는데 정해진 게 아니고, 계속 바뀝니다. 운전하는 사람이 있고, 옆에서 코치하는 사람이 있는 거죠. 실제로 타이핑을 하는 사람은 타이핑이란 작업에 몰두하느라 지력을 좀 빼앗깁니다. 대신 이걸 관찰하는 사람은 여유가 있으므로 이것 저것 객관적인 코치를 해줄 가능성이 높죠. 그런데, 예를 들어, Driver가 코딩을 하다가 Observer가 "그게 아냐 이렇게 하면 더 좋아"하면서 설명을 하는데 잘 이해를 못하겠다 싶으면 키보드를 밀어주며 "니가 해봐"라고 말합니다. 역할 바꾸기가 되는 거죠. 이게 아니더라도, 가능하면 두 사람이 지속적으로 역할 바꾸기를 하면 좋습니다. (ExtremeProgramming에선 타이머를 이용해서 정해진 시간이 되면 역할 바꾸기를 하는 예도 있습니다) 뭐 어찌되었건, 피곤하다 싶거나 지금 머리가 잘 안돌아간다 싶으면 옆 사람에게 키보드를 넘기면 되죠.
         PairProgramming 자체에 대해서는 http://www.pairprogramming.com 를 참조하시고, IEEE Software에 실렸던, 로리 윌리엄스 교수의 글을 읽어보세요 http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF. 다음은 UncleBob과 Rob Koss의 실제 PairProgramming을 기록한 대본입니다. http://www.objectmentor.com/publications/xpepisode.htm
         Strengthening the Case for Pair-Programming(Laurie Williams, ...)만 읽어보고 쓰는 글입니다. 위에 있는 왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다. 문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요. 그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다. Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. 그러나 우리가 현재 하는 방식에 비해서 얼마나 효율이 있을까는 제고해봐야 할 것 같습니다. - 김수영
         제가 여러번 강조했다시피 넓게 보는 안목이 필요합니다. 제가 쓴 http://c2.com/cgi/wiki?RecordYourCommunicationInTheCode 나 http://c2.com/cgi/wiki?DialogueWhilePairProgramming 를 읽어보세요. 그리고 사실 정말 왕초보는 어떤 방법론, 어떤 프로젝트에도 팀에게 이득이 되지 않습니다. 하지만 이 왕초보를 쓰지 않으면 프로젝트가 망하는 (아주 희귀하고 괴로운) 상황에서 XP가 가장 효율적이 될 수 있다고 봅니다.
         pair-anaysis와 pair-design의 중요성을 문서에서는 ''"Unanimously, pair-programmers agree that pair-analysis and pair-design is '''critical''' for their pair success."'' 이와 같이 말하고 있습니다. 또 다시 보시면 아시겠지만.. 제가 쓴 문장은 "물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요."입니다. 택도 없다는 표현은 당연히 제 생각이라는 것이 나타나 있다고 생각되는데....
         또한, 모든 분야에 있어 전문가는 존재하지 않습니다. 그렇다고 해서, 자신의 전문 영역만 일을 하면 그 프로젝트는 좌초하기 쉽습니다. (이 말이 이해가 되지 않으면 Pete McBreen의 ''Software Craftsmanship''을 읽어보시길) 그 사람이 빠져나가 버리면 아무도 그 사람의 자리를 매꿔주기가 어렵기 때문입니다. 따라서 PairProgramming을 통해 지식 공유와 팀 빌딩을 합니다. 서로 배우는 것, 이것이 PairProgramming의 핵심입니다. 그런데 "배운다는 것"은 꼭 실력의 불균형 상태에서 상대적으로 "적게 아는 사람" 쪽에서만 발생하는 것이 아닙니다.
  • Parallels . . . . 1 match
         <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/gE1XQyT_IbA"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/gE1XQyT_IbA" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>
         요즘에는 이 프로그램이 [http://www.xprogramming.com/xpmag/whatisxp.htm#small eXtremeProgramming] 으로 완성된 제품으로 꽤나 알려졌나보다. ( [http://fribirdz.net/506 관련 블로그] )
          글쌔. 게시판에서의 사용자 피드백과 이에 대한 반영, 빠르게 Release 했다는 현상만으로 XP process로 진행되었다고 이야기하기에는 무리가 있어보이는데.. 홈페이지 내부에서도 XP 로 진행되었다는 이야기도 없고. 빠른 릴리즈와 사용자 피드백은 XP가 XP 라고 선언되기 훨씬 이전에도 자주 이용된 방법이였건만. --[1002]
  • PatternTemplate . . . . 1 match
         == Structure ==
         == Related Patterns ==
  • Perforce . . . . 1 match
         = Relate Links =
  • PersonalHistory . . . . 1 match
          * [http://xfs2.cyworld.com File sturucture class team project]
          * [http://izyou.net/wireless Moblie computing class term paper]
          * [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
          * [RedThon] - 2004년 6월 4일 종료
  • Plex . . . . 1 match
         Seminar:Plex - http://www.cosc.canterbury.ac.nz/~greg/
         Pyrex 를 만든 개발자가 만들었다. [1002]가 Regular Expression 보다 좋아하는 Text Analysis Library.
  • Plugin/Chrome/네이버사전 . . . . 1 match
         // Copyright (c) 2012 The Chromium Authors. All rights reserved.
         var req = new XMLHttpRequest();
         req.open(
          "http://api.flickr.com/services/rest/?" +
          "sort=relevance&" + // another good one is "interestingness-desc"
         req.onload = showPhotos;
         req.send(null);
          var photos = req.responseXML.getElementsByTagName("photo");
          var img = document.createElement("image");
          return "http://farm" + photo.getAttribute("farm") +
          "_" + photo.getAttribute("secret") +
         scrollbar, resizable)
          resizable_str = resizable ? 'yes' : 'no';
         +',resizable='+resizable_str);
  • PragmaticVersionControlWithCVS . . . . 1 match
         || ch5 || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
         || ch8 || [PragmaticVersionControlWithCVS/CreatingAProject] ||
  • PragmaticVersionControlWithCVS/HowTo . . . . 1 match
         || [PragmaticVersionControlWithCVS/Getting Started] || [PragmaticVersionControlWithCVS/AccessingTheRepository] ||
  • PreviousFrontPage . . . . 1 match
         MoinMoin is a Python WikiClone, based on PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoinWikis page.
         You are encouraged to add to the MoinMoinIdeas page, and edit the WikiSandBox whichever way you like. Please try to restrain yourself from adding unrelated stuff, as I want to keep this clean and part of the project documentation.
         You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
         To learn more about what a WikiWikiWeb is, read about WhyWikiWorks and the WikiNature. Also, consult the WikiWikiWebFaq.
         Interesting starting points:
          * RecentChanges: see where people are currently working
          * WikiSandBox: feel free to change this page and experiment with editing
  • ProgrammingContest . . . . 1 match
         http://www.itasoftware.com/careers/programmers.php
          ''Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천''
  • ProgrammingLanguageClass . . . . 1 match
          * ''Programming Language Processors In Java : Compilers and Interpreters'' by David A. Watt & Deryck F. Brown
         "Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them."
         개인적으로 학기중 기억에 남는 부분은 주로 레포트들에 의해 이루어졌다. Recursive Descending Parser 만들었던거랑 언어 평가서 (C++, Java, Visual Basic) 작성하는것. 수업시간때는 솔직히 너무 졸려서; 김성조 교수님이 불쌍하단 생각이 들 정도였다는 -_-; (SE쪽 시간당 PPT 진행량이 60장일때 PL이 3장이여서 극과 극을 달렸다는;) 위의 설명과 다르게, 수업시간때는 명령형 언어 페러다임의 언어들만 설명됨.
         see also SoftwareEngineeringClass
  • ProgrammingLanguageClass/Report2002_1 . . . . 1 match
         ※ 입력된 문장들이 제시된 문법(grammar)에 맞는지 판단하는 Recursive Descent Parsing 기법을 이용한 파서(parser)를 작성하시오.
         <statement> → <identifier> <assignment_operator> <expression>
         <expression> → <term> <plus_operator> <expression>
          | <term> <minus_operator> <expression>
         <factor> → <left_parenthesis> <expression> <right_parenthesis>
          | <identifier><condition><identifier><question_operator><compare_value>
         <condition> → <less_keyword> | <greater_keyword> | <equal_keyword>
         <compare_value> → <identifier> <colon> <identifier>
         <greater_keyword> → >
         <left_parenthesis> → (
         <right_parenthesis> → )
          예) void expression(void) {
          printf("<expression> parsed.\n");
          <expression> parsed.
          <expression> parsed.
          <expression> parsed.
          <expression> parsed.
          <greater_keyword> parsed.
          <compare_value> parsed.
          <expression> parsed.
  • ProgrammingPearls/Column3 . . . . 1 match
         == Data Structures Progams ==
          * 주로 Refactoring과 Table Driven Programming을 설명하고 있다.
         Address : Seoul, Su-saek
         #include <iostream>
         #include <fstream>
          ifstream fin("data.dat");
          cout << "Hello, " << name << ".\nWe'll send a " << good << " to you. \nAddress : "
          return 0;
         #include <iostream>
         #include <fstream>
          string scheme = "Hello, $0. \nWe'll send a $1 to you. \nAddress : $2, $3\n";
          ifstream fin("data.dat");
          break;
          break;
          return 0;
  • ProgrammingWithInterface . . . . 1 match
         상속을 사용하는 상황을 국한 시켜야 할 것같다. 상위 클래스의 기능을 100%로 사용하면서 추가적인 기능을 필요로 하는 객체가 필요할 때! .. 이런 상황일 때는 상속을 사용해도 후풍이 두렵지 않을 것 같다. GoF의 책이나 다른 DP의 책들은 항상 말한다. 상속 보다는 인터페이스를 통해 다형성을 사용하라고... 그 이유를 이제야 알 것같다. 동감하지 않는가? Base 클래스를 수정할 때마다 하위 클래스를 수정해야 하는 상황이 발생한다면 그건 인터페이스를 통해 다형성을 지원하는게 더 낫다는 신호이다. 객체는 언제나 [[SOLID|SRP (Single Responsiblity Principle)]]을 지켜야 한다고 생각한다.
          return remove(--topOfStack);
          return theData.remove(--topOfStack);
          return return theData.size();
          return poppedItem;
          public int maximumSize() { return maxHeight; }
          public int minimumSize() { return minHeight; }
          return popped;
          return topOfStack + 1;
          return theData.remove(--topOfStack);
          return return theData.size();
          return poppedItem;
          public int maximumSize() { return maxHeight; }
          public int minimumSize() { return minHeight; }
  • ProjectAR/Temp . . . . 1 match
          - Render() : 화면에 직접 출력한다. (오직 출력루틴들만 있다.) // 계산을 하려면 FrameMove에서
  • ProjectPrometheus/CollaborativeFiltering . . . . 1 match
         일단은 본격적인 CF로 가는 것보다 아마존의 "Customers who bought this book also bought"식으로 좀 더 간단한 것을 하는 것이 좋을 듯 하다. 이것은 꼭 Clustering이 필요없다 -- Clustering이 효과를 발휘하려면 상당량의 데이타(NoSmok:CriticalMass )가 쌓여야 하는데, 쉬운 일이 아닐 것이다. 다음은 JuNe이 생각한 간단한 알고리즘. 일종의 Item-to-Item Correlation Recommendation.
          *userPref is a set of book preferences of a user.
          *For every meaningful action(searching, viewing, writing a review, rating without writing reviews) there is a pref coefficient. (prefCoef)
          *bookPref is a set of book preferences of a book. (similar concept to "also bought")
          *When a user does a specific well-defined action, bookPref is updated as "prefCoef*userPref+bookPref" and resorted. (some books at the end of the list might be eliminated for performance reasons)
          *Any top Ns are shown from the bookPref
  • ProjectPrometheus/Iteration3 . . . . 1 match
         ||||||Story Name : Recommendation System(RS) Implementation, Login ||
  • ProjectPrometheus/방명록 . . . . 1 match
          * 어떤 상황인지 ["ProjectPrometheus/BugReport"] 에 써주겠어? 그런 상황은 처음 봐서. --["상민"]
  • ProjectWMB . . . . 1 match
          * This page's object aim to submit project - Web Map Browser - for Samsung Software Membership.
         = Reference Page =
          * [https://eclipse-tutorial.dev.java.net/eclipse-tutorial/korean/] : 이클립스 한글 튜토리얼
          * Analysis code(Code reading)
  • ProjectZephyrus/Client . . . . 1 match
         현재 공용 툴은 JCreator. JCreator 프로젝트 화일도 같이 업했으므로 이용할 수 있을 것임.
          + ---- MainSource - 메인 프로그램 소스 & JCreator 프로젝트 화일이 있는 디렉토리
         === Current To Do ===
         || JTree 이용, buddy list class 작성 || 1 || ○ (40분) 5/31 ||
         || buddy list class refactoring (tree model move method) || . || ○ (20분) 6/5 ||
         || ZephyrusClient Refactoring || 0.5 || . ||
  • ProjectZephyrus/PacketForm . . . . 1 match
         바뀐 내용은 [http://zeropage.org/browsecvs/index.php?&cvsrep=ZeroPage&dir=ProjectZephyrusServer%2Fdocument%2F&file=PacketForm.txt CVS-PacketForm] 에서 확인가능
          Server -> Receiver(메세지를 받을 사람)
  • ProjectZephyrus/간단CVS사용설명 . . . . 1 match
          설치 [http://www.wincvs.org WinCVS]를 [http://sourceforge.net/project/showfiles.php?group_id=10072&release_id=83299 다운로드] 해서 설치
          메뉴->Admin->Preference
          메뉴->Create->Checkout module
         cvs:x:536:neocoin,reset
          '''2. ZeroPage 서버는 현재 Redhat 7.0이므로 xinetd를 이용하므로 세팅'''
          flags = REUSE
          socket_type = stream
          log_on_failure += USERID
         /etc/rc.d/init.d/xinetd restart
         cvs import -m "메시지" 프로젝트이름 vender_tag release_tag
  • PyIde/FeatureList . . . . 1 match
          * find / replace
          * project 에 등록된 모든 화일들에 대해서 find / replace
          * find reference
         === refactoring ===
         어느정도까지 가능할까. BRM, Smalltalk Refactoring Browser 구경해볼것.
          * rename
          * SignatureSurvey
  • PyServlet . . . . 1 match
         === Resin 에서의 Setting ===
         요즈음(resin 3.08 기준)에는 이렇게 쓴다.
         resin/lib 디렉토리에 jython.jar 화일을 복사해준다.
          def doGet(self, req, res):
          res.setContentType("text/html")
          out = res.getOutputStream()
          return
  • PythonForStatement . . . . 1 match
         for_stmt ::= "for" target_list "in" expression_list ":" suite
         for 타겟객체리스트(target) in 시퀀스형(expression_list==sequence):
          식(expression)
         These represent finite ordered sets indexed by non-negative numbers. The built-in function len() returns the number of items of a sequence. When the length of a sequence is n, the index set contains the numbers 0, 1, ..., n-1. Item i of sequence a is selected by a[i].
         {{|There are six sequence types: strings, Unicode strings, lists, tuples, buffers, and xrange objects|}}
         여기까지 알아 보시려면, Python Language Reference에서 sequence, for statement로 열심히 찾아 보시면 됩니다. 열혈강의 파이썬에도 잘 나와있습니다. 그리고 다음의 이야기들은 다른 언어를 좀 아시면 이해가실 겁니다.
         ref : Python Lib ref, Python Language ref, 열강파이썬
  • QueryMethod . . . . 1 match
          return status;
          return status;
         See Also ReplaceTempWithQuery
  • RAID . . . . 1 match
         #redirect RedundantArrayOfInexpensiveDisks
  • RPC . . . . 1 match
         = Remote Procedure Call (RPC) =
  • RTTI . . . . 1 match
         #Redirect RunTimeTypeInformation
  • RabbitHunt/김태진 . . . . 1 match
         ||Problem||2606||User||jereneal20||
         ||Language||GCC||Result||Wrong Answer||
          return 0;
  • RandomWalk2/Vector로2차원동적배열만들기 . . . . 1 match
         #include <iostream>
          return 0;
          ar.resize(nRow);
          ar[i].resize(nCol);
          * [http://www.parashift.com/c++-faq-lite/containers-and-templates.html#faq-33.1 Why Arrays are Evil]
          * [http://www.cuj.com/articles/2000/0012/0012c/0012c.htm?topic=articles A Class Template for N-Dimensional Generic Resizable Arrays]
          * Bjarne Stroustrup on Multidimensional Array [http://www.research.att.com/~bs/array34.c 1], [http://www.research.att.com/~bs/vector35.c 2]
  • RandomWalk2/질문 . . . . 1 match
         ''RandomWalk2 Requirement Modification 4 is now updated. Thank you for the questions.''
  • RecentChanges . . . . 1 match
         [[RecentChanges(timesago,daysago,notitle,comment,days=30,item=100,board,hits,showhost,js,timesago,change,allusers,editrange)]]
  • ReplaceTempWithQuery . . . . 1 match
          return basePrice * 0.95;
          return basePrice * 0.98;
          return basePrice() * 0.95;
          return basePrice() * 0.98;
          return _quantity * _itemPrice;
         have been only a boy playing on the seashore, and diverting myself in
         now and then finding a smoother pebble or a prettier shell than
         ordinary. Whilst the great ocean of truth lay all undiscovered before me.
         ["Refactoring"]
  • ReverseAndAdd/민경 . . . . 1 match
         Describe ReverseAndAdd/민경 here.
          break
  • ReverseAndAdd/이승한 . . . . 1 match
         = [ReverseAndAdd]/[이승한] =
          reNum = str(num)
          reNum = int(reNum[::-1])
          if reNum == num:
          print reNum
          check(reNum+num)
         #include <iostream>
         int reverse(int number); //뒤바꾼 수가 원래 수와 같다면 -1 이 리턴
          if( reverse( input[cycle] ) == -1){
          break;
          input[cycle]+= reverse( input[cycle] );
         int reverse(int number){
          int returnNum = 0;
          returnNum += numbers[i] * zeros;
          //returnNum을 이용하여 앞과 뒤가 같은지 검사한다.
          if( returnNum == originalNum )
          return -1;
          return returnNum;
  • ReverseAndAdd/최경현 . . . . 1 match
          break
         [ReverseAndAdd] [데블스캠프2005]
  • RonJeffries . . . . 1 match
         ExtremeProgramming의 세 명의 익스트리모 중 하나
         Could you give any advices for Korean young programmers who're just starting their careers? (considering the short history of IT industry in Korea, there are hardly any veterans with decades of experiences like you.) -- JuNe
         This will sound trite but I believe it. Work hard, be thoughtful about what happens. Work with as many other people as you can, teaching them and learning from them and with them. Read everything, try new ideas in small experiments. Focus on getting concrete feedback on what you are doing every day -- do not go for weeks or months designing or building without feedback. And above all, focus on delivering real value to the people who pay you: deliver value they can understand, every day. -- Ron Jeffries
  • SLOC . . . . 1 match
         #Redirect Source_lines_of_code
  • STL/VectorCapacityAndReserve . . . . 1 match
         ["STL/vector"] 의 capacity 와 reserve 함수의 예
         #include <iostream>
         /* 이 프로그램은 STL Tutorial and Reference Guid 2nd 의 */
          cout << "STL Vecotr의 capacity와 reserve에 대한 함수 수행을 보입니다."
          vector2.reserve(N);
          return 0;
  • STL/vector . . . . 1 match
         ar.resize(10); // 10개로 잡는다.
         #include <iostream>
          return 0;
         See Also ["STL/VectorCapacityAndReserve"]
  • STL/참고사이트 . . . . 1 match
         [http://www.halpernwightsoftware.com/stdlib-scratch/quickref.html C++ STL from halper]
         C++ Standard Template Library, another great tutorial, by Mark Sebern http://www.msoe.edu/eecs/cese/resources/stl/index.htm
         Technical University Vienna by Johannes Weidl http://dnaugler.cs.semo.edu/tutorials/stl mirror http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
         iterator에 대한 매우 좋은 설명 http://www.cs.trinity.edu/~joldham/1321/lectures/iterators/
         Mumits STL 초보 가이드 (약간 오래된 것) http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html
  • STLPort . . . . 1 match
          Upload:1-decompress.GIF
          Upload:2-VC6mak_read.GIF
          * Tools 메뉴 > Options 항목 > Directories 탭에서, Include Files 목록에 stlport 디렉토리를 추가하고 나서 이것을 첫 줄로 올립니다.
          Upload:3-prebuild_includePath.GIF
          1. 이제 Rebuild All을 하시든지 해서 라이브러리 빌드로 들어 갑니다,
          * DLL은 debug/(release)의 2개입니다.
          * LIB은 debug/(release), debug_static/(release)_static의 4개입니다.
          * Tools > Options 메뉴 > Directories 탭에서, Include Files 목록에 방금 추가된 stlport 디렉토리(대개 ''C:/Program Files/Microsoft Visual Studio/VC98/include/stlport''이겠지요)를 추가하고 나서, 이 항목을 가장 첫 줄로 올립니다.
         STLport는 상용이 아니기 때문에, 링크 시 사용하는 STLport 전용 C++ 런타임 라이브러리(입출력스트림이 있는) 직접 설정해 주어야 합니다. 이것을 제대로 이해하려면 우선 VC++가 사용하는 런타임 라이브러리를 알아 봐야 합니다. VC++6의 런타임 라이브러리는 VC98/lib 디렉토리에서 확인할 수 있는데, 정적/동적 링크여부에 따라 크게 {{{~cpp LIBxxx.lib}}} 버전과 {{{~cpp MSVCxxx.lib}}} 버전으로 나뉩니다. 프로젝트에서 조정하는 부분은 Project > Setting 메뉴로 열리는 C/C++ 탭입니다. C/C++ 탭에서 "Code Generation" 카테고리를 선택하면 '''Use Run-time Library''' 드롭다운 박스를 조정해 줄 수 있습니다. 여기서 디버그 정보 포함('''debug''') 유무, 런타임 라이브러리의 스레딩('''thread''') 모드, 동적 링크 여부('''DLL''')의 조합을 결정해 줄 수 있습니다. 긴 설명은 빼고, 간단히 정리하면 다음과 같습니다. (MSDN의 설명을 참고하여 정리하였습니다)
          * C 런타임 라이브러리 (iostream 없음) : VC++6 용
          ||Single-Threaded|| LIBC.LIB || 단일 스레드, 정적 링크 || /ML || ||
          ||Multithreaded|| LIBCMT.LIB || 다중스레드, 정적 링크 ||/MT || _MT ||
          ||Multithreaded DLL|| MSVCRT.LIB || 다중스레드, 동적링크 ||/MD || _MT, _DLL ||
          ||Single-Threaded|| LIBCP.LIB || 단일 스레드, 정적 링크 || /ML || ||
          ||Multithreaded|| LIBCPMT.LIB || 다중 스레드, 정적 링크 || /MT || _MT ||
          ||Multithreaded DLL|| MSVCPRT.LIB || 다중 스레드, 동적 링크 || /MD || _MT, _DLL ||
          || _STLP_USE_STATIC_LIB || <*><*threaded> || stlport_vc6_static.lib ||
          || _STLP_USE_DYNAMIC_LIB || <*><*threaded> DLL || stlport_vc6.lib ||
          || _STLP_USE_STATICX_LIB || <*><*threaded><*>|| "DLL"이면 stlport_vc6.lib, 아니면 stlport_vc6_static.lib ||
         _STLP_USE_STATIC_LIB 상수를 정의한 후에 "Use Run-time Library" 설정을 <*><*threaded>으로 맞춘 뒤에도 {{{~cpp LNK2005}}} 에러와 {{{~cpp LNK4098}}} 경고가 동시에 나는 경우가 있습니다. 이런 에러가 나올 것입니다.
  • SeparationOfConcerns . . . . 1 match
          * http://www.acm.org/classics/may96/ - 해당 논문에서 추후 ResponsibilityDrivenDesign 에 해당되는 내용도 같이 있다. (72년 논문이란다.. 72년.;)
  • SmallTalk/강좌FromHitel/강의2 . . . . 1 match
          mailto:andrea92@hitel.net
          ☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
          AbstractToTextConverter ACCEL AcceleratorPresenter AcceleratorTable
          DWORDBytes DWORDField EDITSTREAM ... etc ...
          (DesktopView current canvas)
          free
          ] repeat] fork.
          ☞ a Process(a CompiledExpression, priority: 5, state: #ready)
          UserLibrary default invalidate: nil lpRect: nil bErase: true.
          SmalltalkSystem current browseContainingSource: 'Dolphin'.
  • SmallTalk/강좌FromHitel/강의3 . . . . 1 match
          mailto:andrea92@hitel.net
         * Stree Address: 우리의 경우에는 시/군, 구/읍면, 동, 번지로 주소를 쓰지
          만 외국의 경우는 거꾸로 입니다. Street Address에는 여러분의 동 이름
         * Country: 우리의 자랑스런 "Korea"를 선택합니다.
         * Where did you hear about this product?
         * Previous experience of Smalltalk?
         * How many attempts did it take you to download this software?:
          (DesktopView current canvas)
          free
         ] repeat] fork.
          UserLibrary default invalidate: nil lpRect: nil bErase: true.
  • SmallTalk/강좌FromHitel/강의4 . . . . 1 match
          mailto:andrea92@hitel.net
          SmalltalkSystem current browseContainingSource: 'Dolphin'
         (resource) 등이 함께 꾸려져서 들어있습니다. 주로 꾸러미는 하나의 커다란
         Tools > Resource Browser를 선택하면 자원 탐색기를 열 수 있습니다. 앞서
          CompiledExpression>>value:
         Express라는 Smalltalk 환경에서는 Disk Browser가 있다고 합니다.
  • StringResources . . . . 1 match
         /** StringResorces.java - Information strings, Component's label strings resources load
          * @author: CAUCSE 20011658 Lee hyun chul(abudd@dreamwiz.com)
  • StructuredProgramming . . . . 1 match
         구조적 프로그래밍 기법으로서 OOP에서도 여전히 유용하게 이용할 수 있는 방법으로는 StepwiseRefinement 가 있다. 이는 처음 추상적인 이름으로 서술한뒤, 점차적으로 구체적인 구현부분까지 점진적으로 서술해가면서 구현해나간다. 이는 ProgrammingByIntention 과 그 맥락이 비슷하다고 할 수 있다.
         Edsger W. Dijkstra/Go To Statement Considered Harmful
         Notes on Structured Programming
         What led to "Notes on Structured Programming"
  • SubVersion . . . . 1 match
         = Reference Book =
         http://svnbook.red-bean.com/ - SVN(SubVersion) 책. 2003년 하반기 출간 예정.
         [http://svnbook.red-bean.com/ Subversion Online Book]
         = Thread =
  • SystemPages . . . . 1 match
          * RecentChanges - 최근에 바뀐 내용들.
         === Thread ===
  • TAOCP . . . . 1 match
          * Review :
         [TAOCP/Preface]
         [TAOCP/InformationStructures]
         DeleteMe)MIXware부분에 가서 프로그램 받을 수 있어. 다 써보진 못했는데 2번째꺼 해보니깐 좋더라...
         == Thread ==
  • TAOCP/BasicConcepts . . . . 1 match
         양의 정수 m과 n이 주어졌을때, 그것들의 최대공약수(greatest common divisor)
          * Registers
          A, X register
          I register - rI1~rI6까지 있음.
          J register
          Comparison indicator, - EQUAL, LESS, GREATER
          ±AA - 메모리 주소(the address)
          {{{~cpp OP ADDRESS, I(F) }}}
          * Address transfer operators.
          레지스터와 CONTENTS(M)을 비교해서 LESS, GREATER, EQUAL을 설정하는 명령어이다. CMPA, CMPX, CMPi가 있다. CMPi를 할 때는 앞에 세 자리가 0이라고 가정한다.
         순열은 abcdef를 재배열(rearrangement)이나 이름바꾸기(renaming)를 해서 얻는다고 볼 수 있다. 이를 다음과 같이 표시할 수 있다.(p.164참조)
          A3. 다음문자를 CURRENT로 세팅한다.
          A4. 오른쪽으로 가면서 CURRENT와 같은 문자를 찾는다. 찾은 경우 흔적을 남기고 A3로 간다. (못 찾고 오른쪽 끝까지 가면 A5로 간다.)
          A5. START≠ CURRENT이면 CURRENT를 출력하고 식 왼쪽부터 시작해서 A4로 간다.( 같으면 A6로 간다.)
  • TCP/IP . . . . 1 match
         == Thread ==
          * http://kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc1 <using make file>
          * http://kldp.org/KoreanDoc/VI-miniRef-KLDP <using vi editer>
          * http://kldp.org/KoreanDoc/Thread_Programming-KLDP <using thread>
  • Task . . . . 1 match
         Rename : AntTask
  • TddWithWebPresentation . . . . 1 match
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/action/ViewPageAction.py?rev=1.5&content-type=text/plain
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/test_viewpageaction.py?rev=1.2&content-type=text/plain
         그러다가, 최근 프로젝트 하는중에 ModelViewPresenter 라는 개념에 대해 익히게 되었다. 정확한 개념에 대해서는 잘 잡지를 못했지만, HumbleDialogBox 라는 아티클을 보니 대강 감이 온것 같았다. 중요한 건 표현부분에 대해서 가능한한 로직이 남지 않아야 한다는 점이고, 표현부분을 사용하는 쪽 입장에서도 가능한한 추상화레벨이 높은 메소드를 쓸 수 있어야 한다는 점이다.
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/action/ViewPageAction.py?rev=1.6&content-type=text/plain
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/viewpresenter.py?rev=1.1&content-type=text/plain
         presenter 부분은 추후 내부적으로 Template 엔진을 사용하는 방향을 생각해 볼 수도 있을것 같다.
         이렇게 될 경우 테스트 코드는 다음과 같다. 여차하면 테스트 코드에서 presenter 를 사용할 수도 있었다. (어차피 ViewPageAction 역할을 잘 하느냐가 중요하니까, 거기에 붙는 HTML 들이 어떠하냐가 중요하진 않을것이다.)
         http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi/*checkout*/pyki/test_viewpageaction.py?rev=1.3&content-type=text/plain
         하지만, 이건 리팩토링 단계에서의 이야기고, 만일 새 코드를 작성하는 중의 UI 부분 presenter 를 TDD로 구현한다면 어떻게 될까? 아마 저 MockViewPresenter 부분이 먼저 구현되고, 이 인터페이스를 근거로 ViewPresenter 를 만든 뒤 HTML 코드 부분을 작성하면 될 것 같다. 실제 UI 에 어떠어떠한 것이 표현되느냐는 AcceptanceTest 단에 맡기면 되리라.
          2. MockPresenter 를 만든다. 중요한 것은 출력결과를 테스트하는것이 목적이 아니라 action 결과 행해지는 일들(Transaction)이 제대로 일어났는지를 테스트하는 것이다. MockPresenter 는 그냥 해당 메소드들이 호출되었는지만 verify 하는정도면 충분할 것이다.
          3. MockPresenter 를 근거로 Real Presenter 를 만든다.
  • TestDrivenDevelopmentByExample . . . . 1 match
         개인적으로 TDD 중 빠른 테스트 통과를 위해 가짜 상수로 쌓아나갈때 어떻게 '중복' 이라 하여 ["Refactoring"] 할까 고민했었는데, 이전의 SeminarHowToProgramIt 에서의 예제 이후 이 문서에서의 예제가 깔끔하게 풀어주네요. 인제 한번 들여다 본 중이긴 하지만, 저자가 저자인 만큼 (KentBeck).~
  • The Tower of Hanoi . . . . 1 match
         ==== Recurrent Problems - The Tower of Hanoi ====
         ===== mathematical expression =====
  • TheJavaMan/비행기게임 . . . . 1 match
          (압축을 풀면 나오는 Readme파일에 게임 설명이 있습니다.)
         == Thread ==
          * DoubleBuffering , Thread 등을 적절하게 이용해보세요~* - [임인택]
  • TheJavaMan/지뢰찾기 . . . . 1 match
          setFigures();
          center.removeAll();
          t.reset();
          setFigures();
          break;
          public void setFigures() {
          int figure;
          figure = 0;
          figure++;
          figure++;
          figure++;
          figure++;
          figure++;
          figure++;
          figure++;
          figure++;
          map[i][j] = figure;
          kan[i][j].setBorder(BorderFactory.createRaisedBevelBorder());
          public void mouseEntered(MouseEvent e) {
          public void mousePressed(MouseEvent e) {
  • TicTacToe/김홍선 . . . . 1 match
          repaint();
          //getGraphics().drawRect(0,0,900,900);
          repaint();
  • TicTacToe/유주영 . . . . 1 match
          int realx;
          int realy;
          realx = (i*100)+20;
          realy = (j*100)+20;
          repaint();
          g.drawRect(100,100,300,300);
          g.drawOval(realx,realy,60,60);
          {g.drawLine(realx,realy,realx+60,realy+60);
          g.drawLine(realx,realy+60,realx+60,realy);
  • TkinterProgramming/Calculator2 . . . . 1 match
          return repr(eval(code, self.myNameSpace, self.myNameSpace))
          return 'Error'
          def __init__(self, parent = None):
          'store' : self.doThis, 'off' : self.turnoff,
          self.current = ''
          self.current = ""
          result = self.calc.runpython(self.current)
          if result :
          self.display.insert(END, '%s\n' % result, 'ans')
          self.current = ""
          def doKeypress(self, event):
          self.current = self.current + key
          self.current = self.currnet[:-1]
          self.current = self.currnet + key
          (',', 'RE', 'J', KC1, FUN, ','),
          [ ('STO', 'RCL', 'X', KC1, FUN, 'store'),
          vscrollmode = 'dynamic', hull_relief = 'sunken',
          text_foreground = 'black', text_height=6,
          text_padx = 10, text_pady=10, text_relief = 'groove',
          self.display.tag_config('ans', foreground='white')
  • TkinterProgramming/SimpleCalculator . . . . 1 match
          return w
          return w
          Entry(self, relief=SUNKEN,
          btn.bind('<ButtonRelease-1>', lambda e, s = self, w = display: s.calc(w), '+')
          display.set(repr(eval(display.get())))
  • TortoiseCVS . . . . 1 match
         TortoiseCVS 의 경우는 CVS Conflict Editor 를 Preference 에서 설정할 수 있다. [1002]의 경우는 WinMerge 로 잡아놓았다.
         Conflict 이 난 화일의 경우 메뉴 하나가 더 추가되어있다. 바로 '''CVS Resolve conflicts'''
         WinMerge 등의 Diff 표현이 잘 되는 Compare tool 을 쓰는 것이 CVS Conflict 처리하기에는 훨씬 편하다. (기존의 <<<< ________ >>>> 으로 소스코드 안에 표현되었을때를 생각해보길. :) )
  • Trac . . . . 1 match
         Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission; to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.
         It provides an interface to Subversion, an integrated Wiki and convenient report facilities.
         Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all project events in order, making getting an overview of the project and tracking progress very easy.
         = Related =
  • TriDiagonal/1002 . . . . 1 match
          * 느낀점 - LU 분해를 일반화시키는 부분에 대해서는 연습장에서 계산을 시키고 대입을 해보고 패턴을 찾아낸 뒤 일반화시켰다. 만일 이 부분을 코드를 짜면서 ["TestFirstProgramming"] * ["Refactoring"] 의 방법으로 풀었더라면 어떠했을까. (두 개의 과정이 비슷하다고 여겨진다. 코드가 줄어들고 OAOO 의 원칙을 지킬 수 있을테니까.) -- 석천
          def testLuDecMore(self):
          def __init__(self, aSquareArray):
          assert len(aSquareArray) == len(aSquareArray[0])
          self.array = aSquareArray
          self.n = len(aSquareArray)
          self.l = self.makeEmptySquareMatrix(self.n)
          self.u = self.makeEmptySquareMatrix(self.n)
          def makeEmptySquareMatrix(self, n):
          return matrix
          return self.l, self.u
          return totalMinus
          return totalMinus
          return self.l
          return self.u
          return matrixY
          return matrixX
          return totalMinus
          return totalMinus
          return emptyMatrix
  • UDK/2012년스터디 . . . . 1 match
          * [http://www.udk.com/kr/documentation.html 튜토리얼], [http://www.3dbuzz.com/vbforum/sv_home.php 3D Buzz] [http://cafe.naver.com/cookingani UDK 카페]와 [http://book.naver.com/bookdb/book_detail.nhn?bid=6656697 Mastering Unreal]을 참고하여 진행
          * [http://udn.epicgames.com/Three/UnGlossaryKR.html 용어집] 용어집부터 읽으면 이해가 쉽군여
          * [http://udn.epicgames.com/Three/DevelopmentKitFirstScriptProjectKR.html 언리얼스크립트 시작하기] 읽어봅시다
          * [http://udn.epicgames.com/Three/UnrealScriptReferenceKR.html 언리얼스크립트 레퍼런스] UnrealScript 사용자용
          * [http://udn.epicgames.com/Three/MaterialsCompendiumKR.html 머터리얼 개론] 텍스쳐와 여러 가지 연산 기능을 이용하여 머터리얼 속성을 만듬
         http://www.slideshare.net/devcatpublications/ndc2011-8253034
         http://udn.epicgameskorea.com/Three/LandscapeCreatingKR.html
          * 앞으로 일정이 타이트하게 되었습니다. 중간고사도 끼었고.. 무엇보다 아직 공부해야 할 부분이 많다는 것이 좀 더 부담으로 다가온 것 같습니다. 각자가 무엇을 공부 할 지에 대해서 이야기를 나누고 공부를 시작하기로 했는데,, 무엇보다 좀 더 많은 내용을 알고자 노력해야겠습니다. 그리고 Unreal Script도 공부해 보면 좋을 것 같네요. - [권순의]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptBaptismByFireKR.html 언리얼 마스터하기: 언리얼스크립트 통과의례]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptClassesKR.html 언리얼 마스터하기: 언리얼스크립트 클래스]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptFunctionsKR.html 언리얼 마스터하기: 언리얼스크립트 함수]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptPreProcessorKR.html 언리얼 마스터하기: 언리얼스크립트 전처리기]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptStatesKR.html 언리얼 마스터하기: 언리얼스크립트 스테이트]
          * [http://udn.epicgames.com/Three/MasteringUnrealScriptDelegatesKR.html 언리얼 마스터하기: 언리얼스크립트 델리게이트]
          * 참고자료: [http://udn.epicgames.com/Three/UnrealScriptGameFlowKR.html 언리얼스크립트 게임 흐름]
          * [http://www.youtube.com/watch?v=izVtTcq_his&feature=related 이걸 해 놓은 사람이 있다니]
          * [http://www.bluespheresforever.com/ ...]
          좀 더 관심있으면 다음 예제도 도움이 될 듯. [http://udn.epicgames.com/Three/DevelopmentKitGemsConcatenateStringsKismetNodeKR.html Concatenate Strings (문자열 연결) 키즈멧 노드 만들기]
          [http://udn.epicgames.com/Three/CollisionTechnicalGuideKR.html 콜리전 테크니컬 가이드]의 내용을 요약.
  • UbuntuLinux . . . . 1 match
         공식 사이트는 역시 기대를 저버리지 않았다. [https://wiki.ubuntu.com/ShareInternetConnection]와
         /etc/init.d/networking restart
         [http://projects.edgewall.com/trac/wiki/TracOnUbuntuBreezer Trac설치하기] 중간에 테스트 하는 부분에서 안 되서 절망했다가 끝
         tracd --port 8000 /var/trac/YourProjectNameHere/
         http://yourdomain:8000/YourProjectNameHere/wiki
         <Directory "/usr/share/trac/htdocs">
         </Directory>
         ScriptAlias /trac/leonardong /usr/share/trac/cgi-bin/trac.cgi
          Require valid-user
         [http://svnbook.red-bean.com/ SVN 책]
         [http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-6-sect-3.1 서버 설정]
         [http://dev.mysql.com/doc/refman/5.0/en/installing-binary.html MySQL binary install]
         [http://dev.mysql.com/doc/refman/5.0/en/automatic-start.html MySQL Start]
         = JAVA, JRE =
         must install jdk or jre
         http://www.troubleshooters.com/linux/prepostpath.htm
         For more information on the usage of update-rc.d
         LAN이 연결된 공용 프린터를 사용하는 경우 HP Jet Direct를 이용하면 손쉽게 프린터를 잡을 수 있다.
         시스템->관리->프린팅->새 프린터->네트워크 프린터->HP Jet Direct
         http://www.xfree86.org/4.6.0/Install3.html#3
  • UnifiedModelingLanguage . . . . 1 match
         #Redirect UML
  • UnitTest . . . . 1 match
         ExtremeProgramming 에서는 TestFirstProgramming 을 한다. TestFirstProgramming 에서는 해당 기능에 대한 테스트 프로그램을 먼저 만들고, 실제 프로그래밍을 한다.
         TestFirstProgramming 을 하게 되면 해당 프로그램을 작성해 나가는 과정이 UnitTest 작성중 남게 된다. 이는 일종의 WhiteBoxTesting 이 된다. 또한, 해당 모듈이 제대로 돌아가는지에 대한 결과도 체크하므로 BlackBoxTesting 의 역할을 한다. 즉, ExtremeProgramming 에서의 UnitTest 는 두가지 테스트의 성격을 같이 포함하고 있다. (Gray Box Testing)
         See Also ["Refactoring/BuildingTestCode"], ["GuiTesting"]
         SoftwareEngineering 에 있어서 UnitTest 는 '단위 모듈에 대한 테스트' 이다. 즉, 해당 기능이 제대로 돌아감을 확인하는 테스트가 UnitTest 이다.
         === Thread ===
         ["ExtremeProgramming"]
  • VacationOfZeroPage . . . . 1 match
         2박3일 정도 교외로 RT를 가면 어떨까요? (see also Seminar:ReadershipTraining ) JuNe이 학부생으로 되돌아 간다면 선배, 후배, 동기들과 컴퓨터 고전을 들고 RT를 할 겁니다.
         === Thread ===
  • WTL . . . . 1 match
         #Redirect WindowsTemplateLibrary
  • WhatToExpectFromDesignPatterns . . . . 1 match
         DesignPatterns provide a common vocabulary for designers to use to communicate, document, and explore design alternatives.
         DesignPatterns are an important piece that's been missing from object-oriented design methods. (primitive techniques, applicability, consequences, implementations ...)
         == A Target for Refactoring ==
         DesignPatterns capture many of the structures that result from refactoring. Using these patterns early in the life of a design prevents later refactorings. But even if you don't see how to apply a pattern until after you've built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactorings.
  • WikiGardening . . . . 1 match
         ''실제 위키의 View 구조를 조성하는 사람들이 드물기 때문에, 기존 게시판에서의 스타일과 똑같은 이용형태가 계속 진행되어버렸다는 생각이 든다. (이 경우 RecentChanges 가 Main View 가 된다.) (조만간 위키 전체에 대한 링크 구조 분석이나 해볼까 궁리중. 예상컨데, 현재의 ZeroWiki 는 Mind Map 스타일에 더 가까운 구조이리라 생각. (개념간 연결성이 적을것이란 뜻. 개인적으로는 볼땐, 처음의 의도한 바와 다르긴 하다.) --1002'' (DeleteMe ["1002"]의 글을 다른 페이지에서 옮겨왔습니다.)
  • WikiNature . . . . 1 match
         The WikiNature is typing in a bunch of book titles and coming back a day later and finding them turned into birds in the Amazon.
         Writing on Wiki is like regular writing, except I get to write so much more than I write, and I get to think thoughts I never thought (like being on a really good Free Software project, where you wake up the next morning to find your bugs fixed and ideas improved).
         It reminds us of minimalist Japanese brushstroke drawings; you provide the few, elegant slashes of ink, and other minds fill in the rest.
         Really, it's not accurate to talk about a WikiNature, we would do better recognizing that Nature itself, is Wiki.
         See http://www.c2.com/cgi/wiki?WikiNature for more.
  • WikiSandPage . . . . 1 match
         [[UserPreferences]]
          => UserPreferences를 불러온 다음 내용 읽기가 불가
          return 0;
         [[RecentChanges(item=10, board)]]
         $res = "응잌";
         echo "부왘부왘".$res;
  • WikiWikiWeb . . . . 1 match
         The [wiki:Wiki:FrontPage first ever wiki site] was founded in 1994 as an automated supplement to the Wiki:PortlandPatternRepository. The site was immediately popular within the pattern community, largely due to the newness of the internet and a good slate of Wiki:InvitedAuthors. The site was, and remains, dedicated to Wiki:PeopleProjectsAndPatterns.
         Wiki:WardCunnigham created the site and the WikiWikiWeb machinery that operates it. He chose wiki-wiki as an alliterative substitute for quick and thereby avoided naming this stuff quick-web. An early page, Wiki:WikiWikiHyperCard, traces wiki ideas back to a Wiki:HyperCard stack he wrote in the late 80's.
          * get to know more about the Wiki:WikiHistory
          * [http://news.mpr.org/programs/futuretense/daily_rafiles/20011220.ram Ward Cunningham Radio Interview]
  • WinCVS . . . . 1 match
          1. 프로그램을 시작하고 첫 화면을 보자. 무심코 지나쳤다면 Ctrl+F1 또는 Admin - Preference 를 보자.
          * Host Address : local이외의 접속방법을 설정하였을때 host의 주소를 넣어준다.
          3. Create - Import module 를 선택한다.
          2. Create - Checkout module를 선택하자.
          1. 고칠수 있는 공간에 나온 파일들은 ReadOnly가 걸려있기 때문에 수정이 불가능하다.
         = Thread =
  • WindowsTemplateLibrary . . . . 1 match
         {{|The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
         In an uncharacteristic move by Microsoft—an outspoken critic of open source software—they made the source code of WTL freely available. Releasing it under the open-source Common Public License, Microsoft posted the source on SourceForge, an Internet open-source repository. The SourceForge version is 7.5.
         Being an unsupported library, WTL has little formal documentation. However, most of the API is a direct mirror of the standard Win32 calls, so the interface is familiar to most Windows programmers.|}}
         = related site =
  • Wiz . . . . 1 match
         #Redirect 창섭
  • WordIndex . . . . 1 match
          * RecentChanges
  • WordPress . . . . 1 match
         = WordPress =
         [http://sapius.dnip.net/wp three leaf clover]
         = Related =
         http://www.wordpress.com/
  • WorldCup/송지원 . . . . 1 match
          || Run ID || User || Problem || Result || Memory || Time || Language || Code Length || Submit Time ||
          if(teams == 0) break;
  • WorldCupNoise/권순의 . . . . 1 match
         ||Language||C++||Result||Accepted||
         === Presentation Error Version ===
         #include <iostream>
          free(scenario);
          return 0;
          int result_1 = 2;
          int result_2 = 3;
          return result_1;
          return result_2;
          temp = result_1 + result_2;
          result_1 = result_2;
          result_2 = temp;
          return result_2;
         #include <iostream>
          free(scenario);
          return 0;
          int result_1 = 2;
          int result_2 = 3;
          return result_1;
          return result_2;
  • XML . . . . 1 match
         #Redirect eXtensibleMarkupLanguage
  • XMLStudy_2002 . . . . 1 match
          *[["XMLStudy_2002/Resource"]]
  • XMLStudy_2002/Encoding . . . . 1 match
          *Unicode와 XML등과 같은 Markup Language 등에 대해 W3C와 Unicode.org 멤버들이 작성한 Technical Report : [http://www.w3.org/TR/1999/WD-unicode-xml-19990928/]
         Shuart Culshaw. "Towards a Truly WorldWide Web. How XML and Unicode are making it easier to publish multilingual
  • XSLT . . . . 1 match
         #Redirect eXtensibleStylesheetLanguageTransformations
  • XpWeek/준비물 . . . . 1 match
          || ExtremeProgrammingExplained || . ||. ||
          || ExtremeProgrammingInstalled || . || (V) ||
          || PlanningExtremeProgramming || . || (V) ||
          || ExtremeProgrammingApplied || . ||. ||
          || ExtremeProgrammingExplored || . ||. ||
          || ReFactoring ||. || (V) ||
          * HowToStudyExtremeProgramming
          * http://c2.com/cgi/wiki?ExtremeProgramming
         == Thread ==
  • Z&D토론/학회명칭토론백업 . . . . 1 match
         ps. 데블스 회원이 이 토론에 전혀 참여하지 않고 바라만 본다면 이건 일방적인 Resource Leak이다. 나 00년때 처럼의 그 쓰라린 뒤통수 맞는 기억을 되살리고 싶지 않다. 참여 해라 좀 (여기서 00,01 이야기 한것입니다. --; 어째 모든글은 거의 선배님 글만) --상민
  • ZPHomePage . . . . 1 match
          * http://cafe.naver.com/rina7982.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=750 - 웹안전색상
         === Thread ===
         [http://mozilla.or.kr MozillaFirefox] 에서도 무리없이 브라우징 할 수 있도록 해주세요. 간단해요. 표준 HTML 만 사용하면 됩니다. - [임인택]
  • ZeroPageServer/BlockingUninvitedGuests . . . . 1 match
         제로페이지 위키의 RecentChanges 를 보면 가끔 쓰레기 페이지가 생성이 되는 경우가 있는데, 매번 수작업으로 페이지를 삭제해야 하는 번거로움이 있다. 이를 서버 또는 위키위키 자체가 막아주는 방법에 대해서 토의해 보는 페이지.
          - [임인택]의 [http://purepond.cafe24.com/ 개인위키]도 ZeroPage 에서와 같은 문제점을 (그것도 더 심하게) 겪었는데 아파치의 보안기능 (.htaccess 파일 이용)을 적용해봐도 결과는 마찬가지였다. 누군가의 장난이거나 검색엔진(+사용자)의 무지에서 오는 문제인것이 확실하였는데. 결국 NoSmoke:노스모크모인모인 의 '''등록한 사용자만 글을 쓸수 있게 하는''' 기능을 이용하여 이 문제를 해결하였다. 여담으로.. 쓰레기 페이지를 손수 지우느라 엄청 고생함...-_-;;
  • ZeroPageServer/set2001 . . . . 1 match
         === Hardware ===
         === Software (2002.8.15일 전 최종 스펙) ===
          * gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
          * Resin 1.2
  • ZeroPage정학회만들기 . . . . 1 match
         = thread =
          * 마소, 프세등의 국내잡지나 IeeeSoftware, CACM 등 외국잡지 등 잡지순례 진행 (사람들의 참여도는 꼭 필수적이진 않음. 관심이 있는 사람도 있겠고 없는 사람도 있겠으니까. 우리가 자료들을 준비하고, 외부에 홍보하는 정도로도 역할은 충분하리라 생각)
          * 이번에 르네상스클럽에서 할 Seminar:ReadershipTraining 와 같은 행사의 과내 행사화. RT와 Open Space Technology 를 조합하는 방법도 가능하리란 생각.
  • ZeroWiki . . . . 1 match
         각각 사람들이 공부하고자 하는 분야가 다양해지고, 사람들이 모든 영역을 다 커버할 수 없다고 할때, 반복되는 질문이 일어나기 쉬운 일반 게시판의 질답란보다 더 의미있는 정보들을 담아낼 것으로 기대한다. ZeroWiki 는 ZeroPage 의 정보 Repository 이다.
          jereneal: 왜 제로위키에 노스모크라는 말이 많나 했더니 그게 한국어 최초 위키에 김창준선배님이 관리자였구나.......
  • ZeroWiki/제안 . . . . 1 match
          * DokuWiki는 저도 직접 써 본 경험이 있습니다. 말씀하신대로 깔끔해서, 개인 위키로 쓰기에는 정말 딱이더군요. 다만, 파일입출력 기반이라 조금은 걱정되는 면이 있어서요. 그리고 문법 문제는...... 답이 없네요....... 이럴 때마다 Wiki Creole이 절실하다는 생각이....... - [황현]
          * 이 제안은 ThreadMode와 DocumentMode에 관한 논의를 포함하고 있습니다. 이 페이지는 애초에 ThreadMode를 목적으로 작성됐고 그렇게 의견이 쌓여왔습니다. 2번 선택지는 ThreadMode의 유지를, 3번 선택지는 ThreadMode를 DocumentMode로 전환하여 정리하는 것을 의미하는 것 같습니다. 1번 선택지는 DocumentMode에 더 적합한 방식이고, 4번 선택지는 경험의 전달이라는 위키의 목적에 따라 고려 대상에 올리기도 어려울 것 같아 제외합니다. 사실 이런 제안과 논의가 나열되는 페이지에서는 결론을 정리하는 것보다는 그 결론을 도출하기 까지의 과정이 중요하다고 생각합니다. 따라서 DocumentMode로의 요약보다는 ThreadMode를 유지하는게 좀더 낫다고 생각하며, 다만 필요하다면 오래된 내용을 하위 페이지로 분류하는 것도 좋다고 생각합니다. - [변형진]
          초기의 지향점이라고 한다면, 일종의 '학회 재산 저장소'랄까. Repository 라고 쓰면 결국 동어반복이 되겠군. 학회가 거의 10년이 지나도, 그때의 한 일들이 제대로 안쌓이는 모습에 대한 불만이랄까. 그러한 점에서 99년도 처음 ZP 서버가 만들어질때, 96,97 형들이 언급했던 것이 'ZP 서버를 학회 지식의 저장소가 되게 하자' 라는 것이였지. 처음에는 게시판 활동이 주업이었고. 그러다가 위키를 알게 되고 난 다음, 처음엔 동문서버에서 좀 돌려보고, 그 다음은 ZP 에서 돌리게 했지. 그리고, 동문서버에서 위키 돌아가는 모양새를 보고, '위키 처음 열릴때의 분위기가 중요하겠구나' 하는 생각에 '스터디 & 프로젝트' 목적을 강조하는 뜻에서 초기에 그렇게 적은것임.
  • [Lovely]boy^_^/Diary . . . . 1 match
         || 2002년 12월 남은날들(12/23 - 12/31) || ["[Lovely]boy^_^/Diary/12Rest"] ||
  • [Lovely]boy^_^/Diary/2-2-1 . . . . 1 match
          * ObjectProgramming Report 나옴.(모자이크 만들어오기, until 9/12), 관련 자료 수집.
  • [Lovely]boy^_^/Diary/2-2-16 . . . . 1 match
          * I borrow the Role Playing Game with DirectX.
          * Let's enumarate. English, Smalltalk, Design Pattern, Accelerated C++, DirectX, etc...
          * I read a novel named the Brain all day. Today's reading amount is about 600 pages. It's not so interesting as much as the price of fame.
          * '''When I am given a motive, I can do the things extreme.'''
          * '''There is no man nicer than a man who has a target, and rushs towards it.'''
          * I heard Jung mong-joon revenged No moo-hyun. I can't believe government men.
          * Today, I'll type DirectX Codes.... but I didn't.--;
          * I read a little Power Reading. Today's reading's principle content is using a regulator(ex) pen, pinger. etc). but this method is what I have used all the time.--; I should read a lot more.
          * I studied ProgrammingPearls chapter 3. When I was reading, I could find familiar book name - the Mythical Man Month, and Code Complete.
          * '''The more general problem may be easier to solve.'''
          * I typed directX codes from NeXe sites, because RolePlaying Games with DirectX that I borrowed some days ago is so difficult for me. Let's study slow and steady...
          * I don't understand accuracy a world, view, projection matrix.--; I should study a lot more.
          * I studied ProgrammingPearls chapter 4,5. Both 4 and 5 are using a binary search. Its content is no bug programm.
          * Damn it! Algorithm score--; why?~~~~~~~~~
          * '''Keeping the code simple is usually the key to correctness.'''
          * I read a Squeak chapter 1,2.
  • callusedHand . . . . 1 match
          * 좋아하는 밴드: NIRVANA, RENAISSANCE, SAVAGE ROSE, SONGS OHIA
          * 파일 매니저 - directory tree(06/05/02 ~ )
          ''DeleteMe) 처음 독서 방법에 대한 책에 대해 찾아봤었을때 읽었었던 책입니다. 당연한 말을 하는 것 같지만, 옳은 말들이기 때문에 당연한 말을 하는 교과서격의 책이라 생각합니다. 범우사꺼 얇은 책이라면 1판 번역일 것이고, 2판 번역과 원서 (How To Read a Book)도 도서관에 있습니다. --석천''
          ''(move to somewhere appropriate plz) 논리학 개론 서적으로는 Irving Copi와 Quine의 서적들(특히 Quine의 책은 대가의 면모를 느끼게 해줍니다), Smullyan의 서적들을 권하고, 논리학에서 특히 전산학과 관련이 깊은 수리논리학 쪽으로는 Mendelson이나 Herbert Enderton의 책을 권합니다. 또, 증명에 관심이 있다면 How to Prove It을 권합니다. 대부분 ["중앙도서관"]에 있습니다. (누가 신청했을까요 :) ) --JuNe''
  • callusedHand/projects/messenger . . . . 1 match
          * ["StringResources"]
  • comein2 . . . . 1 match
          * ExtremeProgramming 관련 UnitTest , Refactoring
         == Thread ==
  • django . . . . 1 match
          PythonHandler django.core.handlers.modpython
          PythonHandler django.core.handlers.modpython
         ADMIN_MEDIA_PREFIX = '/'
          * [http://www.b-list.org/weblog/2006/06/13/how-django-processes-request] : Template 에서의 변수 참조에 대한 설명. 필수!!, 리스트나, 맵, 함수등에 접근하는 방법
          * [django/RetrievingObject]
          * [django/AggregateFunction]
  • django/AggregateFunction . . . . 1 match
         RiskReport.objects.count()
          result= c.values()[0]
          return result
  • django/Example . . . . 1 match
         Upload:Screenshot-SMS_ERD.pdf.png
         [django/RetrievingObject]
         [django/AggregateFunction]
  • eXtensibleMarkupLanguage . . . . 1 match
         The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words XML is a way of describing data and an XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Languages based on XML (for example, Geography Markup Language (GML), RDF/XML, RSS, Atom, MathML, XHTML, SVG, and MusicXML) are defined in a formal way, allowing programs to modify and validate documents in these languages without prior knowledge of their form.
         = Related =
          * [http://php.mirror.camelnetwork.com/manual/kr/ref.xml.php php manual XML]
         = thread =
          * XML은 데이터 표현 방식(data presentation)이기 때문에 문법에 하나라도 어긋나거나 코드셋이 맞지 않는 경우에는 100% 에러를 내뱉는다. HTML을 다루다가 XML을 공부할 경우 이런 점에 당황스럽기도함. (DB 에서 코드셋 잘못 다루면 삽질하는 거랑 비슷함;; -_-)
  • eclipse단축키 . . . . 1 match
          * Windows - Preferences - General - Editors - Text Editors - 80라인 제한 선, 라인 수 보이기
          * References in workspace 참조하고 있는 메소드 보여준다.
  • eclipse디버깅 . . . . 1 match
         == Step Return - F7 ==
  • erunc0/COM . . . . 1 match
         == Thread ==
          * 정말 시간이 없다. 회사에서 하는일도 엄청 쉬운 것들인데 왜이리 시간이 많이 드는지.. 아이러니 하다. chapter1을 어서 정리 해야 하는데, 꽤 괜찮은 내용 같았다. 다시 review하면서 정리해야 하는 시간이 나길. 주말이나 가능 하겠다.
          * 개인적으로 COM 구현할때는 (정확히야 뭐 ActiveX Control) 손수 COM 구현하는데 하는 일들이 많아서 -_-.. (Interface 작성하고 IDL 컴파일해주고, COM Component DLL Register 해주고 그다음 COM Component 잘 돌아가는지 테스트 등등) 거의 Visual Studio 의 위자드로 작성한다는. --a 그리고 COM 을 이해할때에는 OOP 에 대한 좀 바른 이해를 중간에 필요로 할것이라 생각. 디자인 패턴에서의 Factory, FacadePattern 에 대해서도 아마 읽어볼 일이 생기기라 생각.
  • erunc0/PhysicsForGameDevelopment . . . . 1 match
          * Release - http://zp.cse.cau.ac.kr/~erunc0/study/physics/Particle_Test.exe
  • html5/richtext-edit . . . . 1 match
          * collapse(parentNode, offset) : 지정한 요소(parrentNode)안의 지정한 위치(offset)으로 커서를 이동시킨다
         http://cafe.naver.com/webappdev.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=91
  • html5/web-workers . . . . 1 match
          * 공유 워커 생성 : SharedWorker 이용
          var worker1 = new SharedWorker("worker.js", "wk");
          var worker2 = new SharedWorker("worker.js", "wk");
         http://cafe.naver.com/webappdev.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=141&social=1
  • html5practice . . . . 1 match
          * [html5practice/roundRect] : [html5/canvas] 활용 - 이승한
  • iPhone . . . . 1 match
          * [http://blog.naver.com/musicnet?Redirect=Log&logNo=10032895978 iphone환경구축하기]
  • iText . . . . 1 match
          RefactorMe [페이지이름]이 부적절하다고 생각하시는 분은 [페이지이름바꾸기]해 주세요. 프로젝트(라이브러리) 이름을 그대로 사용했습니다.
         import java.io.FileOutputStream;
          PdfWriter.getInstance(document, new FileOutputStream("Hello.pdf"));
  • radiohead4us/Book . . . . 1 match
          || Publisher || Han Kyeo Rei ||
  • radiohead4us/PenpalInfo . . . . 1 match
         Name: Andrea
         Interests/Hobbies: writing letters, reading, music, ...............
         Penpal should be: Either sex but preferably female
         Comments: Hi All! Writing letters is my greatest hobby and i am still looking for some pals around my age. If you´re interested in writing snail mail to me, please send me an e-mail. Thanks! I promise, I will answer all.
         Interests/Hobbies: traveling, music, snowbording
         City/State,Country: Seoul Korea Republic of
         Interests/Hobbies: music, world news
         Comments: Hi~ I'm preety girl.*^^* I'm not speak english well. But i'm want good friend and study english.
  • uCOS-II . . . . 1 match
         ["Chapter II - Real-Time Systems Concepts"] 정직이 번역 중
  • wiz네처음화면 . . . . 1 match
          * renew - 2006. 12. 21
         = Progress =
          * http://blog.empas.com/tobfreeman/13965830 , http://knowhow.interpark.com/shoptalk/qna/qnaContent.do?seq=96903
          * English music - singer : sweet box, toxic recommended by Ah young.
          * [http://www.cbtkorea.or.kr/korean/pages/cbt-registration-k.html Registeration TOEFL]
  • zennith/MemoryHierarchy . . . . 1 match
         === Register ===
         요즈음의 RISC 구조 프로세서에서는, 모든 연산의 연산자들로 레지스터만 허용하므로, 이 제한된 숫자의 레지스터들을 어떻게 관리하느냐가 성능 향상의 주안점이다. 가령, 빈번하게 요구되는 변수는 계속 가지고 있는다던지, 아니면 한동안 쓰임이 없는 변수를 레지스터에서 버린다던지 하는 일이다. 물론, 이 일(optimal register allocation)은 컴파일러에서 담당한다.
  • zennith/w2kDefaultProcess . . . . 1 match
         Explorer.exe - 작업관리자에서 종료 가능
         (HKEY_USERS\.DEFAULT\Keyboard Layout\Preload키에서 뽑아낸다)을 구동한다.
         작업관리자에서 종료할 수 없는 프로세스들의 대부분은 Resource Kit 유틸인 Kill.exe
         를 이용하여 종료가 가능하지만 system failure나 기타 다른 부작용을 야기할 수 있
  • 가독성 . . . . 1 match
         가독성은 개인취향이라고 생각합니다. 제 경우는 C, C++에서 { 를 내리지 않는 경우보단 내리는 경우가 더 보기 편하고, JavaLanguage 에서는 내리지 않는게 더 편하답니다. 애초에 CodingConventions 이라는 것이 존재하는 것도 통일된 코딩규칙을 따르지 않고 개인취향의 코드를 만들어내다 보면 전체적으로 코드의 융통성이 결여되고 가독성또한 전체적으로 떨어지는 문제를 미연에 방지하기 위함이라고 생각합니다. 특히나 ExtremeProgramming 의 경우처럼 CollectiveOwnership 을 중요한 프랙티스 중의 하나로 규정한 방법론에서는 CodingConventions 과 같은 공동소유의 산출물에 대한 규칙이 더윽 중요하다고 생각됩니다. 요는, { 를 내리느냐 내리지 않느냐가 가독성이 높냐 낮냐를 결정짓는 것이 아니고 가독성이라는 하나의 평가요소의 가치는 개인에 따라 달라질 수 있다는 것입니다. - 임인택
         This is a short document describing the preferred coding style for the linux kernel. Coding style is very personal, and I won't force my views on anybody, but this is what goes for anything that I have to be able to maintain, and I'd prefer it for most other things too. Please at least consider the points made here.
         전에 여러 회사의 팀들 분들과 이야기를 하면 사람들마다 얼마나 취향차들이 다른가에 대해서 느끼는데, 한편으로는 그냥 개인의 취향차로만 보기에는 그 분들의 작업 환경에 따라 차이가 있는 듯 합니다. 일례로, ["Refactoring"] 개념이 개발자들에게 퍼진 이후 메소드는 가능한 한 짧고 간결하며 한가지 기능만을 하는게 가독성과 모듈디자인상 좋다고 이야기합니다. 근데, 리눅스나 VI 에서 작업하시는 분들은 '너무 메소드 길이가 짧아도 안좋다.' 라던지 '리눅스의 xx 코드 본 적 있냐? 한페이지에 주욱 나오는게 정말 읽기가 좋다.' 'OO 디자인이 좋다고 하는데, 코드 분석하려면 이 화일 저 화일 돌아다니고 메소드들을 이리저리 돌아다녀야 하고 별로 안좋은거 같다' 라고 말씀하시는 분들도 있습니다.
  • 강의실홍보 . . . . 1 match
          * Reort 제출과 수업 전의 부산함 때문에, 역효과가 날수 있다.
  • 게임프로그래밍 . . . . 1 match
          * [http://www.libsdl.org/release/SDL-devel-1.2.14-VC8.zip libSDL_dev]
          SDL_Surface *pScreen;
          pScreen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
          SDL_FillRect(pScreen,&pScreen->clip_rect,SDL_MapRGB(pScreen->format,0,0,255));
          SDL_Flip(pScreen);
  • 구글을지탱하는기술 . . . . 1 match
          * [Map&Reduce] : 구글 분산 데이터 처리
  • 그래픽스세미나/2주차 . . . . 1 match
         || 강인수 || Upload:GL_Report2_Insu_MFC.zip 경태형꺼랑 비슷한거..||
         === Thread ===
  • 김수경/StickyWall . . . . 1 match
         컨셉은 별 거 없다. [http://trello.com Trello] 짭.
          * [https://github.com/Linflus/StickyWall Repository]
  • 나를만든책장/서지혜 . . . . 1 match
          * 똑바로 일해라(ReWork)
  • 나를만든책장관리시스템/DBSchema . . . . 1 match
         || cContributor || int(11) || FK references bm_tblMember(mID) on delete no action on update cascade ||
         || cBook || unsigned int || FK references bm_tblBook(bID) on delete no action on update cascade ||
         |||||| '''bm_tblRental''' ||
         || rUser || int(11) || FK refereneces bm_tblMember(mID) on delete no action on update cascade ||
         || rBook || unsigned int || FK refereneces bm_tblBook(bID) on delete no action on update cascade ||
         || rDelay || tinyint || FK refereneces bm_tblDelay(dID) ||
         || rApplication || tinyint || FK refereneces bm_tblApplication(aID) ||
         || mID || int(11) || PK, FK references zb_member_list(member_srl) on delete no action on update cascade ||
         || mAdmin || tinyint || FK refereneces bm_tblAdmin(adID) ||
  • 노스모크모인모인 . . . . 1 match
          * 조만간 Seminar:RenaissanceClub 사람들이 노스모크모인모인 업그레이드를 할 계획입니다. 그때 맞춰서 다시 업그레이드 할 예정임.~ --["1002"]
  • 논문번역/2012년스터디 . . . . 1 match
          * Experiments in Unconstrained Offline Handwritten Text Recognition
          * by Markus Wienecke, Gernot A. Fink, Gerhard Sagerer
  • 논문번역/2012년스터디/서민관 . . . . 1 match
         이 시스템은 인식 모듈이 전체 텍스트 라인을 읽어서 처리하는 분할이 없는 접근 방법(segmentation-free approach)이 특징이다.
         특히 적은 양의 어휘를 이용하는 분리된 단어를 인식하는 시스템이 우편번호나 legal amount reading에 사용되었고, 높은 인식률을 기록하였다. 그래서 처리 속도나 인식의 정확도를 높일 여지가 없었다 [2, 8].
         이 시스템들은 주로 특징 추출(feature extract) 타입이나 인식 단계 전 또는 후에 텍스트 라인을 분리하거나 하는 점에서 차이가 있다.
         [1, 18]과 [15]에 HMMs 방법을 사용하는 텍스트 분리에 기반을 둔 방법과 recurrent neural network와 HMMs를 혼합한 방법의 각 예시가 있다.
         이른 단계에서 텍스트 라인을 분리하는 것에 의한 문제점을 회피하기 위해서, [9]에서는 전체 텍스트 라인을 인식 모듈에 입력하는 무분할(segmentation-free) 방법도 소개되어 있다.
         반면에 수직 위치와 일그러짐은 [15]에 나온 것과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 추정 방법을 이용해서 교정하였다. 일그러진 각도의 계산은 각의 방향을 기반으로 하였다.
         필기의 크기를 정규화하기 위해서 우리는 각 필기 라인의 지역적인 극값(local extrema)을 세고 이 값을 라인의 넓이와 비교하였다.
         선형 변환과 특징 공간의 차원을 줄이는 방법을 적용하여 원형 특징 표현(........ original feature representation)을 최적화하였다.
         HMMs의 일반적인 구성을 위해 우리는 512개의 Gaussian mixtures with diagonal covariance matrices를 담고 있는 공유 codebook과 반-연속적인 시스템들을 이용하였다.
         Allograph는 특정 문자의 다른 샘플(realization)과 같은 문자의 하위 항목을 나타낸다.
         어휘 제한이 없는(lexicon-free ....) 단어 인식과 어휘에 기반한 단어 인식의 결과는 table 2에 나타나 있다.
         이 결과들은 우리가 찾아낸 같은 데이터베이스를 쓰는 결과(literature ......)와 비교했을 때 쓸만하다. 훈련용과 테스트용 셋의 크기가 다르기 때문에 비교하기는 어렵지만.
         이 작업은 German Research Foundation(DFG)의 프로젝트 Fi799/1에서 원조를 받았다.
  • 달라이라마와도올의만남 . . . . 1 match
          * Review :
  • 대학원준비 . . . . 1 match
          * [포항공대전산대학원ReadigList]
  • 데블스캠프2002/진행상황 . . . . 1 match
         강사/진행자들의 후기 페이지입니다. 이 또한 ["ThreeFs"] 를 생각하기 바랍니다. 오늘의 글들이 다음날, 또는 내년에 쓰일것임을 생각하시길. 그날 자신이 했던 일들 (또는 다른 사람이 했던 일들)을 확인하고, 그에 대해서 무엇이 잘되었는지, 왜 잘되었는지, 무엇이 잘 안되었는지, 왜 안되었는지를 확인하고, 앞으로의 대안을 생각해보도록 작성합시다.
          * OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
          * StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
          * Python 기초 + 객체 가지고 놀기 실습 - Gateway 에서 Zealot, Dragoon 을 만들어보는 예제를 Python Interpreter 에서 입력해보았다.
          * '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
         다른 하나는, 요구사항이 어떻게 제시되느냐가 산출물로서의 프로그램에 큰 영향을 끼친다는 점이다. 요구사항이 어떤 순서로 제시되느냐, 심지어는 어떤 시제로 제시되느냐가 프로그램에 큰 영향을 끼친다. 심리학에서 흥미로운 결과를 찾아냈다. "내일은 한국과 브라질의 경기날입니다. 결과가 어떻게 될까요?"라는 질문과, "어제는 한국과 브라질의 경기가 있었습니다. 결과가 어땠나요?"라는 질문에 대해 사람들의 대답은 큰 차이가 있었다. 후자 경우가 훨씬 더 풍부하고, 자세하며, 구체적인 정보를 끌어냈다. 이 사실은 요구사항에도 적용이 되어서, 요구사항의 내용을 "미래 완료형"이나 "과거형"으로 표현하는 방법(Wiki:FuturePerfectThinking )도 생겼다. "This system will provide a friendly user interface"보다, "This system will have provided a friendly user interface"가 낫다는 이야기다. 어찌되었건, 우리는 요구사항이 표현된 "글" 자체에 종속되고, 많은 영향을 받는다.
          * 준비 많이 한건 세미나 자료물 나누어준것만 봐도 이해한다. 본래의 위키페이지에선 각 Resource 별 이미지들까지 캡쳐했으니. ^^ 단, 아쉬운 점이라면
          * ["MagicSquare"]
  • 데블스캠프2003/첫째날 . . . . 1 match
         Recursive call Problem 120분
         [MagicSquare/인수]
  • 데블스캠프2005/Python . . . . 1 match
         [ReverseAndAdd]
         divmod(x, y) returns (int(x/y), x % y)
         >>> L.reverse() 순서를 바꾼다
  • 데블스캠프2005/RUR-PLE/Harvest/Refactoring . . . . 1 match
         = [데블스캠프2005/RUR-PLE]/Harvest/[Refactoring] =
         repeat(move_and_pick,6)
         repeat(move_and_pick,5)
         repeat(move_and_pick,5)
         repeat(move_and_pick,4)
         repeat(move_and_pick,4)
         repeat(move_and_pick,3)
         repeat(move_and_pick,3)
         repeat(move_and_pick,2)
         repeat(move_and_pick,2)
         repeat(move_and_pick,1)
         repeat(move_and_pick,1)
          repeat(turn_left, 3)
          repeat(turn_left,3)
         repeat(harvest,3)
          repeat(turn_left, 3)
          repeat(pickup, 5)
          repeat(pickup, 5)
          repeat(eat,5)
          repeat(eat,5)
  • 데블스캠프2005/RUR-PLE/Harvest/이승한 . . . . 1 match
         [데블스캠프2005/RUR-PLE/Harvest/Refactoring]
          repeat(turn_left,3)
  • 데블스캠프2005/RUR-PLE/Newspaper/Refactoring . . . . 1 match
         = 데블스캠프2005/RUR-PLE/Newspaper/Refactoring =
          repeat(turn_left, 3)
         repeat(floor_up,4)
         repeat(floor_down, 4)
          repeat(turn_left, 3)
         repeat(upAndGo, 4)
         repeat(goAndDown, 3)
         repeat(move_up, 4)
         repeat(move_down, 3)
  • 데블스캠프2006/SVN . . . . 1 match
         2. Create folder and Checkout your own repository (only check out the top folder option)
         3. Create visual studio project in that folder.
          * revert
          * Repo-brower
  • 데블스캠프2010/회의록 . . . . 1 match
         == Reverse Engineering (강사 : [이병윤]) ==
  • 데블스캠프2011 . . . . 1 match
          * [https://docs.google.com/spreadsheet/ccc?key=0AtizJ9JvxbR6dGNzZDhOYTNMcW0tNll5dWlPdFF2Z0E&usp=sharing 타임테이블링크]
          || 4 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [김동준] || [:데블스캠프2011/둘째날/Cracking Cracking - 창과 방패] || [김준석] || [:데블스캠프2011/셋째날/RUR-PLE RUR-PLE] || [이승한] || [:데블스캠프2011/넷째날/ARE Android Reverse Engineering] || [이정직] || [:데블스캠프2011/다섯째날/Lua Lua] || 11 ||
          * '''후기 쓸 때 반드시 참고하세요 : [ThreeFs]'''
  • 데블스캠프2011/넷째날/Android/송지원 . . . . 1 match
          /** Called when the activity is first created. */
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          imageView1.setImageResource(R.drawable.images);
          return true;
          return false;
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_width="fill_parent"
          android:layout_width="fill_parent"
          android:layout_width="fill_parent"
  • 데블스캠프2011/넷째날/Git/권순의 . . . . 1 match
         #include <iostream>
         #include "rei.h"
         } cmds[] = {{"rei", rei}};
          return 0;
          return 0; // no command
          return i;
          return cmds[i].cmd;
          return testCmd;
         === rei.cpp ===
         #include "rei.h"
         #include <fstream>
         int rei(int argc, char (*argv)[ARG_SIZE]){
          ifstream f("rei.txt");
          return 0;
         === rei.txt ===
         Lovely Ayanami Rei ASCII Image.......................
  • 데블스캠프2011/둘째날/후기 . . . . 1 match
         실제 Real World 에서 어떤 방식으로 프로젝트가 진행되고 (물론 Base이긴 하지만) 이것이 어떻게 작동하게 하는지, 또한 작동중 얼마나 많은 노하우가 들어가는지
  • 동문서버위키 . . . . 1 match
         http://dongmun.cse.cau.ac.kr/phpwiki/index.php?RecentChanges
         동문서버위키가 현 상황에서 제로페이지의 위키나 다른 성공적 위키 사이트에 비해 상대적으로 사용이 저조하고 NoSmok:DegreeOfWikiness 가 낮고 무엇보다도 사람들이 해당 위키를 통해 얻는 "삶 속에서의 가치"(혹은 효용)가 없어서 한마디로 실패한 커뮤니티 사이트가 된 이유는 무엇일까.
  • 레밍딜레마 . . . . 1 match
          * Review :
  • 로보코드/베이비 . . . . 1 match
         Upload:baby.Real_1.0.jar
  • 리눅스연습 . . . . 1 match
         [(zeropage)Linux/RegularExpression]
         egrep
         [http://www.smilezone.info/ 리눅스 및 VMware]
  • 리팩토링 . . . . 1 match
         #redirect Refactoring
  • 마방진 . . . . 1 match
         #Redirect MagicSquare
  • 만년달력/인수 . . . . 1 match
          return DAYS_PER_MONTH[month - 1];
          int ret[] = new int[42];
          ret[i] = i - start + 1;
          return ret;
          int ret = 0;
          if( isLeapYear(i) ) ++ret;
          return ret;
          int ret = year + getNumOfLeapYears();
          ret += DAYS_PER_MONTH[i];
          return ret % 7;
          return isLeapYear(this.year);
          return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
          int ret[] = new int[42];
          ret[i] = i - start + 1;
          return ret;
          int real[] = calendar.getCalendar();
          assertEquals( expected[i], real[i] );
          JFrame parent;
          JFrame parent;
          setResizable(false);
  • 몸짱프로젝트 . . . . 1 match
          DataStructure를 배우면서 나오는 알고리즘을 구현해보자는 취지로 만든 프로젝트페이지.
         SeeAlso [HowToStudyDataStructureAndAlgorithms] [DataStructure] [http://internet512.chonbuk.ac.kr/datastructure/data/ds1.htm 자료구조 정리]
         [몸짱프로젝트/CrossReference]
         [몸짱프로젝트/BinarySearchTree]
         [몸짱프로젝트/MinimalCostSpanningTree]
         || prefix Infix postfix || [몸짱프로젝트/InfixToPostfix], [몸짱프로젝트/InfixToPrefix] ||
  • 몸짱프로젝트/DisplayPumutation . . . . 1 match
          * Recursive Function Call 사용
         #include <iostream.h>
  • 몸짱프로젝트/HanoiProblem . . . . 1 match
          * Recusive Function Call 사용
         #include <iostream.h>
  • 문서구조조정 . . . . 1 match
         위키는 ["DocumentMode"] 를 지향한다. 해당 페이지의 ["ThreadMode"]의 토론이 길어지거나, 이미 그 토론의 역할이 끝났을 경우, 페이지가 너무 길어진 경우, 페이지하나에 여러가지 주제들이 길게 늘여져있는 경우에는 문서구조조정이 필요한 때이다.
         새로 페이지를 만들어주거나, 기존의 스레드 토론에서의 의견, 주장 등의 글들을 요약 & 정리 해줌으로서 해당 주제를 중심으로 페이지의 내용이 그 주제를 제대로 담도록 해준다. 이는 프로그램 기법에서 일종의 ["Refactoring"] 과 비슷한 원리이다.
  • 문서구조조정토론 . . . . 1 match
         ["neocoin"]:말씀하시는 문서 조정은 문서 조정은 문서 작성자가 손대지 말아야 한다라는걸 밑바탕에 깔고 말씀 하시는것 같습니다. 문서 조정자는 특별히 문서 조정을 도맡는 사람이 아니고, 한명이 하는 것이 아니라, 다수가 접근해야 한다는 생각입니다. "다같이" 문서 조정을 해야 된다는 것이지요. 문서 조정을 한사람의 도맡고 이후 문서 작성자는 해당 문서에서 자기가 쓴 부분만의 잘못된 의미 전달만을 고친다라는 의미가 아닌, 문서 조정 역시 같이해서 완전에 가까운 문서 조정을 이끌어야 한다는 생각입니다. 즉, 문서 구조 조정이후 잘못된 문서 조정에서 주제에 따른 타인의 글을 잘못 배치했다면, 해당 글쓴이가 다시 그 배치를 바꿀수 있고, 그런 작업의 공동화로, 해당 토론의 주제를 문서 조정자와 작성자간에 상호 이해와 생각의 공유에 일조 하는것 이지요.[[BR]] 논의의 시발점이 된 문서의 경우 상당히 이른 시점에서 문서 구조조정을 시도한 감이 있습니다. 해당 토론이 최대한 빨리 결론을 지어야 다음 일이 진행할수 있을꺼라고 생각했고, thread상에서 더 커다랗게 생각의 묶음이 만들어 지기 전에 묶어서 이런 상황이 발생한듯 합니다. 그렇다면 해당 작성자가 다시 문서 구조 조정을 해서 자신의 주제를 소분류 해야 한다는 것이지요. 아 그리고 현재 문서 구조조정 역시 마지막에 편집분은 원본을 그대로 남겨 놓은 거였는데, 그것이 또 한번 누가 바꾸어 놓았데요. 역시 기본 페이지를 그냥 남겨 두는 것이 좋은것 같네요.(현재 남겨져 있기는 합니다.) --상민
         그리고 이건 논제와 약간 다른데, 성급하게 'Document' 를 추구할 필요는 없다고 봅니다. Thread 가 충분히 길어지고, 어느정도 인정되는 부분들에 대해서 'Document' 화를 해야겠죠. (꼭 'Document' 라고 표현하지 않아도 됩니다. 오히려 의미가 더 애매모호합니다. '제안된 안건' 식으로 구체화해주는 것이 좋을 것 같습니다.) --석천
         해당 공동체에 문서구조조정 문화가 충분히 형성되지 않은 상황에서는, NoSmok:ReallyGoodEditor 가 필요합니다. 자신이 쓴 글을 누군가가 문서구조조정을 한 걸 보고는 자신의 글이 더욱 나아졌다고 생각하도록 만들어야 합니다. 간단한 방법으로는 단락구분을 해주고, 중간 중간 굵은글씨체로 제목을 써주고, 항목의 나열은 총알(bullet)을 달아주는 등 방법이 있겠죠. 즉, 원저자의 의도를 바꾸지 않고, 그 의도가 더 잘 드러나도록 -- 따라서, 원저자가 문서구조조정된 자신의 글을 보고 만족할만큼 -- 편집해 주는 것이죠. 이게 잘 되고 어느 정도 공유되는 문화/관습/패턴이 생기기 시작하면, 글의 앞머리나 끝에 요약문을 달아주는 등 점차 적극적인 문서구조조정을 시도해 나갈 수 있겠죠.
  • 문자반대출력/변형진 . . . . 1 match
         PHP에서는 strrev()라는 문자열 처리 기본 함수를 제공하지만, 현재 버전에서의 PHP는 기본 함수로는 Multibyte String을 지원하지 못한다.
         preg_split()는 문자열 처리 능력이 탁월한 언어인 Perl에서 사용하는 Perl 호환 정규 표현식(Regular Expressions)을 차용하여 문자열을 분리하여 배열에 담는 함수.
         $fp = fopen("result.txt", "w");
         fputs($fp, join("", array_reverse(preg_split("//u", join("", @file("source.txt"))))));
  • 문제풀이/1회 . . . . 1 match
          ref와 같이 input은 eval 을 받는거니까. 가능하게 되는 것. 그래서 이게 가능해집니다. --아무개
         Equivalent to eval(raw_input(prompt)). Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
         If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.
          ==== Using Recursion ====
          return myproc(count-1, val, val)
          return myproc(count-1, max(mx, val),min(mn,val))
          return max(mx,val),min(mn,val)
          return mx,mn
          ===== Using List Comprehension =====
          이런 경우를 개선하기 위해서 map 함수가 있는것입니다. 이를 Haskell에서 차용해와 문법에 내장시키고 있는 것이 List Comprehension 이고 차후 [http://www.python.org/peps/pep-0289.html Genrator Expression]으로 확장될 예정입니다. 그리고 print 와 ,혼용은 그리 추천하지 않습니다. print를 여러번 호출하는것과 동일한 효과라서, 좋은 컴퓨터에서도 눈에 뜨일만큼 처리 속도가 늦습니다. --NeoCoin
  • 문제풀이게시판 . . . . 1 match
         문제풀이에 어려움을 느끼는 사람과 직접 PairProgramming을 해준다. 도우미는 "문제풀이도우미시장"이라는 위키 페이지를 유지 관리하면서 요청이 들어오면 가능한 한 빨리 그 사람과 Xper:RemotePairProgramming 혹은 실제 PP를 해서 도움을 준다. 문제를 풀 직접적 지식을 전달하는 것보다 어떤 문제건 풀 수 있는 효과적/효율적 과정을 경험케 해주는 것이 우선이라는 점을 명심한다.
         see also HowToStudyDataStructureAndAlgorithms
         || 02 || 윤참솔 || 게시판 제작, lecture 관리(물론 스스로도 공부해야될듯 -_-) ||
         == Thread ==
          음... 해커즈랩에 있는 lecture 랑 비슷한 의미가 될꺼 같네요... 조금은 비슷할꺼에요^^;
  • 박범용 . . . . 1 match
         = Curse ware (04) 박범용 (뻠~) =
          === 5 월 공연 Dimebag Darrell 추모식 ===
          === Further Reading 가입하기 ===
  • 반복문자열/임다찬 . . . . 1 match
          return 0;
         [Refactoring]가운데는 임시 변수를 없애는 내용이 나옵니다. 임시 변수는 언제 있으면 좋을까요?
  • 방울뱀스터디 . . . . 1 match
          * [ExtremeProgramming]의 몇가지를 실천할 것입니다. [PairProgramming], [Refactoring]...
         [방울뱀스터디/Thread] - 재화
         foreground = PhotoImage(file='wall2.gif')
         canvas.create_image(0, 0, image=background, anchor=NW)
         canvas.create_text(350, 265, text='ball.pyn' '¸¸???? eeeeh')
         canvas.create_polygon(100, 100, 20, 5, 50, 16, 300, 300, fill='orange')
  • 방울뱀스터디/GUI . . . . 1 match
         before=button1 # 현재 pack하려는 객체를 button1바로앞에 만들어 준다.
         button = Button(frame, text="Push Button", fg="red", command=frame.quit)
          w.configure(text='Variable is Set')
          w.configure(text='Variable is Reset')
         textArea = Text(frame, width=80, height=20)
         textArea.pack()
         textArea.insert(END, "Hello")
         textArea.insert(INSERT, "world")
         textArea.insert(1.0, "!!!!!")
         button = Button(textArea, text="Click")
         textArea.window_create(INSERT, window=button)
         window_create대신에 image_create를 이용하여 단추를 문서 안에 추가시킬수도 있음.
         textArea.deletet(1.0, END) # 텍스트 전체 삭제
         textArea.deletet(INSERT) # 현재 문자 삭제
         textArea.deletet(button) # 단추 삭제
         textArea.config(state=DISABLED)
         index = textArea.index(INSERT)
  • 불의화법 . . . . 1 match
          * Title : 불의 화법(In the line of fire)
         == Review ==
  • 비행기게임 . . . . 1 match
          암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 ["Refactoring"] 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --["1002"]
         개인적으로 '형은 뭐 먼저 했어요?' 라고 질문한다라면, '나는 DirectX 7.0 의 Space donut 소스 분석한뒤 만들었지만, 꼭 DX를 볼 필요는 없다' 라고 말해주고 싶군.
  • 사람들이모임에나오지않는다 . . . . 1 match
         "Reform the environment, stop trying to reform the people. They will reform themselves if the environment is right." --NoSmok:BuckminsterFuller
  • 사랑방 . . . . 1 match
         purely functional language - Haskell 로 구현한 quick sort algorithm..
         regular expression으로 다음이 표현가능한지.
         negative LA assertion을 쓰면 간단합니다. {{{~cpp &(?!#\d{1,3};)}}} RE를 제대로 사용하려면 ''Mastering Regular Expressions, 2Ed ISBN:0596002890''를 공부하시길. --JuNe
  • 상협/Diary/7월 . . . . 1 match
          * Designing Object-Oriented Software 이책이랑 Refactoring 책 빌려야징..
  • 상협/Diary/8월 . . . . 1 match
          * Designing Object-Oriented Software 이책 다보기 Failure (집에 내려가서 해야징.)
          * 많이도 말고, 일주일에 책 1권씩만 읽자 ㅠㅜ Failure
          * Refactoring책 대충 한번 흝어 보기 Failure (집에 내려가서 해야징.. -_-;;)
  • 새싹C스터디2005 . . . . 1 match
         신입생 C 과정 중에 함수를 잘 다룰 수 있게 해주세요. Refactoring 세미나시 함수를 아는 전제하에 할 것입니다. --재동
  • 새싹교실/2011/Pixar . . . . 1 match
          * Programming in eXperience and Research
          * FiveFs : Facts(사실), Feelings(느낌), Findings(알게된 점), Future Action Plan(앞으로의 계획), Feedback(피드백)
  • 새싹교실/2011/學高/1회차 . . . . 1 match
          * Memory address, binary bits
          * Source file, Resource file, Header file
         return 0;
          * return 0; : 마지막으로 출력할 값이 0이다
  • 새싹교실/2011/데미안반 . . . . 1 match
          return 0;
          ||컴공 core||자료구조||알고리즘|| ||
          * redirection
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0;
          return 0; //이것도 오류 아닌거 같은데 오류가 나네요 (수업시간때 잘못된것좀 지적해 주세요)
          return 0; // 이것도 오류가;;
          return 0;
          return 0; //이게 왜 오류가 뜨는지 알 수 없네요 ;; 그리고 main() 괄호 안에 void 넣든 안넣든
          return 0; //아 이것도 오류가 안나야 되는데 오류가 나네요 음 근본적인 무언가가 틀린거 같아요.
          return 0;
          return 0;
          return 0;
  • 새싹교실/2011/무전취식/레벨5 . . . . 1 match
          * Reverse Word를 해보았습니다.
          * 함수는 input과, 내부 동작, ouput으로 이루어져있습니다. 함수의 return 타입과 return은 꼭 맞추어야합니다.
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
  • 새싹교실/2011/무전취식/레벨7 . . . . 1 match
         == Ice Breaking ==
         ICE Breaking
         김준석 : 지난주부터 체육대회 준비를 했음. 경영대 체육대회 준비를함. 300명이야. 3반 반장 3명. 240만원 걷어서 통장 넣어놓음. 불안함. 체육대회 준비가 좀 힘들었음. 그리고 회비 걷는건 너무 힘듬. 그리고 토요일날 라인댄스 배우고 있음. 신남. 그리고 프로젝트 3개랑 발표가 1개 있었음. 3개는 무난하게 Mile Stone을 넘어갔다. 발표는 신난다. prezi라는 툴을 배웠음. 지난주도 신났다. 그리고 부처님 오신날 전날 인사동을 갓는데 대로를 다 치워놓고 동국대 사람들이랑 불교 연합에서 외국인들도 많이 나오고 행사를 하는걸 즐겁게 봄.
          * Call-By-Reference : 어떤 값을 부를때 C에서는 주소값을 복사하여 부른 개체에게 주소값을 넘겨받아 주소값을 참조하는 기술.
          return 0;
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
  • 새싹교실/2011/무전취식/레벨8 . . . . 1 match
          * Call-By-Reference
         == Ice Breaking ==
         김준석 : 이번주금요일에 IFA 에 참여를 합니다. Ice breaking같은 커뮤니케이션 기술, 회의 진행. 지난주에 체육대회 개최한걸 다사다난하게 끝냈습니다. 스티브 잡스에 관한 발표도 잘했어. 강원석 : 저도 스티브잡스 책봐요 ICon:스티브잡스! 사람들이 평가를 했는데 '교수님보다 잘갈킴' 기분이 좋았음. 어제 ZP 스승의 날 행사를 해줌. 춤은 여전히 잘배우고 있습니다.
          break;
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * Ice Breaking이 날이갈수록 흥미진진한 얘기가 나옵니다. 재밌네. 오늘은 복습을 좀 많이 했죠. 기초가 중요한겁니다 기초가. pointer도 쓰는법은 생각보다 간단하지. 간단한 파일입출력도 해봤고. 정말 정말 잘하고있어. 수업태도도 나아지고있고. 이제 앞으로 나머진 들러리지만 알아두면 좋을 팁이라고 생각합니다. 하지만, 앞에서 배운 많은 개념을 잊어먹은것 보니까 이건 사태의 심각성이 있네 역시 복습하길 잘했어. 그리고 winapi사이트좀 자주가. 거긴 볼것이 많아. 그리고 후기좀 자세히봐=ㅂ= 후기쓸때도 그날 배운것 배껴서라도 올려내고!! - [김준석]
  • 새싹교실/2011/무전취식/레벨9 . . . . 1 match
          * Call-By-Reference
         == Ice Breaking ==
          * 아악~ Ice Breaking이 저장이 안됬어 ㅠㅠ!!!!!
          return 0;
          // put your code here
          // sort in increasing order
          // declare variables here
          if(float_val == -1) break;
          // put your code here
          // put your code here
          return 0;
          // put your code here
          return 0;
          * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
          * 관련 페이지 : ThreeFs, [http://no-smok.net/nsmk/ThreeFs ThreeFs(노스모크)], [http://no-smok.net/nsmk/FiveFs FiveFs(노스모크)]
          * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
          * 후기가 날아가서 갑자기 의욕이 팍... 앞으로는 저장하고 적어야겠습니다. 이런일이. 역대 Ice Breaking중 가장 길었는데!!! 이미 수업 진도는 다 나아가서.. 이제 좌우를 돌아볼차례입니다. 알고리즘도 배우고 함수 쓰임도 배우고 코딩도 손에 익히고. 이번 시간에는 진영이에게 코딩을 맞겼는데 생각보다(?) 정말 잘했습니다. 가르치고 싶은건 이제 생각한 내용을 코드로 바꾸는것입니다. 다음시간에는 그것에 대해 한번 생각해서 진도에 적용시켜봐야겠습니다. 그리고 자료구조를 한번 알려줘야겠어요. 숙제는 잘들 해가죠? - [김준석]
          * 일등이다 야홍호오호오홍호오호옿 ice breaking이 저장되지않았다니... 슬픕니다ㅜ_ㅜ제꺼가 제일길었는데... 숙제 다시 풀어보다가 생각나서 후기쓰려고 들어왔는데 일등이네요 하핫 오늘은 축젠데 노는건 내일부터 해야겠네요ㅠ_ㅠ 지지난 시간 복습을 했습니다. 스택구조에대해서 다시한번 배웠고, 파일입출력을 배웠습니당(사실 복습). 파일은 구조체로 작성되어있는데, 파일이 있는 주소와 파일을 어디까지 읽어왔는지를 기억하는 변수가 포함되어 있다고 배웠어요. 그래서 while문에서 fgets로 읽어온 곳이 null이면 break하라는 if문을 4번거쳐서(파일 내용이 4줄일경우) printf가 4번실행된다는 것을 알았어용.(맞낰ㅋㅋㅋ) 그리고 숙제로 나온 문제를 풀어주셨는데 2번이 어려웠었는데 수..수학때문이었던 것 같네용... 아직까지 dev의 공식을 모르겠어요. 나름 수학열심히했었는데.. 다시해야하나봐요ㅠ_ㅠ 수학이 모든 학문과 연관되어있다니..싫어도 꼭 제대로 공부해야할 것 같습니다ㅜ_ㅜ(그래도 선대는싫어요.)c공부도열씨미하고 수학공부도열씨미할게용 하하하하 후기 길다!! 숙제 도와주셔서 감사합니당♥히히힛 - [이소라]
          * 오옷~~ 소라가 길게 썻어 ㅋㅋ 우와우와.. 정말 레벨 9까지의 후기중에 가장 보람찬 후기군요. Ice Breaking저장 못해서 미안... 흑흑. 오늘은 축제이지만 사실 우리학교는 별로 놓게 없답니다 슬프지만 이게 현실이에요..ㅠ.ㅠ 맨날 술먹고 스타부르고. 정작 학생들이 놀자리가 없다니 이게 뭔가요 =3=!!! 이번 레벨9에서 배운내용에 대해 자세하게 남겨줘서 너무 기쁩니다. 정말. 정말 기쁨. 다음시간에도 파일 입출력을 해보고. 돌아가며 실습에 들어가봐야겠습니다. 수학. 우와 어렵죠. 소라도 수학이 약하지만 언젠가 수학이 필요한날이 올때가 있을거란다. 정말로. 정말로. - [김준석]
          * 전 이번 수업시간때 지나가며 배운게 ICE Breaking 기법중 하나인.. 이름은 모르겠고 어떤 것의 전문가가 되어 질문에 답하기! 였어요 ㅋㅋㅋㅋㅋ 개발자들한테는 정말 저런게 있어야 좀 더 원할한 소통이 되는군, 이라고 ICE Breaking이 나름 중요하다는걸 다시 생각해보게 되었네요. -[김태진]
  • 새싹교실/2012/Dazed&Confused . . . . 1 match
          * 포인터와 구조체, 전역 번수와 지역 변수에 대해 배웠고, 포인터가 어느 곳에서나 자료를 읽을 수 있다고 하는 것과 Call-by-Value, Call-by-Reference에 대해서도 배웠다. 포인터에 대한 개념은 알고 있었지만 깊게는 알지 못했는데 오늘 새싹으로 많은 것을 배울 수 있었다. 그러나 이 모든 것들이 하루만에 끝내려고 하다 보니 너무 부담스러웠다. 조금 더 다양한 프로그래밍 예제에 대한 경험을 했으면 좋겠다. - [김민재]
          * 포인터, 재귀함수, 피보나치 수열을 코딩해 보았다. 피보나치는 하다가 실패했지만 자주 코딩을 해 보면 슬슬 감이 올 것 같다. 재귀함수의 return에 대한 개념이 흐려서 아직 재귀함수를 잘 못 쓰겠다. 연습을 자주 해야겠다. Practice makes Perfect?.. 포인터에 대한 개념이 흐렸는데 어느 정도 자리를.. 개념을 잡은 것 같다. 머리 속에서 코딩이 안 되면 펜으로 수도 코드작성이나 수학적으로 해설을 먼저 작성하는 연습을 해 보아야겠다. 강의에서 좀 더 코딩 연습이나 연습 문제 풀기와 같은 것이 많았으면 좋겠다. 단순히 따라적기만 해서는 잘 이해가 안 되는 것 같다. - [박용진]
  • 새싹교실/2013/록구록구/6회차 . . . . 1 match
          * 함수란 무엇인가 [Re]
         후기 작성 요령 : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
         관련 페이지 : ThreeFs, ThreeFs(노스모크), FiveFs(노스모크)
         Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
  • 새싹배움터05 . . . . 1 match
         || 4_5/2 || [후각발달특별세미나] ([신재동]) || Refactoring에 관한 것 || 냄새를 잘 맡게 게 됨. ||
         || 6_5/23 || 자료구조(DataStructure) || 자료구조 || 주로 1학년을 대상으로 함. 2학년이 들어도 좋을 듯. 프리젠테이션을 할 예정이니 노트북 준비바람. [[BR]] Upload:DataStructure.7z ||
          C, 발표잘하는법, PPT제작 기법, [Python], [PHP], [ExtremeProgramming], ToyProblems, Linux, Internetworking(TCP/IP), Ghost(demonstration), OS(abstraction), OS+Windows, Embedded System, 다양한 언어들(Scheme, Haskell, Ruby, ...), 보안(본안의 기본과 기초, 인터넷 뱅킹의 인증서에 대해..), C언어 포인터 특강(?), 정보검색(검색 엔진의 원리와 구현), 컴퓨터 구조(컴퓨터는 도대체 어떻게 일을 하는가), 자바 가상머신 소스 분석
          [PythonLanguage], [PHP] (WebProgramming), [ExtremeProgramming] (XP를 적용시켜 코드가 아닌 다른 무언가를 만들어 보자 -_-a ), Ghost 사용법, 발표잘하는법, PPT제작비법, OS개발
          음 어떤게 좋을까요?? 많아 보였는데 실제로 하려고 생각하면 몇가지 없기도 하네요. 가능한 주제를 먼저 골라보면... [Python], [ExtremeProgramming] 이 대표적인데... - [톱아보다]
  • 서민관 . . . . 1 match
          void (*remove)(char *key);
         Map *createMap();
         void removePairFromMap(char *key);
         KeyValuePair *createPair(char *key, int value) {
          KeyValuePair *ret = (KeyValuePair *)malloc(sizeof(KeyValuePair));
          memset(ret, 0, sizeof(KeyValuePair));
          ret->key = (char *)malloc(sizeof(char) * (strlen(key) + 1));
          strcpy(ret->key, key);
          ret->value = value;
          return ret;
         void removePair(KeyValuePair **pair) {
          free((*pair)->key);
          free(*pair);
          return;
          return NULL;
          KeyValuePair *ret = *head;
          return ret;
          KeyValuePair *ret = (*head)->next;
          while ( ret != NULL ) {
          if ( strcmp(ret->key, key) == 0 ) {
  • 서버재조립토론 . . . . 1 match
         네 충분히 그렇게 생각 하실수 있다고 생각합니다. 현재로서 서버가 하는일이 웹서버및 소스 Repository 로서의 역할이니깐요. 그리고 마지막에 프로젝트 때문에 필요할 경우에 나 새로 맞출 필요가 있다고 하신 말씀도 동감합니다. 현재 한 3주 동안 제로페이지 서버가 제대로 작동하지 않았습니다. 제로페이지 서버를 아주 자주 이용하는 입장에서는 많이 제로페이지 서버에 들어가니깐 서버가 죽어 있어서 여러가지로 불편했고, 현재 제로페이지 서버와 연계해서 돌아가는 위키 포탈을 운영 및 관리하는 입장에서는 치명적이었습니다. 제로페이지 회원들이야 안면이 있으니깐 이해해 주겠거나 좀 불편하고 말겠지 하고 생각하실수도 있지만, 위키 포탈 서비스가 우리 학회에서 제공을 해주는 서비스지만 외부에서 이용하는 사용자도 꽤 있었는데 왠만한 사용자들은 다 빠져 나간듯 하네요.. 그래서 지금은 급한게 다른 서버에서의 DB 지연을 기다리는 시간을 원래 1분에서 3초로 줄여서 그나마 임시 방편으로 수습을 했습니다. 또 프로젝트 진행을 하는데에도 제로페이지 서버가 자주 죽어서 진행을 제대로 할 수가 없었습니다.
  • 성당과시장 . . . . 1 match
         [http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html 성당과시장] 에서 논문 번역문을 읽을 수 있다. 논문 발표후 Eric S. Raymond는 집중 조명을 받았는데, 얼마 있어 지금은 사라진 Netscape 가 자사의 웹 브라우저인 Netscape Navigtor를 [http://mozilla.org 모질라 프로젝트]로 오픈 소스시켜 더 유명해 졌다. RevolutionOS 에서 실제로 Netscape의 경영진은 이 결정중 이 논문을 읽었다고 인터뷰한다.
         국내에서는 최근(2004) 이만용씨가 MS의 초대 NTO인 [http://www.microsoft.com/korea/magazine/200311/focusinterview/fi.asp 김명호 박사의 인터뷰]를 반론하는 [http://zdnet.co.kr/news/column/mylee/article.jsp?id=69285&forum=1 이만용의 Open Mind- MS NTO 김명호 박사에 대한 반론] 컬럼을 개재하여 화제가 되고 있다.
         그외에도 [http://kldp.org/root/gnu/cb/homesteading/homesteading.ko.html 인지권의 개간], [http://kldp.org/root/gnu/cb/hacker-revenge/ 해커들의 반란]이라는 논문도 있다. [http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html 성당과시장], [http://kldp.org/root/gnu/cb/homesteading/homesteading.ko.html 인지권의 개간], [http://kldp.org/root/gnu/cb/magic-cauldron/ 마법의 솥], [http://kldp.org/root/gnu/cb/hacker-revenge/ 해커들의 반란] 순으로 씌였다.
  • 송지원 . . . . 1 match
          * 전/우/주/최/강/밴/드 Curseware Vocal
          * Reload
          * 2007년 : 새터 기획단 및 OT 공연 / Curseware 회장 / MIOS 명예부장 / 회탐지기
          * 2017년 : ~~LG 탈출~~ eBay Korea로 이직. G마켓/옥션/G9하나 했는데 셋 다 아니고 물류 쪽을 하게 되었습니다. Fulfillment팀
  • 스터디/Nand 2 Tetris . . . . 1 match
          * half-adder, full-adder, 16bit-adder, incremental adder, ALU에 대해서 공부하고 구현하였습니다.
          // Put you code here:
          * Incremental
          D - data, A - address, M - memory
          e.g. A - 32일경우, M은 M[32]임. M을 사용할 때, A의 값은 memory의 address
          * A-Instruction : @value // Where value is either a non-negative decimal number or a symbol referring to such number.
          * [http://nand2tetris.org/lectures/PDF/lecture%2004%20machine%20language.pdf PPT 내용]
          Memory (data + instruction) + CPU(ALU + Registers + Control) + Input device & Output device
          지금까지 기본적인 논리 게이트를 (Nand만 사용해서) 구현하고, Combinational Chip 과 Sequential Chip까지 전부 구현했다. 지금까지 구현한 것을 모두 합치면 Computer Architecture가 만들어진다.
          The instruction memory and the data memory are physically separate
          Screen: 512 rows by 256 columns, black and white
          instruction = ROM32K[address]
          k = address
          k = address
          Screen(memory map)
          Screen을 위한 RAM 어딘가를 할당해놓음. 이 공간은 Screen을 위한 공간. CPU는 그 공간을 읽거나 써서 Screen 출력
          자세한 설명은 [http://nand2tetris.org/lectures/PDF/lecture%2005%20computer%20architecture.pdf architecture] 에 나와있다.
  • 예수는신화다 . . . . 1 match
          * Review :
  • 오목/민수민 . . . . 1 match
         protected: // create from serialization only
          DECLARE_DYNCREATE(CSampleView)
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          DECLARE_MESSAGE_MAP()
          { return (CSampleDoc*)m_pDocument; }
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         IMPLEMENT_DYNCREATE(CSampleView, CView)
          ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
          ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
          // TODO: add construction code here
         BOOL CSampleView::PreCreateWindow(CREATESTRUCT& cs)
          // TODO: Modify the Window class or styles here by modifying
          // the CREATESTRUCT cs
          return CView::PreCreateWindow(cs);
          // TODO: add draw code for native data here
          pDC -> Rectangle(100+20*i,100+20*j,500,500);
         BOOL CSampleView::OnPreparePrinting(CPrintInfo* pInfo)
          // default preparation
          return DoPreparePrinting(pInfo);
  • 오목/인수 . . . . 1 match
          return boardState[y][x];
          return x >= 0 && x < width && y >= 0 && y < width;
          return isInBoard(x, y) && getState(x, y) == turn;
          return numOfStone;
          return commonCheck(x, y, wanted, 0, 0, -1, 1);
          return commonCheck(x, y, wanted, -1, 1, 0, 0);
          return commonCheck(x, y, wanted, -1, 1, -1, 1);
          return commonCheck(x, y, wanted, 1, -1, -1, 1);
          return checkHeight(x, y, WANTED) == WANTED ||
          return count == 2;
          return board.getState(x, y);
          return curTurn == BLACK ? "흑" : "백";
          repaint();
          return BLOCKSIZE;
          return BLOCKSIZE * HEIGHT;
          return clicked % BLOCKSIZE >= BLOCKSIZE / 2
          return c / BLOCKSIZE - 1;
          JFrame parent;
          public PutStoneListener(JFrame parent) {
          this.parent = parent;
  • 오목/재선,동일 . . . . 1 match
         protected: // create from serialization only
          DECLARE_DYNCREATE(CSingleView)
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          DECLARE_MESSAGE_MAP()
          { return (CSingleDoc*)m_pDocument; }
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         IMPLEMENT_DYNCREATE(CSingleView, CView)
          ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
          ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
          // TODO: add construction code here
         BOOL CSingleView::PreCreateWindow(CREATESTRUCT& cs)
          // TODO: Modify the Window class or styles here by modifying
          // the CREATESTRUCT cs
          return CView::PreCreateWindow(cs);
          // TODO: add draw code for native data here
          pDC -> Rectangle(5, 5, 1005, 1005);
          break;
          break;
         BOOL CSingleView::OnPreparePrinting(CPrintInfo* pInfo)
  • 오목/진훈,원명 . . . . 1 match
         protected: // create from serialization only
          DECLARE_DYNCREATE(COmokView)
          virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
          virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
          DECLARE_MESSAGE_MAP()
          { return (COmokDoc*)m_pDocument; }
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
         IMPLEMENT_DYNCREATE(COmokView, CView)
          ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
          ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
          // TODO: add construction code here
         BOOL COmokView::PreCreateWindow(CREATESTRUCT& cs)
          // TODO: Modify the Window class or styles here by modifying
          // the CREATESTRUCT cs
          return CView::PreCreateWindow(cs);
          // TODO: add draw code for native data here
          pDC -> Rectangle (0,0,500,500);
         BOOL COmokView::OnPreparePrinting(CPrintInfo* pInfo)
          // default preparation
          return DoPreparePrinting(pInfo);
  • 위시리스트/130511 . . . . 1 match
          * Refactoring (저자: 마틴 파울러) - [권순의]
          * SECURITY 네트워크 패킷 포렌식 : Network Packet Forensic - [김민재]
  • 위키기본css단장 . . . . 1 match
         || Upload:red.css || 2|| 레드 - 깔끔함, 좌우에 공간이 있음 ||
         || Upload:easyread.css || 1|| 읽기 쉬운 것에 주안점, 개인차 존재 ||
         || Upload:sfreaders.css|| 3|| 제목이 크기에 따라 색깔별로 표시 ||
         || Upload:black_mini.png || Upload:hirenn_mini.png || Upload:blue_mini.png ||
         || Upload:black.css || Upload:hirenn.css || Upload:blue.css ||
         || Upload:red_mini.png || Upload:clean_mini.png || Upload:easyread_mini.png ||
         || Upload:red.css || Upload:clean.css || Upload:easyread.css ||
         || Upload:sfreaders_mini.png || Upload:uno_mini.png || Upload:narsil_mini.png ||
         || Upload:sfreaders.css || Upload:uno.css || Upload:narsil.css ||
         || [[HTML(<IMG SRC="http://165.194.17.15/pub/upload/red_fix_1.gif" WIDTH="346" HEIGHT="259" />)]] || . || . ||
         || [http://zeropage.org/~dduk/css/red_fix.css red_fix.css] || . || . ||
          ==== Upload:red.css ====
         || Upload:red_css.png ||
          ==== Upload:easyread.css ====
         || Upload:easyread_css.png ||
          ==== Upload:sfreaders.css ====
         || Upload:sfreaders_css.png||
          ==== [http://zeropage.org/~dduk/css/red_fix.css] ====
         || Upload:red_fix_1.gif ||
         || Upload:red_fix_2.gif ||
  • 이영호/한게임 테트리스 . . . . 1 match
         Reverse Engineering 한 것은 올리지 않는다... 정리하기에 머리가 어지럽다...
  • 이창섭 . . . . 1 match
         #Redirect 창섭
  • 인수/Assignment . . . . 1 match
         || PHP || 9/18 || 9/24 || Report1 || || O ||
         || SE || 9/8 || 9/28 || Architecture, Framework, Pattern, Platform의 차이점 구별, 사례 조사 || 젤 짜증나 -_- || O ||
  • 일반적인사용패턴 . . . . 1 match
         해당 주제에 대해 새로운 위키 페이지를 열어보세요. Edit Text 하신 뒤 [[ "열고싶은주제" ]] 식으로 입력하시면 새 페이지가 열 수 있도록 붉은색의 링크가 생깁니다. 해당 링크를 클릭하신 뒤, 새로 열린 페이지에 Create This Page를 클릭하시고 글을 입력하시면, 그 페이지는 그 다음부터 새로운 위키 페이지가 됩니다. 또 다른 방법으로는, 상단의 'Go' 에 새 페이지 이름을 적어주세요. 'Go' 는 기존에 열린 페이지 이름을 입력하면 바로 가게 되고요. 그렇지 않은 경우는 새 페이지가 열리게 된답니다.
         어느정도 위키에 익숙하시다면 보통 최근 바뀐 글 또는 RecentChanges 를 링크로 걸어놓으십시오. 가장 최근에 수정된 페이지들을 바로 확인하실 수 있습니다.
          * 하단을 보면 LocalSiteMap 이 있습니다. 위키의 링크구조를 Tree 화 하여 보여줍니다.
          * 페이지를 삭제하지 않은 경우 - 한쪽 창에서 상단 오른쪽의 파란아이와 짝짝이 안경(?)을 클릭하시면 해당 페이지의 히스토리와 페이지의 수정내용을 알 수 있습니다. 일단 파란아이를 눌러서 복구하고 싶은 버전을 View 하십시오. 그 다음, URL 입력창에서 action=recall 을 action=raw로 바꾼 후 해당 내용을 다시 복사하시면 됩니다. (이때는 Frame 안에서 작업하지마시고, 위키 페이지를 직접 전체화면으로 하여 해당 URL이 보이는 상태에서 작업하십시오.)
  • 재미있게공부하기 . . . . 1 match
         ''재미있는 것부터 하기''와 비슷하게 특정 부분을 고르고 그 놈을 집중 공략해서 공부하는 방법이다. 이 때 가능하면 여러개의 자료를 총 동원한다. 예를 들어 논리의 진리표를 공부한다면, 논리학 개론서 수십권을 옆에 쌓아놓고 인덱스를 보고 진리표 부분만 찾아읽는다. 설명의 차이를 비교, 관찰하라(부수적으로 좋은 책을 빨리 알아채는 공력이 쌓인다). 대가는 어떤 식으로 설명하는지, 우리나라 번역서는 얼마나 개판인지 등을 살피다 보면 어느새 자신감이 붙고(최소한 진리표에 대해서 만큼은 빠싹해진다) 재미가 생긴다. see also HowToReadIt의 ''같은 주제 읽기''
  • 전문가되기세미나 . . . . 1 match
          * opportunities for repetition and correction fo errors
          * Frequent Delivery
          * Reflective Improvement
          * 서로의 설계에 대한 오랜 논쟁 후에 기분좋게 disagree 할 수 있나?
          * Technical Environment with Automated Tests, Configuration Management, and Frequent Integration
  • 전철에서책읽기 . . . . 1 match
         작년 1월에 지하철을 타며 책읽기를 했는데 한 번쯤 이런 것도 좋을 듯. 나름대로 재미있는 경험. :) Moa:ChangeSituationReading0116 --재동
  • 정규표현식/스터디/문자집합으로찾기/예제 . . . . 1 match
         My..*First..Regular|.Expression.Example1
         [what]+[List]&[is]^[Here]%
  • 정규표현식/스터디/문자하나찾기/예제 . . . . 1 match
         My..*First..Regular|.Expression.Example1
         [what]+[List]&[is]^[Here]%
  • 정모 . . . . 1 match
         == Thread ==
         지난번 [정모]를 관찰하면서, 뭔가가 잘 안된다는 생각이 들어서 NeoCoin 군과 ProblemRestatement 를 약간 적용해보았다. 사람들마다 의견들은 다르겠지만, 참고해보기를.
  • 정모/2002.11.13 . . . . 1 match
         Recoder : xxx
  • 정모/2002.12.30 . . . . 1 match
          || 책 || PowerReading ||
  • 정모/2002.3.28 . . . . 1 match
          * 파이선의 업그레이드를 위해서, zp 서버 업그레이드를(RedHat 7.1 정도 이상으로) 해야 합니다. 일전에 봐라군이 시도하다가 라이브러리 업그레이드에서 막혀서, 일단 잠정 보류라고 합니다. --상민
         PHP, 아파치, java, 파이썬, 모인모인, RESIN, mysql,
  • 정모/2002.9.26 . . . . 1 match
         이런 비형식적인 오프모임도 좋은 것 같다. 오늘은 Seminar:RenaissanceClub 모임 스타일이랑 비슷한데, 꼭 '안건', '의견' 식으로 가지 않아도 좋을 것 같다. 사람들의 최근 관심사가 무엇인지 알고, 서로 자유롭게 의견을 말하거나 물어보는. 개인적으로는 이런 스타일로 계속 가보는 것도 재미있을 듯 싶다. ^^; --["1002"]
  • 정모/2004.5.7 . . . . 1 match
          - RecentChanges
  • 정모/2011.10.12 . . . . 1 match
          * [김수경]학우의 [https://docs.google.com/present/edit?id=0AdizJ9JvxbR6ZGNrY25oMmpfNDZnNzk0eHhkNA&hl=ko 건강상식]
          * [RegularExpression/2011년스터디]
  • 정모/2011.10.5 . . . . 1 match
          * [RegularExpression/2011년스터디]
  • 정모/2011.11.9 . . . . 1 match
          * [RegularExpression/2011년스터디]
  • 정모/2011.4.4/CodeRace/김수경 . . . . 1 match
          * [김수경/LaytonReturns]
  • 정모/2011.9.27 . . . . 1 match
          * Regular Expression 파서 구현(?)
          * 이 주는 정말 공유할 것들이 많은 정모였지요. 전 역시나 Cappuccino에 관심이 많아서 그걸 설명...+_ 사실 옵젝-C를 배울때 최대 약점이 될 수 있는게 그 시장이 죽어버리면 쓸모가 없어진다는건데 브라우저는 그럴일이 없으니 좋죠. 제대로 release되어서 쓸 수 있는 날이 오면 좋겠네요. -[김태진]
  • 정모/2012.3.19 . . . . 1 match
         == Ice breaking ==
          * CommonsMultipartResolver를 써서 이미지 업로드 구현 중.
          * This meeting was so interesting. I was so glad to meet Fabien. From now, I think we should make our wiki documents to be written in English. - [장용운]
  • 정모/2012.7.18 . . . . 1 match
          * [김민재]학우의 DEP(Data Execute Prevention) : 실행 불가능한 메모리 영역에서 프로그램을 실행시키는 것 방지.
          * 안드로이드 도서관 - 학교 도서관의 도서 신청 과정이 무척 불편하다 -> 안드로이드로 책의 바코드를 찍으면 도서관에서 책이 신청 되도록 하는 것이 목표. 현재 바코드 처리 부분을 만들고 있음. [ISBN_Barcode_Image_Recognition]
  • 정모/2013.9.4 . . . . 1 match
         == KGC(korea game conference) ==
          * 클린 코드 : SRP(Single Responsibility Principle), DIP(Dependency Inversion Principle) 방식을 공부하였고 디자인패턴 중 템플릿 메소드에 대해서 공부하였습니다.그리고 스레드에 대해서 공부 하였습니다. trello와 github연동하는 방법이 있습니다.상당히 유용할 것같으므로 관심있으신분들은 조금만 찿아보시면 쉽게 하실수있습니다.
          * trello에서 API를 제공하는군요! - [김민재]
  • 정신병원에서뛰쳐나온디자인 . . . . 1 match
          * Review :
  • 제12회 한국자바개발자 컨퍼런스 후기 . . . . 1 match
         || 09:30 ~ 10:20 |||||||||||||| Registration ||
         || 12:00 ~ 13:00 |||||||||||||| Lunch Break ||
         || 13:50 ~ 14:00 |||||||||||||| Break ||
         || 14:00 ~ 14:50 || KT Cloud 기반 애플리케이션 개발 전략 (정문조) || Event Driven Architecture (이미남) || 성공하는 개발자를 위한 아키텍처 요구사항 분석 방법 (강승준) || JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링 (원종석) || Java와 Eclipse로 개발하는 클라우드, Windows Azure (김명신) || Apache Hadoop으로 구현하는 Big Data 기술 완벽 해부 (JBross User Group) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
         || 14:50 ~ 15:00 |||||||||||||| Break ||
         || 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
         || 15:50 ~ 16:00 |||||||||||||| Break ||
         || 16:50 ~ 17:00 |||||||||||||| Break ||
         || 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
         || 17:50 ~ 18:00 |||||||||||||| Break ||
          그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
          세 번째로 들은 것이 Track 5의 How to deal with eXtream Application이었는데.. 뭔가 하고 들었는데 들으면서 왠지 컴구 시간에 배운 것이 연상이 되었던 시간이었다. 다만 컴구 시간에 배운 것은 컴퓨터 내부에서 CPU에서 필요한 데이터를 빠르게 가져오는 것이었다면 이것은 서버에서 데이터를 어떻게 저장하고 어떻게 가져오는 것이 안전하고 빠른가에 대하여 이야기 하는 시간이었다.
          마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
          * 그 다음으론 <Event Driven Architecture>를 들었는데 생각과 너무 다른 내용이라 흥미가 없어서 옆 트랙으로 옮겼다. <성공하는 개발자를 위한 아키텍쳐 요구사항 분석 방법>에 대한 이야기였는데 처음부터 이걸 들을 걸 그랬다. 좀 많은 내용을 넣으시다보니 시간이 많이 모자란 느낌이긴 했지만 전 트랙보단 관심이 가는 내용인데. 기억에 남는 것은 각각 '''목적에 맞게 설계해야 한다'''는 이야기.
  • 제로페이지의문제점 . . . . 1 match
         세미나가 [데블스캠프]외에 신입생 위주로 하는게 있어요? 설마 스터디를 이야기 하는거라면, 자신이 만들어 나가는건데요. :) 여태 제가 신입생 대상 스터디를 해본적이 없어서 공감이 안가는 이야기 같네요. 스스로 만드세요. SeeAlso 개인 제외 같이 한것들 --ExploringWorld ProjectZephyrus ProjectPrometheus [MFCStudy_2001] [KDPProject] [Refactoring] --NeoCoin
  • 졸업논문 . . . . 1 match
          == Read ==
  • 졸업논문/서론 . . . . 1 match
         이제 많은 사람의 입에 오르내리는 웹2.0이라는 개념은 오라일리(O'Reilly)와 미디어라이브 인터내셔널(MediaLive International)에서 탄생했다.[1] 2000, 2001년 닷 컴 거품이 무너지면서 살아남은 기업들이 가진 특성을 모아 웹2.0이라고 하고, 이는 2004년 10월 웹 2.0 컨퍼런스를 통해 사람들에게 널리 알려졌다. 아직까지도 웹2.0은 어느 범위까지를 통칭하는 개념인지는 여전히 논의 중이지만, 대체로 다음과 같은 키워드를 이용해 설명할 수 있다. 플랫폼, 집단 지능, 데이터 중심, 경량 프로그래밍 모델, 멀티 디바이스 소프트웨어.
  • 지금그때2003/토론20030310 . . . . 1 match
          * 기타 - 금요일인 경우 학교선배가 아닌 다른모임사람들을 같이 참석시킬 수 있다. ex) RenaissanceClub
  • 지금그때2004/토론20040331 . . . . 1 match
         == 회고(Retrospective) ==
  • 지금그때2004/회고 . . . . 1 match
          * 도우미들이 적극적으로 Recorder 가 되는 건 어떨까. MinMap이나 ScatterMap 기법들을 미리 숙지한뒤, 레코딩 할때 이용하면 정리 부분이 더 원활하게 진행될것 같다.
  • 지도분류 . . . . 1 match
         || ["CVS"] || Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 도구 ||
         === Software Engineering ===
         ||["SoftwareEngineeringClass"]||.||
         ||["ExtremeProgramming"]|| Agile Methodology 인 ExtremeProgramming 에 대한 전반적 설명||
         || RegressionTesting || 회귀 테스팅으로 기존의 기능에 문제 없는가 테스트 ||
         ||SoftwareEngineeringClass ||
  • 질문의힘 . . . . 1 match
          * Review :
  • 책분류Template . . . . 1 match
          * Review :
  • 책아저씨 . . . . 1 match
         #Redirect 제본
  • 컴공과학생의생산성 . . . . 1 match
         두째로, 생산성에 대한 훈련은 학생 때가 아니면 별로 여유가 없습니다. 학생 때 생산성이 높은 작업만 해야한다는 이야기가 아니고, 차후에 생산성을 높일 수 있는 몸의 훈련과 공부를 해둬야 한다는 말입니다. 우리과를 졸업한 사람들 중에 현업에 종사하면서 일년에 자신의 업무와 직접적 관련이 없는 IT 전문서적을 한 권이라도 제대로 보는 사람이 몇이나 되리라 생각을 하십니까? 아이러니칼 하게도 생산성이 가장 요구되는 일을 하는 사람들이 생산성에 대한 훈련은 가장 도외시 합니다. 매니져들이 늘 외치는 말은, 소위 Death-March 프로젝트의 문구들인 "Real programmers don't sleep!"이나 "We can do it 24 hours 7 days" 정도지요. 생산성이 요구되면 될 수록 압력만 높아지지 그에 합당하는 훈련은 지원되지 않습니다.
         아주 중요한 이야기를 했군요. 자신이 생각하는 것에 대해 생각하는 것을 meta-cognition이나 self-reflection이라고 합니다. 인간 말고 다른 동물은 이런 고차원적 뇌활동을 할 수 없다고들 하죠. 전문가와 초보자의 차이는 이게 있냐 없냐로 말하기도 합니다. 현재 닥친 물리적 행동 자체에 뇌력의 거의 대부분을 소진하고 있다면 자신이 지금 하고 있는 것이 뭔지 따질 겨를이 없죠(테트리스를 처음 하는 사람과 전문가의 뇌 온도분포를 촬영한 걸 보면 극명합니다. 처음하는 사람의 뇌는 한마디로 비효율적인 엔진입니다. 하는 일보다 밖으로 방출되는 열량이 더 많습니다. 전문가의 경우 아주 작은 부분에서만 열이 납니다. 덕분에 게임하면서 딴 생각할 여유도 있죠). 소위 "어리버리"하다고 하는 겁니다. 군대에 처음 온 이등병들이 이렇습니다. 자기가 도대체 뭘하고 있는지를 모르죠. 그래서 실수도 많이하고, 한 실수 또 하고 그렇습니다. 일병을 넘어서고 하면서 자기가 하는 걸 객관적으로 관찰하고, 요령도 피우고 농땡이도 부리고 하는 건 물론, 자기가 하는 일을 "개선"하는 게 가능해 집니다. --김창준
  • 큐와 스택/문원명 . . . . 1 match
          밤(10시 이후)에 답변드리겠습니다. 저에게는 상당한 학습의 기회가 될것 같군요. 재미있네요. 일단, 글로 표현하기에 자신이 없거든요. 주변의 사람들을 붙잡고 물어보는 것도 좋은 방법이 될것 같습니다. 그리고, 학교 교제의, call By Value, call By reference 와 Pointer 관련 부분을 읽으시면 좋겠습니다. --NeoCoin
         #include <iostream>
         // VC++ 6.0 이라면, 아마 release 모드에서 실행이 되지 않을것입니다.
          // 주소로 초기값이 세팅되어 있었습니다. Release 모드로 바꾸어서 컴파일 해보세요.
          break;
          break;
          break;
          break;
          break;
          break;
          break;
         cin 이 string을 입력 받는 코드는 {{{~cpp C:\Program Files\Microsoft Visual Studio\VC98\Include\istream}}} 에 정의 되어 있습니다. 궁금하시면, Debug 모드로 따라가 보세요.
         #include <iostream>
          break;
          break;
          break;
          break;
          break;
          break;
          break;
  • 토이/숫자뒤집기/임영동 . . . . 1 match
          int inputNumber=Integer.parseInt(JOptionPane.showInputDialog(null, "Input a number that you want to reverse."));
          int reversedNumber=reverse(inputNumber);//뒤집을 숫자를 입력받고 reverse()호출
          JOptionPane.showMessageDialog(null, "Reversed Number: "+reversedNumber);
          public static int reverse(int number)
          String reversed="";
          reversed=reversed+(number%10);
          int returnNumber=Integer.parseInt(reversed);
          return returnNumber;//문자열을 정수형으로 바꿔 리턴
  • 튜터링/2011/어셈블리언어 . . . . 1 match
          call ReadDec ; 숫자 하나 받아옴
  • 튜터링/2013/Assembly . . . . 1 match
          1. Directive와 instruction의 차이점에 대해 설명하시오.
          4.다음 방식(indirect, indexed)로 코드를 작성하고, 설명하시오.
          indirect operands indexed operands
          * 중간고사 이전 범위 Review
  • 파이썬으로익스플로어제어 . . . . 1 match
         ie = Dispatch("InternetExplorer.Application")
         ie.Navigate("http://zeropage.org/wiki/RecentChange")
         ie.Document.login.user_Id.value = "reset"
          자세한 내용은 http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp 에의 컴포넌트들을 참조하세요. 주로 알아야 할 객체는 WebBrowser, Document 객체입니다. (login 예제는 나중에~) --[1002]
          * firefox 나 opera 도 제어할수 있는지..-_-a - 임인택
          IE Automation 을 이용한 것이므로, firefox 나 opera 의 경우는 다른 방법을 이용해야겠죠. --[1002]
  • 파킨슨의 법칙 . . . . 1 match
          * Review :
  • 페이지이름 . . . . 1 match
         === Thread ===
         아래는 ["제안"]이란 ["페이지이름"]에 대한 토론 내용을 HierarchicalWikiWiki 페이지에서 옮겼습니다. 좀 더 다듬어야 하겠습니다. RefactorMe --["이덕준"]
  • 프로그래밍잔치/둘째날후기 . . . . 1 match
         그날 했던 일. 느낀점. 교훈을 정리해보는 페이지. (ThreeFs)
         샌드위치를 먹으며 마저 Requirement 정리를 하고, 7피로 올라가서 팀 프로젝트를 진행하기 시작하기 시작했다.
  • 프로그래밍잔치/첫째날 . . . . 1 match
          * '''Think Difference 낯선 언어와의 조우'''
          * 언어를 이용하면서 문제 풀기. & 해당 언어에 대해서 위키에 Thread - Document 작성
         === Language Set (Resource 는 각 페이지들 참조) ===
         === 시간 - Think Different! 낯선언어와의 조우! ===
  • 프로젝트 . . . . 1 match
          * [XpWeek] - 2004년 겨울방학 ExtremeProgramming 체험하기
          * [RedThon] - 2004년 6월 4일 종료
  • 학회간교류 . . . . 1 match
         === Thread ===
         여기다 쓰면 Netory:RecentChanges 에 표시가 안 되네요.
  • 허아영 . . . . 1 match
         [http://blog.naver.com/ourilove.do?Redirect=Log&logNo=100003444965 포인터공부]
  • 협상의법칙 . . . . 1 match
          * Review :
  • 홍기 . . . . 1 match
         #Redirect sibichi
  • 화성남자금성여자 . . . . 1 match
         void NormalRet (vec3_t a, vec3_t b, vec3_t c, vec3_t &out); // 노멀 벡터 계산
  • 화이트헤드과정철학의이해 . . . . 1 match
         계속 화이트헤드에 주목하는 이유라면 (김용옥씨 관점의 화이트헤드해석일지도 모르겠다. ["이성의기능"] 때문이지만.) 점진적 발전과 Refactoring 에서 뭔가 연결고리를 흘핏 봐서랄까나. 잘못하면 뜬구름 잡는 넘이 될지 모르겠지만. 이번에도 역시 접근방법은 '유용성' 과 관련해서. 또 어쩌면 용어 차용해서 써먹기가 될까봐 걱정되지만. 여유를 가지고 몇달 생각날때 틈틈히 읽으려는 책.
  • 황재선 . . . . 1 match
          * [http://blog.naver.com/wizard1202.do?Redirect=Log&logNo=140000679350 MFC Tip]
         jtable.getColumnModel().getColumn(index).setPreferredWidth(size);
         jtable.getPreferredScrollableViewportSize().setSize(width, height);
  • 0 . . . . 1 match
         Describe 0 here
Found 985 matching pages out of 7540 total pages (5000 pages are searched)

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
Processing time 0.5162 sec