E D R , A S I H C RSS

Full text search for "code Ra"

code Ra


Search BackLinks only
Display context of search results
Case-sensitive searching
  • RandomWalk2/Insu . . . . 114 matches
         #ifndef _RANDOM_WALK_H
         #define _RANDOM_WALK_H
         class RandomWalkBoard
          RandomWalkBoard(int nRow, int nCol, int nCurRow, int nCurCol, char *szCourse, int DirectX[], int DirectY[]);
          ~RandomWalkBoard();
          void SetArrayAsZero();
         #include "RandomWalkBoard.h"
         RandomWalkBoard::RandomWalkBoard(int nRow, int nCol, int nCurRow, int nCurCol, char *szCourse, int DirectX[], int DirectY[])
          SetArrayAsZero();
         void RandomWalkBoard::CourseAllocate(char *szCourse)
         void RandomWalkBoard::BoardAllocate()
         void RandomWalkBoard::CourseFree()
         void RandomWalkBoard::DirectionAllocate(int x[], int y[])
         void RandomWalkBoard::BoardFree()
         RandomWalkBoard::~RandomWalkBoard()
         void RandomWalkBoard::ShowStatus()
         void RandomWalkBoard::SetArrayAsZero()
         bool RandomWalkBoard::CheckCompletelyPatrol()
         void RandomWalkBoard::IncreaseVisitCount()
         void RandomWalkBoard::IncreaseTotalVisitCount()
  • MoreEffectiveC++/Efficiency . . . . 49 matches
         80-20 규칙은 수많은 기계에서, 운영체제(Operating System)에서, 그리고 어플리케이션에서 적용된다. 80-20 규칙은 단지 재미있는 표현보다 더 많은 의미가 있다.;그것은 광범위하고, 실질적인 개념이 필요한 시스템의 성능(능률)에 개선 대한 기준점을 제시한다.
         몇번이나 구문이 실행되는가, 함수가 실행되는가는 때때로 당신의 소프트웨어 안의 모습을 이야기 해준다. 예를들어 만약 당신이특별한 형태의 객체를 수백개를 만든다고 하면, 생성자의 횟수를 세는것도 충분히 값어치 있는 일일 것이다. 게다가 구문과, 함수가 불리는 숫자는 당신에게 직접적인 해결책은 제시 못하겠지만, 소프트웨어의 한면을 이해하는데 도움을 줄것이다. 예를들어서 만약 당신은 동적 메모리 사용을 해결하기 위한 방법을 찾지 못한다면 최소한 몇번의 메모리 할당과 해제 함수가 불리는것을 아게되는것은 유용한 도움을 줄지도 모른다. (e.g., operators new, new[], delete and delete[] - Item 8참고)
         String 복사 생성자의 적용시, s2는 s1에 의하여 초기화 되어서 s1과 s2는 각각 "Hello"를 가지게된다. 그런 복사 생성자는 많은 비용 소모에 관계되어 있는데, 왜냐하면, s1의 값을 s1로 복사하면서 보통 heap 메모리 할당을 위해 new operator(Item 8참고)를 s1의 데이터를 s2로 복사하기 위해 strcpy를 호출하는 과정이 수행되기 때문이다. 이것은 ''''eager evaluation''''(구지 해석하면 '''즉시 연산''' 정도 일것이다.) 개념의 적용이다.:s1의 복사를 수행 하는 것과, s2에 그 데이터를 집어넣는 과정, 이유는 String의 복사 생성자가 호출되기 때문이다. 하지만 여기에는 s2가 쓰여진적이 없이 새로 생성되는 것이기 때문에 실제로 s2에 관해서 저런 일련의 복사와, 이동의 연산의 필요성이 없다.
          cout << s[3]; // operator []를 호출해서 s[3]을 읽는다.(read)
          s[3] = 'x'; // operator []를 호출해서 s[3]에 쓴다.(write)
         첫번째 operator[]는 문자열을 읽는 부분이다,하지만 두번째 operator[]는 쓰기를 수행하는 기능을 호출하는 부분이다. 여기에서 '''읽기와 쓰기를 구분'''할수 있어야 한다.(distinguish the read all from the write) 왜냐하면 읽기는 refernce-counting 구현 문자열로서 자원(실행시간 역시) 지불 비용이 낮고, 아마 저렇게 스트링의 쓰기는 새로운 복사본을 만들기 위해서 쓰기에 앞서 문자열 값을 조각내어야 하는 작업이 필요할 것이다.
         이것은 우리에게 적용 관점에서 상당히 난제이다. 우리가 원하는 것에 이르기 위하여 operator[] 안쪽에 각기 다른 작업을 하는 코드가 필요하다.(읽기와 쓰기에 따라서 따로 작동해야 한다.) 어떻게 우리는 operator[]가 읽기에 불리는지 쓰기에 불리는지 결정할수 있을까? 이런 잔인한 사실은 우리를 난감하게 한다. lazy evaluation의 사용과 Item 30에 언급된 proxy 클래스(위임 클래스, DP에서의 역할과 비슷할것이라 예상) 는 우리가 수정을 위하여 읽기나 쓰기 행동을 하는지의 결정을 연기하게 한다.
         '''lazy fetching'''을 적용 하면, 당신은 반드시 field1과 같은 const멤버 함수를 포함하는 어떠한 멤버 함수에서 실제 데이터 포인터를 초기화하는 과정이 필요한 문제가 발생한다.(const를 다시 재할당?) 하지만 컴파일러는 당신이 const 멤버 함수의 내부에서 데이터 멤버를 수정하려고 시도하면 까다로운(cranky) 반응을 가진다. 그래서 당신은 "좋와, 나는 내가 해야 할것을 알고있어" 말하는 방법을 가지고 있어야만 한다. 가장 좋은 방법은 포인터의 필드를 mutable로 선언해 버리는 것이다. 이것의 의미는 어떠한 멤버 함수에서도 해당 변수를 고칠수 있다는 의미로, 이렇게 어떠한 멤버 함수내에서도 수행할수 있다. 이것이 LargeObject안에 있는 필드들에 mutable이 모두 선언된 이유이다.
         보통 operator+에 대한 구현은 아마 '''eager evaluation'''(즉시 연산) 이 될것이다.;이런 경우에 그것은 아마 m1과 m2의 리턴 값을 대상으로 한다. 이 계산(1,000,000 더하기)에 적당한 게산양과, 메모리 할당에 비용 이 모드것이 수행되어져야 함을 말한다.
         어떻게 행운이냐구? 행렬 계산의 분야에 대한 경험이 우리의 이러한 코드에 대한 노력에 가능성을 준다. 사실 lazy evaluation은 APL이라는 것에 기초하고 있다. APL은 1960년대에 상호 작용의(interactive) 쓰임을 위하여 행렬 계산이 필요한 사람들에 의하여 개발된 것이다. 현재보다 떨어진 수행능력을 가진 컴퓨터에서 APL은 더하고, 곱하고, 심지어 커다란 행렬을 직접 나눈는 것처럼 보이게 하였다. 그것에는 lazy evaluation이라는 방법이었다. 그 방법은 일반적으로 보통 효율적이었다. 왜냐하면 APL 사용자가 보통 더하고, 곱하고 나누는 것을 그것의 행렬의 조각들을 필요로 하고, 전체의 결과가 필요하기 전까지 수행하지 않는다. APL 은 lazy evaluation을 사용해서 행렬상의 결과를 정확히 알 필요가 있을때까지 게산을 지연시킨다. 그런 다음 오직 필요한 부분만을 계산한다. 실제로 이것은 과거 열악한 컴퓨터의 능력하에서 사용자들이 계산 집약적인(많은 행렬 계산을 요하는) 문제에 관하여 상호적으로(결과값과 수행 식간에 필요 값을 위해서 최대한 실제 연산을 줄여나가게) 수행된다.현재의 기계도 빨라졌지만, 데이터들이 커지고, 사용자들은 참을성이 줄어들기 때문에 요즘에도 이런 lazy evaluation의 장점을 이용한 행렬 연산 라이브러리를 사용한다.
         그러므로 몇가지의 m1에 대한 할당이 m3를 변화시키지 않는다는 확신을 가지고 있어야 한다. Matrix<int>의 내부에 할당된 operator 내부에 m3의 값이 m1의 계산 이전에 계산되어 있거나, m1의 과거 값에 대한 복사본을 가지고 있고 m3는 그것에 의존해야 한다. 다른 함수들도 이러한 행렬의 변경을 위하여 다른 형식의 함수들도 이런 비슷한 것을 감안해야 할것이다.
         각 값 간의 의존성과,;데이터 구조의 유지를 위하여, 값들, 의존성이나 두가지의 결합 방법을 저장해야 한다.; 그리고 많은 수치 계산이 필요한 분야에서 복사, 더하기 할당, 같은 operator의 overload 것이 필요하다. 반면에 lazy evaluation의 적용은 프로그램 실행중에서 정말 많은 시간들과 많은 자원들을 아낄수 있다. 그래서 lazy evaluation의 존재를 정당화 시켜 줄것이다.
         이런 네가지의 예제는 lazy evaluation이 다양한 영역에서 활용될수 있음을 시사한다.:필요없는 객체의 복제 피하기, operator[]에 읽기와 쓰기를 구분하기, 데이터 베이스 상에서의 필요없는 자료 읽기를 피하기, 필요없는 수치 계산을 피하기. 그럼에도 불구하고 그것은 정말 훌륭한 생각만은 아니다. 단지 해치워야 할일을 미루어서 처리하는 것이기 때문에 만약에 당신의 부모가 계속 감시를 한다면 당신은 계속 그런 일들을 해주어야 한다. 마찬가지로 프로그램 상에서도 모든 연산들이 필요하다면 lazy evaluation은 어떠한 자원의 절약도 되지 않는다. 거기도 만약 당신의 모든 계산이 반드시 필요한 중요한 것들이라면, lazy evaluation은 아마 처음에 허상 데이터들과 의존 관계같은 것의 처리를 위하여, 실제보다 더 많은 연산을 하게되어 수행 속도를 느리게 할것이다. lazy evaluation은 오직 당신의 소프트웨어 상에서 피할수 있는 계산이 존재할 때만 유용히 쓰일수 있다.
         여기 findCubicleNumber를 적용시키는 한 방법이 있다.;그것은 지역(local)캐쉬로 STL의(Standard Template Library-Item 35 참고) map 객체를 사용한다.
          // STL interator "it"은 해당 entry를 찾는다.
          CubicleMap::iterator it = cubes.find(employeeName);
         STL코드를 자세히 알고 싶어서 촛점을 벗어나지 말아라. Item 35 보면 좀 확실히 알게 될것이다. 대신에 이 함수의 전체적인 기능에 촛점을 맞추어 보자.현재 이 방법은 비교적 비싼 데이터 베이스의 쿼리(query)문에대한 비용대신에 저렴한 메모리상의 데이터 베이스 구조에서 검색을 하는 것으로 교체하는걸로 볼수 있다. 개인 방번호에 대한 호출이 한벙 이상일때 findCubicleNumber는 개인방 번호에 대한 정보 반환의 평균 비용을 낮출수 있다. (한가지 조금 자세히 설명하자면, 마지막 구문에서 반환되는 값 (*it).second이 평범해 보이는 it->second 대신에 쓰였다. 왜? 대답은 STL에 의한 관행이라고 할수 있는데, 반환자(iterator)인 it은 객체이고 포인터가 아니라는 개념, 그래서 ->을 it에 적용할수 있다라는 보장이 없다. STL은 "."과 "*"를 interator상에서 원한다. 그래서 (*it).second라는 문법이 약간 어색해도 쓸수 있는 보장이 있다.)
          class DynArray { ... };
          DynArray<double> a; // 이런 관점에서 a[0]은 합법적인
         어떻게 DynArray 객체가 필요할때 마다 스스로 확장되는 걸까? 곧장 생각할수 있는건 그것이 새로운 메모리가 필요될때만 할당되고는 것이다 이런것 처럼 말이다.
  • OpenGL스터디_실습 코드 . . . . 45 matches
         skyLibrary_include
          * '''이곳에 소스는 저의 github에도 올릴 예정이니 일일히 복붙하기 귀찮으신분들은 "https://github.com/skyLibrary/OpenGL_Practice"에서 받아가세요.'''
          GLfloat aspectRatio;
          aspectRatio = (GLfloat)w/(GLfloat)h;
          windowHeight = 100/aspectRatio;
          windowWidth = 100*aspectRatio;
         /* @skyLibrary
          * Title : spiral shape pointing
          * just practice OpenGL.
          //get point size range and its interval.
          glGetFloatv(GL_POINT_SIZE_RANGE, sizes);
          glGetFloatv(GL_POINT_SIZE_GRANULARITY, &step);
          // Done drawing points
          // Restore transformations
          // Flush drawing commands
         //register background color and base drawing color.
          GLfloat nRange = 100.0f;
          glOrtho(-nRange, nRange, -nRange*h/w, nRange*h/w, nRange, -nRange);
          glOrtho( -nRange*w/h, nRange*w/h, -nRange, nRange, nRange, -nRange);
          * @skyLibrary
  • 영호의바이러스공부페이지 . . . . 42 matches
         and this magazines contains code that can be compiled to viruses.
         get erased so you have a psycological problem with viruses, erase these
          Editior, Technical Consultant - Hellraiser
          V Status: Rare
          Type Code: PNCK - Parasitic Non-Resident .COM Infector
          General Comments:
          an infected program is executed another .COM file will attempt to
          assume cs:seg_a, ds:seg_a ;assume cs, ds - code
          pop si ;locate all virus code via
          lea dx,[si+1ABh] ;offset of jump to virus code
         in the directory. If no files are found the program exits. If a file is
         first two bytes of the COM file. If they match the program terminates.
         AL = method code
         and AX will contian the error code. If no error is encountered
         AX = bytes transferred
         AX = Error Code and flag is set.
         Now heres a sample project - create a new strain of Tiny, have it restore
          HOW TO CREATE NEW VIRUS STRAINS
         viruses so the scanners wont catch them, in turn making them new strains.
         select fill. Fill the lower half of the file will nonsense characters, its
  • RandomWalk/ExtremeSlayer . . . . 26 matches
          * 인수군의 Random Walk - 아 심심해--;
         class RandomWalkBoard
          RandomWalkBoard(int& nRow, int& nCol, int& nCurRow, int& nCurCol);
          ~RandomWalkBoard();
          void SetArrayAsZero(int& nCurRow);
          int GetRandomDirection() const;
         #include "RandomWalkBoard.h"
         RandomWalkBoard::RandomWalkBoard(int& nRow, int& nCol, int& nCurRow, int& nCurCol)
          srand(time(0));
         void RandomWalkBoard::BoardAllocate()
          SetArrayAsZero(i);
         void RandomWalkBoard::SetArrayAsZero(int& nCurRow)
         RandomWalkBoard::~RandomWalkBoard()
         void RandomWalkBoard::BoardFree()
         bool RandomWalkBoard::CheckCompletelyPatrol() const
         void RandomWalkBoard::ShowBoardStatus() const
         void RandomWalkBoard::AddVisitCount()
         void RandomWalkBoard::StartMovement()
          DelRow = GetRandomDirection();
          DelCol = GetRandomDirection();
  • 영호의해킹공부페이지 . . . . 26 matches
          Always yield to the Hands-On imperative!
          3. Mistrust Authority-Promote Decentralization.
          such degrees, age, race, or position.
         coded daemons - by overflowing the stack one can cause the software to execute
         data type - an array. Arrays can be static and dynamic, static being allocated
         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.
         is static. PUSH and POP operations manipulate the size of the stack
         within a frame (FP). This can be used for referencing variables because their
         it can handle. We use this to change the flow of execution of a program -
         hopefully by executing code of our choice, normally just to spawn a shell.
         means that we can change the flow of the program. By filling the buffer up
         with shellcode, designed to spawn a shell on the remote machine, and
         make the program run the shellcode.
         Time for a practical example. I did this some time ago on my Dad's Windoze box
         vulnerability here...
         one? Well, let's check, we feed it a good 30 "a" characters and we look at the
         Aaah, see that? EIP is 61616161 - 61 being the hex value of the "a" character,
         And when executing the program, the output we get is as follows...
         along until we get to our shellcode. Errr, I'm not being clear, what I mean is
  • 실습 . . . . 24 matches
         등수 double m_nRank
         등수 함수 int GetRank(void);
         등수 기록 함수 void SetRank(int nRank);
         4. Source Code
         int m_nRank;
         int GetRank(void);
         void SetRank(int nRank);
          sung[i].SetRank(i+1);
          if(sung[i].GetRank() > sung[j].GetRank()) {
          nTemp = sung[i].GetRank();
          sung[i].SetRank(sung[j].GetRank());
          sung[j].SetRank(nTemp);
          m_nRank = 0;
         int SungJuk::GetRank(void)
          return m_nRank;
         void SungJuk::SetRank(int nRank)
          m_nRank = nRank;
          cout << "Rank : " << m_nRank;
  • ACM_ICPC . . . . 22 matches
         = ACM International Collegiate Programming Contest =
          * [http://acm.kaist.ac.kr/2003/rank.html 2003년]
          * [http://acm.kaist.ac.kr/2007/standing2006.html 2006년 스탠딩] - ZeroPage Rank 17
          * [http://acm.kaist.ac.kr/2007/standing2007.html 2007년 스탠딩] - ZeroPage Rank 30
          * [http://acm.kaist.ac.kr/2008/fullnums.html 2008년 스탠딩] - ZeroPage Rank 30
          * [http://acm.kaist.ac.kr/2009/rank/new_summary_full.html 2009년 스탠딩] - No attending
          * [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=25&t=657 2011년 스탠딩] - ACMCA Rank 26 (CAU - Rank 12)
          * [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=28&t=695 2012년 스탠딩] - OOPARTS, GoSoMi_Critical (CAU - Rank 15)
          * [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=35&t=5728 2014년 스탠딩] - ZeroPage Rank 32 (CAU - Rank 18, including Abroad team)
          * [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/20221119/scoreboard/ 2022년 스탠딩] - HeukseokZZANG Rank 63(CAU - Rank 29)
         || graph || . || weighted graph || . ||
         || 프림 Algorithm || . || dijkstra || . ||
          * team 'AttackOnKoala' 본선 HM(Honorable Mention, 순위권밖) : [강성현], [정진경], [정의정]
          * team 'Zaranara murymury' 본선 31위(학교 순위 13위) : [이민석], [정진경], [홍성현]
  • MobileJavaStudy/SnakeBite/FinalSource . . . . 22 matches
          public void paint(Graphics g) {
          g.drawImage(splashImage, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
          e.printStackTrace();
          private final int xRange;
          private final int yRange;
          public Snake(int length, int xRange, int yRange) {
          this.xRange = xRange;
          this.yRange = yRange;
          if(head.x < 0 || head.x > xRange - 1
          || head.y < 0 || head.y > yRange - 1)
          private final int snakeXRange;
          private final int snakeYRange;
          private boolean drawBoard;
          snakeXRange = boardInnerWidth / snakeCellWidth;
          snakeYRange = boardInnerHeight / snakeCellWidth;
          snake = new Snake(5, snakeXRange, snakeYRange);
          drawBoard = true;
          Random random = new Random();
          appleX = Math.abs(random.nextInt()) % snakeXRange;
          appleY = Math.abs(random.nextInt()) % snakeYRange;
  • RandomWalk . . . . 22 matches
          * 격자의 가로, 세로의 크기를 입력받을때. 엄청나게 큰 크기를 입력하면 어떻게 할 것인가? 배열의 동적 할당을 이용해서 2차원배열을 어떻게 사용할까? (c/c++은 자바와 달리 2차원배열을 동적할당 할 수 없다. 따라서 각자가 pseudo (혹은 imitation) dynamic 2D array 를 디자인하여야 한다)
         ||신성재||C||["RandomWalk/성재"]||
         ||장은지||C||["RandomWalk/은지"]||
         ||임영동||C||["RandomWalk/영동"]||
         ||조현민||C||["RandomWalk/현민"]||
         ||박종찬||C||["RandomWalk/종찬"]||
         ||이대근||C||["RandomWalk/대근"]||
         ||유상욱||C||["RandomWalk/유상욱"]||
         ||신진영||C++||["RandomWalk/신진영"]||
         ||임인택||C||["RandomWalk/임인택"]||
         ||강인수||C++||["RandomWalk/ExtremeSlayer"]||
         ||재니||C||["RandomWalk/재니"]||
         ||동기||C||["RandomWalk/동기"]||
         ||장창재||C++||["RandomWalk/창재"]||
         ||손동일||C++||["RandomWalk/손동일"]||
         ||황재선||C++||["RandomWalk/황재선"]||
         ||문원명||C++||["RandomWalk/문원명"]||
         ||이진훈||C++||["RandomWalk/이진훈"]||
         ||임민수||C++||["RandomWalk/임민수"]||
         ||김아영||C++||["RandomWalk/김아영"]||
  • [Lovely]boy^_^/3DLibrary . . . . 20 matches
         float GetRadian(float Angle);
          Matrix operator + (const Matrix& m) const;
          Matrix operator - (const Matrix& m) const;
          Matrix operator - () const;
          Matrix operator * (const Matrix& m) const;
          Vector operator * (const Vector& v) const;
          Matrix operator * (float n) const;
          friend ostream& operator << (ostream& os, const Matrix& m);
          friend Matrix operator * (float n, const Matrix& m);
          float operator * (const Vector& v) const;
          Vector operator * (float n) const;
          Vector operator ^ (const Vector& v) const;
          Vector operator - () const;
          Vector operator + (const Vector& v) const;
          Vector operator - (const Vector& v) const;
          friend ostream& operator << (ostream& os, const Vector& v);
          friend Vector operator * (float n, const Vector& v);
         float GetRadian(float Angle)
         ostream& operator << (ostream& os, const Matrix& m)
         Matrix Matrix::operator + (const Matrix& m) const
  • 데블스캠프2009/목요일/연습문제/MFC/김태욱 . . . . 20 matches
          // ClassWizard generated virtual function overrides
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
          ON_WM_QUERYDRAGICON()
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          if (!strAboutMenu.IsEmpty())
          pSysMenu->AppendMenu(MF_SEPARATOR);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
          // TODO: Add extra initialization here
         void CZxczxcDlg::OnSysCommand(UINT nID, LPARAM lParam)
          CDialog::OnSysCommand(nID, lParam);
         // If you add a minimize button to your dialog, you will need the code below
         // to draw the icon. For MFC applications using the document/view model,
         // this is automatically done for you by the framework.
          SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
          // Draw the icon
          dc.DrawIcon(x, y, m_hIcon);
         // The system calls this to obtain the cursor to display while the user drags
  • 데블스캠프2002/진행상황 . . . . 17 matches
          * 목요일의 ["RandomWalk2"] 에 대해서 다시 CRC 디자인 세션과 구현시간을 가져보았다. (["ScheduledWalk/재니&영동"], ["ScheduledWalk/창섭&상규"]) 이번에는 신입회원팀과 기존회원팀으로 나누어서 디자인 세션을 가지고, 팀별로 구현을 하였다. (신입회원 팀에서의 클래스 구현에서는 1002가 중간 Support)
          * 남훈아 수고 했다. 후배들에게는 당근 어려웠겠지만, 개인적으로는 유익했던지라; ^^; traceroute 의 원리 설명은 정말; TCP/IP 동영상을 먼저보여주는게 더 쉬웠을려나 하는 생각도.
          * 일요일, 그리고 목요일, 금요일 동안 지겹도록 풀었을것 같은 RandomWalk 가 이렇게 다양한 모습을 보여주었다는 점에선 꼭 푸는 문제 수가 중요하지 않다라는 점을 확신시켜주었다.
          * 마지막 날에 온 사람이 3명. 그리고 문제를 푸는데 참여한 사람이 2명 밖에 안남았다는 점은 데블스캠프를 준비한 사람들을 좌절하게 한다. 그나마 한편으로 기뻤던 점은, 아침 7시가 되도록 컴퓨터 하나를 두고 서로 대화를 하며 RandomWalk를 만들어가는 모습을 구경했다는 점. 그 경험이 어떻게 기억될지 궁금해진다.
          * OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
          * 일단 지난시간에 만들었었던 RandomWalk 의 스펙을 수정한 RandomWalk2 를 사람들로 하여금 풀게 한뒤, 그 중에 완성한 두명을 뽑아 (상규와 현민) 자신이 어떻게 프로그래밍을 했는지에 대해 창준이형의 진행으로 질답을 하면서 설명해나갔다. 그리고 코드를 프로젝터와 노트북을 이용, 신피의 벽에 비추며 설명하였다. (["RandomWalk2/상규"], ["RandomWalk2/현민"])
          * StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
          * ObjectOrientedProgramming - ["RandomWalk2"] 에 대해서 창준이형과 ["1002"] 는 서로 이야기를 해 나가면서 하나씩 객체들을 뽑아내가는 과정을 설명했다. 일종의 CRC 카드 세션이었다. 그러고 나서는 프로젝터를 통해, 직접 Prototype을 만들어 보였다. OOP/OOAD로 접근하는 사람의 사고방식과 프로그래밍의 과정을 바로 옆에서 관찰할 수 있었다.
          * Python 기초 + 객체 가지고 놀기 실습 - Gateway 에서 Zealot, Dragoon 을 만들어보는 예제를 Python Interpreter 에서 입력해보았다.
          * ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
         Python으로 만든 스타크래프트 놀이는 참가자들이 무척이나 좋아했다. 또 그 직전에 Python Interactive Shell에서 간단하게 남자, 여자, 인간 클래스를 직접 만들어 보게 한 것도 좋아했다. 아주 짧은 시간 동안에 OOP의 "감"을 느끼게 해주는 데 일조를 했다고 본다.
          * '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
         ["RandomWalk2"]를 풀 때 어떤 사람들은 요구사항에 설명된 글의 순서대로(예컨대, 입력부분을 만들고, 그 다음 종료조건을 생각하고, ...) 생각하고, 또 거의 그 순서로 프로그래밍을 해 나갔다. 이 순서가 반드시 최선은 아닐텐데, 그렇게 한 이유는 무엇일까. 두가지 정도를 생각해 볼 수 있겠다.
         처음 ["1002"]가 계획한 세미나 스케쥴은 조금 달랐다. "어떻게 하면 ObjectOrientedProgramming의 기본 지식을 많이 전달할까"하는 질문에서 나온 스케쥴 같았다. 나름대로 꽤 짜임새 있고, 훌륭한(특히 OOP를 조금은 아는 사람에게) 프로그램이었지만, 전혀 모르는 사람에게 몇 시간 동안의 세미나에서 그 많은 것을 전달하기는 무리가 아닐까 하고 JuNe은 생각했다. 그것은 몇 번의 세미나 경험을 통해 직접 느낀 것이었다. 그가 그간의 경험을 통해 얻은 화두는 다음의 것들이었다. 어떻게 하면 적게 전달하면서 충분히 깊이 그리고 많이 전달할까. 어떻게 하면 작은 크기의 씨앗을 주되, 그것이 그들 속에서 앞으로 튼튼한 나무로, 나아가 거대한 숲으로 잘 자라나게 할 것인가.
          * 세미나 - DevelopmentinWindows, EventDrivenProgramming, Web Programming
          * Web Programming 때 상규의 보충설명을 보면서 상규가 대단하다는 생각을 해봤다. 간과하고 넘어갈 뻔 했었던 Web Program의 작동원리에 대해서 제대로 짚어줬다고 생각한다. --["1002"]
         EventDrivenProgramming 의 설명에서 또하나의 새로운 시각을 얻었다. 전에는 Finite State Machine 을 보면서 Program = State Transition 이란 생각을 했었는데, Problem Solving 과 State Transition 의 연관관계를 짚어지며 최종적으로 Problem Solving = State Transition = Program 이라는 A=B, B=C, 고로 A=C 라는. 아, 이날 필기해둔 종이를 잃어버린게 아쉽다. 찾는대로 정리를; --["1002"]
          * ["RandomWalk"]
          * 대체적으로 RandomWalk 는 많이 풀었고, HanoiProblem 은 아직 재귀함수를 많이 접해보지 않은 신입회원들에게는 어렵게 다가간거 같다. - 상협
  • EffectiveC++ . . . . 16 matches
          #define ASPECT_RATIO 1.653
         ASPECT_RATIO는 소스코드가 컴파일로 들어가기 전에 전처리기에 의해 제거된다.[[BR]]
         define 된 ASPECT_RATIO 란 상수는 1.653으로 변경되기때문에 컴파일러는 ASPECT_RATIO 란것이 있다는 것을 모르고 symbol table 에?들어가지 않는다. 이는 debugging을 할때 문제가 발생할 수 있다. -인택
          const double ASPECT_RATIO = 1.653
         string *stringArray = new string[100];
         delete stringArray; // delete를 잘못 써주었습니다.
         // stringArray에 의해 가르켜진 100개의 string object들중에 99개는 제대로 제거가 안됨.
          * ''Deletion of the existing memory and assignment of new memory in the assignment operator. - 포인터 멤버에 다시 메모리를 할당할 경우 기존의 메모리 해제와 새로운 메모리의 할당''
          int *pVigdataArray = new int [100000000]; // 100000000개의 정수공간을 할당할 수 없다면 noMoreMemory가 호출.
         그리고, class내 에서 operator new와 set_new_handler를 정해 줌으로써 해당 class만의 독특(?)한 [[BR]]
          static void * operator new(size_t size);
         void * X::operator new(size_t size)
          memory = ::operator new(size); // allocation
         === Item 8: Adhere to convention when writing operator new and operator delete ===
         operator new 와 operator delete 의 작성시 따라야 할것들. [[BR]]
         멤버가 아닌 operator new
         // operator new
         void * operator new (size_t size)
         operator new 가 하부 클래스로 상속된다면 어떻게 될까? [[BR]]
         그런데, 이 클래스를 위해 만들어진 operator new 연산자가 상속될 경우. [[BR]]
  • ImmediateDecodability/김회영 . . . . 16 matches
         char code[8][10];
          int code_number=0;
          int code_byte=0;
          code[code_number][code_byte]=temp;
          code_byte++;
          code[code_number][code_byte]='\n';
          code_number++;
          code_byte=0;
          for(int i=0 ; i<=code_number-1 ; i++)
          for(int j=i+1 ; j<=code_number ; j++)
          if(test(code[i],code[j])==true)
  • Kongulo . . . . 16 matches
         # * Redistributions of source code must retain the above copyright
         # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
         # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
         # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
         '''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
         # Matches <frame src="bla"> tags.
         _FRAME_RE = re.compile(r'<\s*(frame).+src\s*=\s*"?(.+?)"?(\s|>)',
          error codes that Kongulo always checks explicitly rather than catching them
          def http_error_304(self, req, fp, code, msg, hdrs):
          # We check error codes explicitly so we don't want an exception
         # A URL opener that can do basic and digest authentication, and never raises
         # exceptions for HTTP error codes we handle explicitly.
         opener.addheaders = [('User-agent', 'Kongulo v0.1 personal web crawler')]
          self.errcode = f.code
          if self.errcode == 401 or self.errcode == 403:
          elif self.errcode >= 400:
          elif self.errcode == 200 and lines:
          '''An object that handles checking if we should fetch and crawl a specific
  • Map/황재선 . . . . 16 matches
          map<char, char> decode;
          decode['a'] = 'D';
          decode['$'] = 't';
          decode['9'] = 'p';
          decode['*'] = 'k';
          decode['m'] = 'n';
          decode['i'] = 'l';
          decode['x'] = 'W';
          decode['d'] = 'o';
          decode['='] = 's';
          decode['z'] = '!';
          decode['-'] = 'u';
          decode['@'] = 'e';
          decode['y'] = 'a';
          decode[' '] = ' ';
          cout << decode[text[i]];
  • 변준원 . . . . 16 matches
          srand(time(0)); // 바퀴벌레 랜덤 놓기
          int a = rand() % 5;
          int b = rand() % 5;
          int p = rand() %3 -1; // 랜덤 옮기기
          int q = rand() %3 -1;
          srand(time(0));
          int p = rand() %3 -1;
          int q = rand() %3 -1;
          int year,code2;
          int yearcharac;
          int code=5;
          code++;
          yearcharac=0;
          code++;
          yearcharac=1;
          code--;
          yearcharac=0;
          code++;
          yearcharac=1;
          code--;
  • Gof/Facade . . . . 15 matches
         예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
         subsystem classes (Scanner, Parser, ProgramNode, etc.)
         == Collaborations ==
         서브시스템은 인터페이스를 가진다는 점과 무엇인가를 (클래스는 state와 operation을 캡슐화하는 반면, 서브시스템은 classes를 캡슐화한다.) 캡슐화한다는 점에서 class 와 비슷하다. class 에서 public 과 private interface를 생각하듯이 우리는 서브시스템에서 public 과 private interface 에 대해 생각할 수 있다.
         Sample Code
         Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
         Scanner 클래스는 character 스트림을 얻어서 token의 스트림을 만든다.
         Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
          virtual void Parse (Scanner&, ProgramNodeBuilder &);
         Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
         class ProgramNodeBuilder {
          ProgramNodeBuilder ();
          virtual ProgramNode* NewVariable (
          virtual ProgramNode* NewAssignment (
          ProgramNode* variable, ProgramNode* expression
          virtual ProgramNode* NewRetrunStatement (
          ProgramNode* value
          virtual ProgramNode* NewCondition (
          ProgramNode* condition,
          ProgramNode* truePart, ProgramNode* falsePart
  • RandomWalk2 . . . . 15 matches
         이 페이지에 있는 활동들은 프로그래밍과 디자인에 대해 생각해 볼 수 있는 교육 프로그램이다. 모든 활동을 끝내기까지 사람에 따라 하루에서 삼사일이 걸릴 수도 있다. 하지만 여기서 얻는 이득은 앞으로 몇 년도 넘게 지속될 것이다. 문제를 풀 때는 혼자서 하거나, 그게 어렵다면 둘이서 PairProgramming을 해도 좋다.
          * 유사문제 RandomWalk
          * ObjectOrientedProgramming에서 이 문제를 처음 소개했다.
          * ["RandomWalk2/TestCase"]
          * ["RandomWalk2/TestCase2"]
          * 뼈대예시 ["RandomWalk2/ClassPrototype"] (OOP를 처음 다루는 경우가 아니라면 보지 않기를 권한다)
         ||이상규 || . ||C++ ||["RandomWalk2/상규"]||
         ||조현민 || . ||C++ ||["RandomWalk2/현민"]||
         ||인수 || . ||C++ ||["RandomWalk2/Insu"] ||
         ||영동 || . ||C ||["RandomWalk2/영동"] ||
         ||. || . ||C ||["RandomWalk2/Vector로2차원동적배열만들기"] ||
         ||신재동|| . ||Python||["RandomWalk2/재동"]||
         ||상규, 신재동|| 2시간 ||Python||["RandomWalk2/ExtremePair"]||
         ||[조현태] || ||C++ ||[RandomWalk2/조현태] ||
         만약 자신이 작성한 코드를 위키에 올리고 싶다면 {{{RandomWalk2/아무개}}} 패턴의 페이지 이름을 만들고 거기에 코드를 넣으면 된다. 이 때, 변경사항을 하나씩 완료함에 따라, 코드의 어디를 어떻게 바꿨는지(예컨대, 새로 클래스를 하나 만들어 붙이고, 기존 클래스에서 어떤 메쏘드를 끌어온 뒤에 다른 클래스가 새 클래스를 상속하게 했다든지 등) 그 변천 과정과 자신의 사고 과정을 요약해서 함께 적어주면 자신은 물론 남에게도 많은 도움이 될 것이다. 또한, 변경사항을 하나 완료하는 데 걸린 시간을 함께 리포팅하면 한가지 척도가 될 수 있겠다.
         최초의 요구사항 제시 이후에 나온 변경사항들이 따라오지 않을 것이라 가정하고, 만약 이 RandomWalk2 문제를 다시 접했다면 어떻게 접근하겠는가. 어떤 과정을 거쳐서 어떤 프로그램을 개발하겠는가?
         이와 비슷한 문제를 혹시 과거에 접해보았는가? 그 문제를 이제는 좀 다르게 풀것 같지 않은가? 그 문제와 RandomWalk2 경험에서 어떤 공통점/차이점을 끄집어 낼 수 있겠는가? 어떤 교훈을 얻었는가? 자신의 디자인/프로그래밍 실력이 늘었다는 생각이 드는가?
         다른 친구와 PairProgramming을 해서 이 문제를 다시 풀어보라. 그 친구는 내가 전혀 생각하지 못했던 것을 제안하지는 않는가? 그 친구로부터 무엇을 배울 수 있는가? 둘의 시너지 효과로 둘 중 아무도 몰랐던 어떤 것을 함께 고안해 내지는 않았는가?
  • ShellSort/문보창 . . . . 15 matches
         void move_turtle(const int * code, const int & nTurt, bool * isMove);
         void incoding(const char oldTurt[][MAX_NAME], const char newTurt[][MAX_NAME], const int & nTurt, int * code);
         void print_turtle(const char turt[][MAX_NAME], const int * code, const bool * isMove, const int & nTurt);
          int incode[MAX_TURTLE];
          incoding(oldTurt, newTurt, nTurt, incode);
          move_turtle(incode, nTurt, isMove);
          print_turtle(newTurt, incode, isMove, nTurt);
         void incoding(const char oldTurt[][MAX_NAME], const char newTurt[][MAX_NAME], const int & nTurt, int * code)
          code[j] = i;
         void move_turtle(const int * code, const int & nTurt, bool * isMove)
          if (code[count] != count)
          if (code[i] != count)
         void print_turtle(const char turt[][MAX_NAME], const int * code, const bool * isMove, const int & nTurt)
          if (isMove[j] && code[j] == i)
          show_turtle(turt[code[j]]);
  • SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 15 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.
         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.
         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:.
         We could encode boolean values some other way, and as long as we provided the same protocol, no client would be the wiser.
         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.
         Sometimes, encoding decisions can be hidden behind intermediate objects. And ASCII String encoded as eight-bit bytes hides that fact by conversing with the outside world in terms of Characters:
          ^Character asciiValue: (self basicAt: anInteger)
         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.
         * ''Have the client send a message to the encoded object. PAss a parameter to which the encoded object will send decoded messages.''
         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.
  • UML/CaseTool . . . . 15 matches
         === Diagramming ===
         ''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 ===
         ''[[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'' 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 이 유명하다.
         UML 케이스 툴과 달리 Visio 같은 경우에는 Diagramming 기능만을 제공한다. Diagramming Tool 이라고 분류하는 듯하다.
  • 정모/2013.5.6/CodeRace . . . . 15 matches
         = CodeRace 2013 =
          * 5월 6일 정모에 Code Race를 진행하였습니다.
          * 문제는 2006년도에 진행했던 Code Race 문제를 이용해서 진행되었습니다.
          * 원본 문제 : [CodeRace/20060105]
          * 프레젠테이션 : http://intra.zeropage.org:4000/CodeRace?presentation
         namespace CodeRace
          class Program
          FILE* fp = fopen("d:\\code_race_prob_1.txt","r");
          char storage[20][20]={};
          char second_storage[20][20]={};
          FILE *code_race=fopen(argv[1], "rt");
          // insert code here...
          while(!feof(code_race)){
          fscanf(code_race,"%s",note);
          FILE *code_race=fopen(argv[1], "rt");
          // insert code here...
          while(!feof(code_race)){
          fscanf(code_race,"%s",note);
  • JavaNetworkProgramming . . . . 14 matches
         *'''지금은 여기서 접는것이고. 누군가 Java Network Programming을 본다면 참여하기 바란다 ^^;;'''
         JAVA Network Programming
          System.out.write(msg.charAt(i) & 0xff); //16비트 유니코드로 구성된 String은 연속한 바이트로 매스킹한후 출력
          *이외에 File,FileDescriptor,RandomAccessFile에 관해 간략히 나오고 파일스트림과 같이 사용하는 예제가 나온다.
          *FileDescriptor클래스 : FileDescriptor 객체는 하위 레벨의 시스템 파일 설명자로의 핸들이다. 파일 설명자는 열려진 파일을 의미하며, 읽기 작업이나 쓰기 작업을 위한 현재의 파일 내의 위치와 같은 정보들을 포함한다. RandomAccessFile이나 FileOutputStream, FileInputStream을 사용하지 않고는 유용하게 FileDescritor를 생성할수 있는 방법은 없다 . --;
          *RandomAccessFile클래스 : 파일스트림을 사용하지않고 파일을 쉽게 다룰수 있음 장점은 파일스트림 클래스는 순차적 엑세스만이 가능하지만 이것은 임의의 엑세스가 가능하다. 여기선 RandomAccessFile클래스랑 파일 스트림을 같이 쓰는데 RandomAccessFile의 장점을 가지고 네트워크에서도 별다른 수정없이 사용할수있다. 예제는 밑에 --;
          protected RandomAccessFile file; //랜덤 엑세스 파일
          file = new RandomAccessFile(filename,"rw"); //RandomAccessFile은 파일이 존재하지 않으면 자동으로 파일생성 하고 그렇지
          /**@todo: implement this java.io.OutputStream abstract method*/
          protected RandomAccessFile file;
          this(new RandomAccessFile(filename,"rw")); // 자신의 또다른 생성자에게 넘겨준다.--;
          protected SeekableFileOutputStream(RandomAccessFile file) throws IOException{
          /**@todo: implement this java.io.OutputStream abstract method*/
          protected RandomAccessFile file; //랜덤 엑세스 파일
          this(new RandomAccessFile(filename,"r")); //랜덤엑세스 파일을 생성해서 다른 생성자로
          protected MarkResetFileInputStream(RandomAccessFile file) throws IOException{
          *ByteArrayOutputStream
          *ByteArrayInputStream
          *CharArrayWriter : 이클래스는 바이트스트림의 ByteArrayOutputStream과 대응대는것으로 Char배열로 문자를 내보낼수있다.
          *CharArrayReader
  • ScheduledWalk/석천 . . . . 14 matches
         ["데블스캠프2002"]때 소개했었던 StructuredProgramming 기법을 처음부터 끝까지 진행하는 모습을 보여드립니다. 중간에 버그가 발생하고, 그 버그를 수정한 소스를 그대로 실어봅니다. 그대로 따라해보셔도 좋을듯. 단, 중간 삽질과 컴파일 에러에 겁먹지만 않으신다면. ^^;
         Spec 과 Test Case 는 ["RandomWalk2"] 에 있습니다.
         StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
         (Hierarchy Input-Process-Output) 의 경우엔 다음과 같습니다. (그림 첨부 필요)
         사실 이 방법은 위험합니다. char [] 일 journey 의 사이즈를 모르고 있기 때문이죠. 만일 journey 에서 입력받은 여정의 크기가 클 경우 메모리에러를 발생시킬 수 있습니다. 하지만, 일단은 성능은 따지지 않고 '가장 간단하게 돌아가는 소스' 를 생각하기 위해 그냥 저렇게 남겨둬봅니다. 원래라면 배열의 최대값보다 더 큰 여정이 나왔을 경우의 처리 등을 생각해야 합니다. 단, 이 문제에 대해선 InputRoachJourney () 함수 내로 지역화가 어느정도 가능합니다. 여기서는 Structured Programming 식으로 접근하려는 것이 목적이여서, 세부적인 문제에 대해서는 좀 덜 신경썼습니다.
         (관련 페이지 참조, 또는 ["TestFirstProgramming"], ["UnitTest"])
          // 일종의 Test Code. 프로그램이 완료되었다고 했을때 제가 원하는 상황입니다.
          2. Test Code 를 확인해본다.
         void InitializeArray(int* board, int maxRow, int maxCol);
          /* ------------- excute test code -------------
          ------------- excute test code ------------- */
          InitializeArray(board, maxRow, maxCol);
         void InitializeArray(int* board, int maxRow, int maxCol) {
          InputEndCode();
         void InputEndCode() {
          int endCode;
          scanf("%d", &endCode);
         자. 이제 슬슬 ["RandomWalk2/TestCase"] 에 있는 ["AcceptanceTest"] 의 경우가 되는 예들을 하나하나 실행해봅니다.
         음.. Vector 자체로는 별 문제없어 보이네요. 그렇다면 다음은 실제 Roach를 이동시키는 Position 과 관련된 MoveRoach 부분을 살펴보죠. (여기서는 반드시 이동방향을 결정하는 함수와 실제 이동시키는 함수에 촛점을 맞춰야 합니다. board 배열의 값이 update 가 되기 위해선 어떠어떠한 값에 영향을 받는지를 먼저 머릿속에 그려야 겠죠.) 그림이 안 그려지는 경우에는 Debugger 와 Trace, break point 를 이용할 수 있습니다. 하지만, 구조화를 잘 시켜놓았을 경우 해당 문제발생시 버그 예상부분이 어느정도 그림이 그려집니다.
         일단 main ()을 test code 실행 모드로 바꾸고.
  • Unicode . . . . 14 matches
         = Unicode =
         {{{In computing, Unicode provides an international standard which has the goal of providing the means to encode the text of every document people want to store on computers. This includes all scripts in active use today, many scripts known only by scholars, and symbols which do not strictly represent scripts, like mathematical, linguistic and APL symbols.
         Establishing Unicode involves an ambitious project to replace existing character sets, many of them limited in size and problematic in multilingual environments. Despite technical problems and limitations, Unicode has become the most complete character set and one of the largest, and seems set to serve as the dominant encoding scheme in the internationalization of software and in multilingual environments. Many recent technologies, such as XML, the Java programming language as well as several operating systems, have adopted Unicode as an underlying scheme to represent text.
         official consortium : [http://www.unicode.org]
         introduction : [http://www.unicode.org/standard/translations/korean.html]
         specification : [http://www.unicode.org/versions/Unicode4.1.0/]
         UNICODE :
         http://www.unicode.org/standard/translations/korean.html
         EmEditor, UltraEdit, Vim 등의 에디터에서 인식합니다.
         http://www.unicode.org/charts/
         문자 집합(Character Set)이랑 인코딩(Encoding)에 대한 차이도 뭐 속시원히 가르쳐주는 데가 없더군요. 결국 시간이 지나다보니 스스로 알게 되었습니다만.. 확실히 외국 자료 빼면 국내는 -_-;
         asc 문자 만으로 해결되는 문화권 사람들에게 utf16,32 를 도입하라고 말해봐짜 별로 먹히지도 않을 것이고.. euc 등의 인코딩에서 unicode 로 넘어가는 단계에서의 혼란을 좀 줄이기 위한 과도기적 인코딩이라고 보는게 더 의미 있지 않을까 싶군요...
          * [http://www.joelonsoftware.com/articles/Unicode.html]
  • Garbage collector for C and C++ . . . . 13 matches
          * -DGC_OPERATOR_NEW_ARRAY -DJAVA_FINALIZATION 을 CFLAGS 에 추가.
          * C++ 에서 사용하려면 -DGC_OPERATOR_NEW_ARRAY 를 추가하여 컴파일 하는 것이 좋다.
         # Finalization and the test program are not usable in this mode.
         # gc.h before performing thr_ or dl* or GC_ operations.)
         # Must also define -D_REENTRANT.
         # Also requires -D_REENTRANT or -D_POSIX_C_SOURCE=199506L. See README.hp.
         # see README.linux. -D_REENTRANT may also be required.
         # is normally more than one byte due to alignment constraints.)
         # programs that call things like printf in asynchronous signal handlers.
         # code from the heap. Currently this only affects the incremental
         # -DGC_NO_OPERATOR_NEW_ARRAY declares that the C++ compiler does not support
         # the new syntax "operator new[]" for allocating and deleting arrays.
         # The former is occasionally useful for working around leaks in code
         # existing code, but it often does. Neither works on all platforms,
         # generate leak reports with call stacks for both malloc and realloc.
         # Reduces code size slightly at the expense of debuggability.
         # -DATOMIC_UNCOLLECTABLE includes code for GC_malloc_atomic_uncollectable.
         # fragmentation, but generally better performance for large heaps.
         # -DMMAP_STACKS (for Solaris threads) Use mmap from /dev/zero rather than
         # GC_scratch_alloc() to get stack memory.
  • MineFinder . . . . 13 matches
          * 시스템 : 듀론 1G 256RAM WIN 2000
          * 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
          * 현실에서 가상으로 다시 현실로. 암튼 '1002 보기에 좋았더라'. 여전히 멍청한 넘이고 주사위 던지는 넘이지만 (오호.. Random Open 때 주사위 돌리는 애니메이션을 넣을까. ^^;)
         beginner 에 해당하는 메뉴클릭시 발생하는 메세지는 WM_COMMAND 이고, ID는 wParam 으로 521이 날라간다. 즉, 해당 메뉴의 ID가 521 인 것이다. (우리는 컨트롤 아이디를 쓰지만 이는 resource.h 에서 알 수 있듯 전부 #define 매크로 정의이다.) 각각 찾아본 결과, 521,522,523 이였다.
         지뢰 버튼을 열고 깃발체크를 위한 마우스 클릭시엔 WM_LBUTTONDOWN, WM_RBUTTONDOWN 이고, 단 ? 체크관련 옵션이 문제이니 이는 적절하게 처리해주면 될 것이다. 마우스클릭은 해당 Client 부분 좌표를 잘 재어서 이를 lParam 에 넘겨주면 될 것이다.
          * [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 클래스는 처음 '막 짠' 코드로부터 지뢰찾기 제어부분 함수들을 클래스화한것임)
          * [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차제작소스]
         일종의 애니메이션을 하는 캐릭터와 같다. 타이머가 Key Frame 에 대한 이벤트를 주기적으로 걸어주고, 해당 Key Frame 에는 현재 상태에 대한 판단을 한뒤 동작을 한다. 여기서는 1초마다 MineSweeper 의 동작을 수행하게 된다.
          // TODO: Add your control notification handler code here
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your control notification handler code here
          RandomOpen ();
          pDlg->PrintStatus ("Action : Random Open rn");
         Program Statistics
          Function coverage: 52.1%
          Overhead Average 5
          Module function coverage: 52.1%
          2496.582 1.1 2506.333 1.1 27 CMineSweeper::RandomOpen(void) (minesweeper.obj)
          * [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=59&filenum=1 2차제작소스]
          * [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=60&filenum=1 3차제작소스]
  • 2011년독서모임 . . . . 12 matches
          * [김준석] - [http://www.yes24.com/24/goods/3258460?scode=032&OzSrank=1 다시 시작하는 힘]
          * [김수경] - [http://www.yes24.com/24/Goods/436056?Acode=101 성공한 CEO는 단순하게 해결한다]
          * [정의정] - [http://www.yes24.com/24/goods/419426?scode=029&OzSrank=6 선물]
          * [김준석] - [http://www.yes24.com/24/Goods/2542803?Acode=101 경청]
          * [김수경] - [http://www.yes24.com/24/goods/3380416?scode=029&OzSrank=1 내 심장을 쏴라]
          * [서지혜] - [http://www.yes24.com/24/Goods/377059?Acode=101 내 영혼이 따뜻했던 날들]
          * [강소현] - [http://www.yes24.com/24/Goods/3105115?Acode=101 엄마를 부탁해]<- [http://news.nate.com/view/20110416n04609?mid=n0507 요상한 비판기사ㅇㅁㅇㅋ]
          * [김수경] - [http://www.yes24.com/24/goods/17396?scode=032&OzSrank=1 파리대왕]
          * [서지혜] - [http://www.yes24.com/24/goods/3428863?scode=032&OzSrank=1 도가니]
          * [강소현] - [http://www.yes24.com/24/goods/431566?scode=032&OzSrank=1 공부가 가장 쉬웠어요]
          * 어렸을 때는 말도 어렵고, 내용 자체가 이게 뭔 말인지 이해가 안갔었다. 지금은 인간으로서 선한 쪽 일만 할 수 없기 때문에 선+악이 공존하는 압락사스가 등장했다는 것과, 어려워질 때마다 등장하여 이끌어준 데미안이라는 존재에 가까워져가는 싱클레어의 성장기라는 것은 이해가 간다. 하지만 싱클레어의 내면 중에 데미안의 어머님을 엄마 혹은 연인으로 동일시하는 것과 데미안이 프란츠 크로머로부터 구해줘도 고마워하지 않는 것은 이해가 가지 않는다. 나중에 한번 더 읽어야 할 필요성을 느꼈다. '''이해가 안갔던 영화'''에 대해서도 이야기를 나눴는데 내가 생각한 것은 [http://movie.naver.com/movie/bi/mi/basic.nhn?code=17368#story 마법의 빗자루]였다. 편지를 받아가며 공부했던 견습 마녀 1명 외에 다른 사람들은 편지를 보낸 사람이 사기꾼인지 인식 못했다던지, 사기꾼이었던 브라운 교수가 가진 나머지 반의 책을 찾기 위해 시장에 갔다가 그 책을 노리는 또 다른 무리를 만났는데 어느 순간 안보인다던지, 마법의 주문을 찾기 위해 애니메이션 세계로 갔는데 그 곳에서 가져온 물건은 사라진다던지, 사물을 움직이는 마법 주문을 공부하려던 이유가 전쟁에 도움이 되기 위해서이었다는 사실이라던지 무언가 내용 구성 측면에서 허술하고 이해 안가는 전개가 많았다. 하지만 침대를 통해 원하는 장소로 이동이 가능하고, 사물을 움직이고, 토끼로 변하는 등 어렸을 때 가족끼리 보기에는 좋았다.
          * [송지원] - [http://www.yes24.com/24/Goods/3685482?Acode=101 Legend] (배철수, 배순탁)
  • RandomWalk/임인택 . . . . 12 matches
         ToyProblems 에서 느낀바가 있어 RandomWalk 를 여러가지 방법으로 풀어보려 합니다.
         === 소스 1 : 2학년때 자료구조 숙제로 작성 (약간 Iterative한것 같다) ===
          srand((unsigned)time(NULL));
          k = rand()%DIRECTION;
          cout << "size is out of range.\ntry again.";
          cout << "point is out of range.\ntry again.";
          vector<vector<int> >::iterator iter;
          srand((unsigned)time(NULL));
          k = rand()%DIRECTION;
          Board::iterator iter;
          moveRoachRecursively(rand()%NUMOFDIRECTIONS);
          moveRoachRecursively((unsigned)(rand())%NUMOFDIRECTIONS);
          Board::iterator iterX;
          vector<int>::iterator iterY;
         import java.util.Random;
          Random rand;
          rand = new Random();
          int randNum;
          randNum = rand.nextInt()%dir_x.length;
          _board.walkOn(dir_x[randNum], dir_y[randNum]);
  • MobileJavaStudy/SnakeBite/Spec2Source . . . . 10 matches
          private final int snakeCellXRange;
          private final int snakeCellYRange;
          public Snake(int length, int xRange, int yRange) {
          snakeCellXRange = xRange;
          snakeCellYRange = yRange;
          if(head.snakeCellX < 0 || head.snakeCellY > snakeCellXRange - 1
          || head.snakeCellY < 0 || head.snakeCellY > snakeCellYRange - 1)
          private boolean drawAll;
          drawAll = true;
          public void drawBoard(Graphics g) {
          public void clearBoard(Graphics g) {
          public void drawSnakeCell(Graphics g, SnakeCell cell) {
          public void paint(Graphics g) {
          if(drawAll) {
          drawBoard(g);
          drawAll = false;
          drawSnakeCell(g, cell);
          g.drawString("Game Over!!", canvasWidth / 2, canvasHeight, Graphics.HCENTER | Graphics.BOTTOM);
          public void keyPressed(int keyCode) {
          int gameAction = getGameAction(keyCode);
  • MobileJavaStudy/SnakeBite/Spec3Source . . . . 10 matches
          private final int xRange;
          private final int yRange;
          public Snake(int length, int xRange, int yRange) {
          this.xRange = xRange;
          this.yRange = yRange;
          if(head.x < 0 || head.x > xRange - 1
          || head.y < 0 || head.y > yRange - 1)
          private boolean drawAll;
          drawAll = true;
          public void drawBoard(Graphics g) {
          public void clearBoard(Graphics g) {
          public void drawSnakeCell(Graphics g, SnakeCell cell) {
          public void paint(Graphics g) {
          if(drawAll) {
          drawBoard(g);
          drawAll = false;
          drawSnakeCell(g, cell);
          g.drawString("Game Over!!", canvasWidth / 2, canvasHeight, Graphics.HCENTER | Graphics.BOTTOM);
          public void keyPressed(int keyCode) {
          int gameAction = getGameAction(keyCode);
  • 데블스캠프2009/목요일/연습문제/MFC/정종록 . . . . 10 matches
          // ClassWizard generated virtual function overrides
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         ON_WM_QUERYDRAGICON()
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          if (!strAboutMenu.IsEmpty())
          pSysMenu->AppendMenu(MF_SEPARATOR);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
          // TODO: Add extra initialization here
         void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
          CDialog::OnSysCommand(nID, lParam);
         // If you add a minimize button to your dialog, you will need the code below
         // to draw the icon. For MFC applications using the document/view model,
         // this is automatically done for you by the framework.
          SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
          // Draw the icon
          dc.DrawIcon(x, y, m_hIcon);
         // The system calls this to obtain the cursor to display while the user drags
  • 정모/2011.4.4/CodeRace . . . . 10 matches
         = 레이튼 교수와 함께 하는 CodeRace =
          * PairProgramming
          * [정모/2011.4.4/CodeRace/강소현]
          * [정모/2011.4.4/CodeRace/김수경]
          * [정모/2011.4.4/CodeRace/서지혜]
         public class Raton {
          person Raton = new person("레이튼");
          Raton.city = "A";
          Raton.isOnShip = true;
          Raton.moveCity();
          Raton.moveCity();
          human raten, ruke, bad, pl1, pl2, pl3;
          a.h[0] = raten;
  • 프로그래밍/장보기 . . . . 10 matches
          double [][] rates = new double[num][2];
          e.printStackTrace();
          rates[i][0] = (double) price / weight;
          rates[i][1] = price;
          double minRate = rates[0][0];
          int minRateIndex = 0;
          if (rates[i][0] < minRate) {
          minRate = rates[i][0];
          minRateIndex = i;
          else if (rates[i][0] == minRate) {
          if (rates[i][1] < rates[minRateIndex][1]) {
          minRate = rates[i][0];
          minRateIndex = i;
          return (int) rates[minRateIndex][1];
          e.printStackTrace();
          e.printStackTrace();
  • ContestScoreBoard/문보창 . . . . 9 matches
         int settingRank(bool * isSumit, int * rankTeam);
         void concludeRank(ContestTeam * team, int * rankTeam, int numberSumitTeam);
         void printRank(ContestTeam * team, int * rankTeam, int numberSumitTeam);
          int rankTeam[NUMBER_TEAM];
          numberSumitTeam = settingRank(isSumit, rankTeam);
          concludeRank(team, rankTeam, numberSumitTeam);
          printRank(team, rankTeam, numberSumitTeam);
         int settingRank(bool * isSumit, int * rankTeam)
          rankTeam[count++] = i;
         void concludeRank(ContestTeam * team, int * rankTeam, int numberSumitTeam)
          if (team[rankTeam[top]].numberSuccessProblem < team[rankTeam[j]].numberSuccessProblem)
          SWAP(rankTeam[top], rankTeam[j], temp);
          else if (team[rankTeam[top]].numberSuccessProblem == team[rankTeam[j]].numberSuccessProblem)
          if (team[rankTeam[top]].penalty > team[rankTeam[j]].penalty)
          SWAP(rankTeam[top], rankTeam[j], temp);
         void printRank(ContestTeam * team, int * rankTeam, int numberSumitTeam)
          cout << rankTeam[i] << " " << team[rankTeam[i]].numberSuccessProblem << " " << team[rankTeam[i]].penalty << endl;
  • Linux/필수명령어/용법 . . . . 9 matches
         -i : 블록 사용 대신 incode 사용 정보를 보고한다.
         -5) SIGTRAP 6) SIGIOT 7) SIGBUS 8) SIGPPE
         - -c 파일명 : 파일이 문자 전용 파일(character special file)이면 참
         uudecodeuuencode
         uuencode는 USENET과 같이 ASC2 코드만을 다루는 미디어를 위해 바이너리 코드를 변환한다. uudecode는 그 반대의 동작을 수행한다.
         - uudecode [파일명]
         - uuencode [파일명] 이름
         기본적으로 표준 입력으로 읽거나 쓴다. uuencode는 디코딩되었을 때 사용될 파일의 이름도 함께 명시한다. e-mail 이나 USENET 은 바이너리 코드를 사용하지 않기 때문에 이 작업으로 바이너리 파일을 보내고 받을 수 있다.
         - $ uuencode canexe.Z canexe.Z > exemail.uu
         - 11: 32 am up 4 min, 2 users, load average : 0.00, 0.05, 0.02
         -c : 문자(character)의 개수만을 알고 싶을 때 사용한다.
  • WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 9 matches
         그래서 Programming in Lua라는 책을 도서관에서 빌려왔다. 아마 빌려온지 1주일은 됬겠지.
         근데 이상한데 UNICODE에서 계산해서 빼오더구만.
         추가 : 알고보니 UNICODE를 포함하는 방식중 하나라고한다. 근데 더 모르겠는데... U-00000800 - U-0000FFFF 범위에 들어간다고 하는데??
         import java.net.URLEncoder;
          * @param args
          char a = temp.charAt(0);
         보면 알겠지만 자바에서 작성되는건 UNICoDE이다(아마도?)
         기본적으로 "/World of Warcraft/interface/addons/애드온명" 으로 폴더가 만들어져있어야한다.
         <Frame name="HelloWoWFrame">
         </Frame>
         http://www.wowwiki.com/World_of_Warcraft_API
          i = random(25,70000)
          local unicode = first * 16* 16* 16 + second * 16 * 16 + third * 16 + fourth
          unicode = unicode - 0xAC00
          local cho = math.floor(unicode / 21/ 28)
          local goong = math.floor((unicode % (21*28))/28)
          local jong = math.floor((unicode % 28))
         === FrameEventHandling ===
         WOW API를 뒤지고 뒤져서 우선 Frame을 주고 Frame에 DefaultChatWindow에서 메시지를 받아야 할것 같다.
         우선 Lua에서 Frame을 불러오려면 CreateFrame을 해봐야겠지
  • 정모/2011.4.4 . . . . 9 matches
         == CodeRace ==
          * [정모/2011.4.4/CodeRace]
          1. CodeRace를 진행하고 들은 피드백 중
          1. 다음번엔 TDD로 CodeRace를 진행해보자는 의견이 있었습니다. 정말 좋은 의견인데 대책없이 적용시킬수는 없겠다는 생각이 드네요. 하지만 굉장히 매력적인 의견이었습니다. 여름방학이나 2학기때 Test-driven CodeRace를 꼭 해보고 싶네요.
          1. 빠르게 코딩하는 것에 집중하느라 PairProgramming의 장점을 못 느꼈다는 의견도 있었습니다. PairProgramming의 장점 중 하나는 혼자 코딩할 때보다 더 생산성이 높아진다는 점인데(그러니까 더 빠르게 짤 수 있다는 점인데...) 이번 CodeRace 그런 장점을 느낄 수 있는 기회가 되지 못한 것 같아 안타깝습니다. PairProgramming의 장점을 느껴볼 수 있는 다른 활동을 이번학기 내에 한번 시도해보고 싶네요. 제가 XPer 3월 정모에서 참여했던 나노블럭으로 페어 배우기를 해볼까 생각중입니다. 굉장히 재미있어요!
          1. CodeRace에 진행하고 관찰하는 입장으로 참여했는데 관찰자로서 느낀 것이 몇가지 있습니다.
          1. 가장 먼저 느낀 것은 정말로 PairProgramming이 집중도를 높여준다는 것입니다. 사실 컴퓨터를 앞에 놓고 정모를 진행하면 이것저것 다른 일 하느라 정모에 집중하지 않을 수 있는데 혼자 컴퓨터를 쓰는 것이 아니라 그런지 다들 CodeRace에 집중하시더라구요 ㅋㅋ
          * 이번 [CodeRace]에서는 시간이 없어서 좀 급하게 진행한 감이 있었습니다. 다음에 할 때는 시간 넉넉히 잡았으면 좋겠네요. 뭐 그렇게 되면 정모에서 잠깐 하기는 어려울 것 같지만... 튜터링 얘기를 했었는데 답변을 들으면서 그동안 정말 대충 했다고 생각했고 사람들을 제대로 가르칠 수 있을지 다시 한번 생각하게 됐습니다. 시행착오가 더 길어질 것 같지만... - [강성현]
  • ACM_ICPC/2013년스터디 . . . . 8 matches
          * dynamic programming - [http://211.228.163.31/30stair/eating_together/eating_together.php?pname=eating_together 끼리끼리]
          * 퀵 정렬,이진검색,parametric search - [http://211.228.163.31/30stair/guessing_game/guessing_game.php?pname=guessing_game&stair=10 숫자 추측하기], [http://211.228.163.31/30stair/sort/sort.php?pname=sort&stair=10 세 값의 정렬], [http://211.228.163.31/30stair/subsequence/subsequence.php?pname=subsequence&stair=10 부분 구간], [http://211.228.163.31/30stair/drying/drying.php?pname=drying&stair=10 건조], [http://211.228.163.31/30stair/aggressive/aggressive.php?pname=aggressive&stair=10 공격적인 소]
          * dynamic programming - [http://211.228.163.31/30stair/subset/subset.php?pname=subset 부분 합]
          * graph, dfs - [http://211.228.163.31/30stair/danji/danji.php?pname=danji 단지 번호 붙이기], [http://211.228.163.31/30stair/orders/orders.php?pname=orders orders], [http://211.228.163.31/30stair/bugslife/bugslife.php?pname=bugslife 짝 짓기], [http://211.228.163.31/30stair/sprime/sprime.php?pname=sprime 슈퍼 소수], [http://211.228.163.31/30stair/snail_trails/snail_trails.php?pname=snail_trails 달팽이]
          * BackTracking문제 1문제
          * [http://stackoverflow.com/questions/2631726/how-to-determine-the-longest-increasing-subsequence-using-dynamic-programming Time Complexity O(n log n) 의 Up Sequence]
          * [http://codeforces.com/contest/284/problem 284회vol2.]
          * [http://code.google.com/codejam/contest/2437488/dashboard 코드잼_1C라운드]: 857등
          * 김태진 : Dynamic Programming 6.1~6.3
          * Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source에서부터 dist(v) = min{dist(v) + l(u,v)}사용
          * 곽병학 : Hoffman code - 쓸데없을거 같음..
          * Stack부분에서 Histogram 문제
          * Array에서 특정 subset의 합이 가장 크도록 하는 부분찾기.
          * 김태진 : Dynamic Programming
          * Bar_code 문제 - http://211.229.66.5/30stair/bar_code/bar_code.php?pname=bar_code
          * Coder's High 2013 (Algospot 알고리즘대회) 풀기
          * [http://www.algospot.com/judge/problem/list/?tag=&source=Coder%27s+high+2013&author= 링크]
  • BabyStepsSafely . . . . 8 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,".
         pulbic class GeneratePrimes
          int [] primes = generatePrimes(maxValue);
          /** @param maxValue is the generation limit.
          public static int [] generatePrimes(int maxValue)
          // declarations
          int s = maxValue+1; // size of array
          // initialize array to true.
          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.
         Class TestsGeneratePrimes
         import junit.framework.*;
         public class TestGeneratePrimes extends TestCase
          public TestGeneratePrimes(String name)
          int [] centArray = GeneratePrimes.generatePrimes(100);
          assertEquals(centArray.length, 25);
          assertEquals(centArray[24], 97);
  • MoreEffectiveC++/Operator . . . . 8 matches
         = Operator =
          * C++에서는 크게 두가지 방식의 함수로 형변환을 컴파일러에게 수행 시키킨다:[[BR]] '''''single-argument constructors''''' 와 '''''implicit type conversion operators''''' 이 그것이다.
         class Rational {
          Rational( int numerator = 0, int denominator = 1);
          * '''''implicit type conversion operator''''' 은 클래스로 하여금 해당 타입으로 ''return'' 을 원할때 암시적인 변화를 지원하기 위한 operator이다. 아래는 double로의 형변환을 위한 것이다.
         class Rational{
          operator double() const;
         Rational r(1,2);
         Rational (1,2);
         '''operator<<'''는 처음 Raional 이라는 형에 대한 자신의 대응을 찾지만 없고, 이번에는 r을 ''operator<<''가 처리할수 있는 형으로 변환시키려는 작업을 한다. 그러는 와중에 r은 double로 암시적 변환이 이루어 지고 결과 double 형으로 출력이 된다.[[BR]]
         class Raional{
         Rational r(1,2);
         이런 예로 C++ std library에 있는 string이 char*로 암시적 형변환이 없고 c_str의 명시적 형변환 시킨다.
         class Array{
          Array ( int lowBound, int highBound );
          Array ( int size )
          T& operator[] (int index)
         bool operator==( const Array< int >& lhs, const Array<int>& rhs);
         Array<int> a(10);
         Array<int> b(10);
  • RefactoringDiscussion . . . . 8 matches
         Martin Folwer의 Refactoring p326(한서), 10장의 Parameterize Method 를 살펴보면 다음과 같은 내용이 나온다.
          double result = usageInRange(0, 100) * 0.03; //--(1)
          result += usageInRange (100,200) - 100) * 0.05;
          result += usageInRange (200, Integer.MAX_VALUE) * 0.07;
         protected int usageInRange(int start, int end) {
         위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로 호출하는게 맞을 듯 하다.
          * 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
         로직이 달라졌을 경우에 대한 검증에 대해서는, 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 로 넣어주게끔 하고, 같은 일을 하는 부분에 대해선 묶음으로서 중복을 줄이고, 추후 중복이 될 부분들이 적어지도록 하자는 것이겠죠. -- 석천
         ps. 현실에서 정말 모든 상태 공간/기계가 고대로 유지되는 리팩토링은 없습니다. 가장 대표적인 Extract a Method 조차도 모든 경우에 동일한 행동 유지를 보장할 수는 없습니다. 1+2가 2+1과 같지 않다고 말할 수 있습니다. 하지만 우리에게 의미있는 정도 내에서 충분히 서로 같다고 말할 수도 있습니다 -- 물론 필요에 따라 양자를 구분할 수도 있어야겠지만, 산수 답안 채점시에 1+2, 2+1 중 어느 것에 점수를 줄 지 고민할 필요는 없겠죠.
         > 위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로
  • RoboCode . . . . 8 matches
          * 로보코드(Robocode)란 스크린 상에서 전투하는 자바 객체인 자바 로봇을 만들어 개발자들이 자바를 배울 수 있도록 하는 프로그래밍 게임입니다.
         * [http://robocode.sourceforge.net/ RoboCode Central(English)]
          * [http://www-106.ibm.com/developerworks/java/library/j-robocode/ IBM RoboCode site (English)]
          * [http://www-128.ibm.com/developerworks/kr/robocode/ IBM RoboCode site (Korean)]
          * [http://robocode.alphaworks.ibm.com/docs/robocode/index.html RoboCode API(English)]
          * [http://www-128.ibm.com/developerworks/kr/library/j-robocode/ 로보코드 시작하기(한글)]
          * Upload:robocode-setup-1.0.7.jar
         ||[RoboCode/random], [RoboCode/sevenp], [로보코드/베이비] , [RoboCode/msm], [RoboCode/siegetank],[RoboCode/ing] || 2005년 데블스캠프 ||
          [erunc0/RoboCode] 페이지도...
  • XMLStudy_2002/Encoding . . . . 8 matches
         == XML과 unicode ==
         === XML에서의 unicode 사용에 대한 사이트 ===
          *유니코드에 대해서 자세히 알고 싶거나 참조해야 하는 경우 : [http://www.unicode.org/]
          *Unicode와 XML등과 같은 Markup Language 등에 대해 W3C와 Unicode.org 멤버들이 작성한 Technical Report : [http://www.w3.org/TR/1999/WD-unicode-xml-19990928/]
          *다국어 지원 웹 컨텐츠 제작시 XML과 Unicode의 결합을 역설한 내용 : [http://www.tgpconsulting.com/articles/xml.htm]
         Shuart Culshaw. "Towards a Truly WorldWide Web. How XML and Unicode are making it easier to publish multilingual
  • 3N+1Problem/1002_2 . . . . 7 matches
         도저히 수열스럽지 않아서 다시 숫자들 간의 관계를 이리 적어보던중, 지난번의 UglyNumber 에서의 문제접근법(DynamicProgramming)을 해봄. 혹시 앞의 계산값이 뒤의 계산에 이용되지 않을까 생각을 해보다.
          return [self.value(each) for each in range(i,j)]
          def maxCycleLengthInRange(self,i,j):
          for each in range(i,j):
          >>> [c.value(n) for n in range(1,5)]
          >>> c.maxCycleLengthInRange(1,10)
          >>> c.maxCycleLengthInRange(100,200)
          >>> c.maxCycleLengthInRange(201,210)
          >>> c.maxCycleLengthInRange(900,1000)
          print c.maxCycleLengthInRange(1,999999)
          http://gochi.pe.kr/upload/img/code/3npuls1problem.jpg [[BR]]
  • CodeRace/20060105 . . . . 7 matches
         SVN 저장소: svn://zeropage.org/home/SVN/project/CodeRace/20060105
         || 상협, 유선 || [CodeRace/20060105/상협유선] ||
         || 아영, 보창 || [CodeRace/20060105/아영보창] ||
         || 민경, 선호, 재선 || [CodeRace/20060105/민경선호재선] ||
         || 도현, 승한 || [CodeRace/20060105/도현승한] ||
         || 휘동 || [CodeRace/20060105/Leonardong] ||
         [CodeRace]
  • Map연습문제/임영동 . . . . 7 matches
          //맵 객체들의 벡터인 decoder를 선언
          vector< map<char, char> > decoder;
          decoder.push_back(rule1);
          decoder.push_back(rule2);
          decoder.push_back(rule3);
          vector< map<char, char> >::iterator it;
          for(it=decoder.begin();it!=decoder.end();++it)
          for(string::iterator i=input.begin();i!=input.end();i++)
  • PNGFileFormat/FilterAlgorithms . . . . 7 matches
          * Raw(x) : 실제 픽셀값
         Sub(x) = Raw(x) - Raw(x-bpp) 즉, Raw(x) = Sub(x) + Raw(x-bpp)
         === Filter type 3 : Average ===
         Raw(x) = Paeth(x) + PaethPredictor(Raw(x-bpp), Prior(x), Prior(x-bpp))
  • PerformanceTest . . . . 7 matches
          BOOL QueryPerformanceFrequency(LARGE_INTEGER* param)
          BOOL QueryPerformanceCounter(LARGE_INTEGER* param)
          int getRandNum (int nBoundary);
          int i, nRandNum, nLocation;
          nRandNum = getRandNum (nBoundary);
          nLocation = BinarySearch (nBoundary, S, nRandNum);
          printf ("random number : %d \n", nRandNum);
          int getRandNum (int nBoundary) {
          srand (t);
          return rand () % nBoundary;
          short millitm ; /* fraction of second (in milliseconds) */
  • PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 7 matches
         || [PragmaticVersionControlWithCVS/AccessingTheRepository] || [PragmaticVersionControlWithCVS/UsingTagsAndBranches] ||
         branch:
         branches: 1.1.1;
         ? SourceCode/tmpdoc.ilg
         ? SourceCode/tmpdoc.toc
         RCS file: /home/CVSROOT/PP/doc/StarterKit/pragprog.sty,v
         Merging differences between 1.16 and 1.17 into pragprog.sty
         M pragprog.sty
         cvs server: Updating SourceCode
         A SourceCode/CommonCommands.tip
         M SourceCode/HowTo.tip
         A SourceCode/Releases.tip
         cvs server: Updating SourceCode/images
         cvs server: Updating UnitTest/code
         U UnitTest/code/Age.java
         U UnitTest/code/TestMyStack.java
         U UnitTest/code/testdata.txt
         cvs server: Updating UnitTest/code/rev1
         cvs server: Updating UnitTest/code/rev2
         cvs server: Updating UnitTest/code/rev3
  • PyUnit . . . . 7 matches
         === Python Unit Testing Framework PyUnit 에 대해서 ===
          * PyUnit는 Python 에 기본적으로 포함되어있는 UnitTest Framework library이다. 하지만, UnitTest작성에 대한 기본적인 개념들을 쉽게 담고 있다고 생각하여 공부중. (솔직히 C++로 UnitTest할 엄두 안나서. --; Python으로 먼저 프로토타입이 되는 부분을 작성하고 다른 언어로 포팅하는 식으로 할까 생각중)
          * http://junit.org - Java Unit Test Framework 모듈.
         테스팅을 하기 위해 Python의 assert 구문을 사용한다. testcase가 실행될 때 assertion을 실행하면 AssertionError 가 일어나고, testing framework는 이 testcase를 'failure' 했다고 정의할 것이다. 'assert' 를 명시적으로 써놓지 않은 부분에서의 예외가 발생한 것들은 testing framework 에서는 'errors'로 간주한다.
         === 재사용하는 set-up code : 'fixtures' 만들기. ===
         다행스럽게도 우리는 setUp 라는, testing framework가 테스팅을 할때 자동으로 호출해주는 메소드를 구현함으로서 해결할 수 있다.
         만일 setUp 메소드가 테스트중 예외를 발생할 경우 framework는 이 테스트에 error를 가지고 있다고 생각할 것이다. 그리고 runTest 메소드가 실행되지 않을 것이다.
         이러한 testing code를 위한 작업환경을 'fixture' 라고 한다.
         testcode는 'widgettests.py' 처럼 따로 테스트코드들에 대한 모듈을 두는 것이 여러가지면에서 장점을 지닌다.
          * 코드와 testcode가 쉽게 분리된다.
          * 특별한 이유없이 testcode를 test받을 code에 맞추려는 유혹을 덜 수 있다.
          * 테스팅 전략이 바뀌어도, source code를 고칠 필요가 없어진다.
         PyUnit test framework는 테스트를 수행하기 위해 'TestRunner' 클래스를 사용한다. 가장 일반적인 TestRunner는 TextTestRunner이다.
         ["UnitTest"], ["ExtremeProgramming"]
  • Refactoring/MakingMethodCallsSimpler . . . . 7 matches
         == Add Parameter ==
          ''Add a parameter for an object that can pass on this information''
         http://zeropage.org/~reset/zb/data/AddParameter.gif
         == Remove Parameter ==
         A parameter is no longer used by the method body.
         http://zeropage.org/~reset/zb/data/RemoveParameter.gif
         == Separate Query from Modifier ==
         http://zeropage.org/~reset/zb/data/SeparateQueryFromModifier.gif
         == Parameterize Method ==
         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''
         You are getting several values from an object and passing these values as parameters in a method call.
         int low = daysTempRange().getLow();
         int high = days.TempRange().getHight();
         withinPlan = plan.withinRange (low, high);
         withinPlan = plan.withinRange (daysTempRange());
  • SummationOfFourPrimes/1002 . . . . 7 matches
         맨 처음에 문제를 읽고 대략 연습장에 문제에의 각 변수들이 될만한 부분들을 보았다. 일단 소수들의 합이라 하고, 4자리의 합이라고 한다. 대략 pseudo code 를 다음와 같이 작성해보았다.
          for i in range(2,self.size+1):
          for i in range(sizeOfList):
          for j in range(sizeOfList):
          for k in range(sizeOfList):
          for l in range(sizeOfList):
         from __future__ import generators
          for i in range(2,self.size+1):
          for i in range(sizeOfList):
          for j in range(sizeOfList):
          for k in range(sizeOfList):
          for l in range(sizeOfList):
          n = int(raw_input('input number : '))
          Random listing order was used
          Random listing order was used
          Random listing order was used
          Random listing order was used
          Random listing order was used
          Random listing order was used
          for i in range(sizeOfList):
  • 강희경/메모장 . . . . 7 matches
         struct ArratData{
          int rank;
         void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray);
         void PrintArray(struct ArratData* aArrayData, struct ScoreData* aArray);
         void RankScores(struct ScoreData* aArray);
         void PrintRanks(struct ScoreData* aArray);
          struct ScoreData scoreArray[NUMBER_OF_SCORES];
          struct ArratData arrayData;
          InputScores(&arrayData, scoreArray);
          PrintArray(&arrayData, scoreArray);
          RankScores(scoreArray);
          PrintRanks(scoreArray);
         void InputScores(struct ArratData* aArrayData, struct ScoreData* aArray){
          scanf("%d", &(aArray[count].score));
          aArray[count].rank = 1;
          aArrayData->min = aArray[count].score;
          aArrayData->max = aArray[count].score;
          aArrayData->sum = aArray[count].score;
          if(aArray[count].score < aArrayData->min){
          aArrayData->min = aArray[count].score;
  • 3N+1Problem/강희경 . . . . 6 matches
         범위(Range)를 인위적으로 줄여야한다는 결론에 도달.
          if(IsInRange(aMin, aMax, aNumber) and aBinaryMap[aNumber-aMin]):
         def InputRange():
          rangeOfMap = aMax - aMin + 1
          binaryMap = range(rangeOfMap)
          for i in range(rangeOfMap):
          for i in range(aMin, aMax+1):
         def IsInRange(aMin, aMax, aNumber):
          for i in range(aMin, aMax/2+1):
          while(IsInRange(aMin, aMax, 2*tempI)):
          min, max = InputRange()
  • Google/GoogleTalk . . . . 6 matches
         = code =
          my $unencoded_url = 'http://www.google.com/search?hl=ko&num=10&q='.$q;
          my $url = URI::URL->new($unencoded_url);
          print "unencoded: " . $unencoded_url ."\n" if $debug;
          print "encoded: " . $url->as_string . "\n" if $debug;
          my $browser = LWP::UserAgent->new();
          my $select = rand($#next_words+1);
  • ImmediateDecodability/문보창 . . . . 6 matches
          char code[MAX][11];
          int nCode, len;
          cin.getline(code[i], 11, '\n');
          if (code[i][0] == '9')
          nCode = i;
          for (i=0; i<nCode; i++)
          for (j=0; j<nCode; j++)
          len = strlen(code[i]);
          if (code[i][k] != code[j][k])
  • JTDStudy/첫번째과제/정현 . . . . 6 matches
          Extractor extractor;
          extractor= new Extractor();
          baseBall= new BaseBall(beholder, extractor);
          String number= extractor.getRandomBall();
          BaseBall game= new BaseBall(beholder, extractor);
          BaseBall baseBall= new BaseBall(new Beholder(), new Extractor());
          private Extractor extractor;
          public BaseBall(Beholder beholder, Extractor extractor) {
          this.extractor= extractor;
          beholder.setAnswer(this.extractor.getRandomBall());
          char[] chars= number.toCharArray();
          numbers= string.toCharArray();
          char[] inputChars= string.toCharArray();
         public class Extractor {
          public String getRandomBall() {
          int index= (int)(Math.random()*numbers.size());
         public class Extractor {
          public String getRandomBall(int nBall) {
          numbers.add(getRandom(ballLimit(nBall)));
          private String getRandom(int range) {
  • JavaStudy2002/영동-3주차 . . . . 6 matches
         Starter: ["Yggdrasil"]
         사소한 것이지만 지적한다면 class main 의 이름을 Main 으로 바꾸시기를 강력(?) 추천합니다. Java 에는 지켜야하는 규칙인 문법외에 [http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 코딩 약속]을 추천하고 있씁니다. 과거 MS라면 헝가리안표기법 이겠지요? 현재의 .net 에서 헝가리안표기법은 없어졌습니다. --["neocoin"]
          System.out.println("RandomWalk");
          * word rap 하는 부분의 중복을 제거 했습니다.
          // WordRap 을 여기에서 수행
          System.out.println("RandomWalk");
          // Wordrap 코드 수정
          System.out.println("RandomWalk");
          * char jouney -> ArrayList 로 대체
          * 방향을 표현하는 Magic number 제거, 여정인 Board.jouney 가 ArrayList 이므로, String을 넣습니다. 일종의 comment mixing이 되겠지요.
         import java.util.ArrayList;
          // char jouney -> ArrayList 로 대체
          protected ArrayList jouney = new ArrayList();
          // Wordrap 코드 수정
          public ArrayList getJouney() {
          System.out.println("RandomWalk");
          ArrayList jouney = aboard.getJouney();
          // 출력부분 ArrayList 로 따른 변경
         [http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/ArrayList.html ArrayList] 나, [http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/HashMap.html HashMap] 은 보통의 자바 책들에서 나오는 Vector 와 Hashtable 과 동일한 역할을 합니다. 1.3에서 추가된 collection framework에서 위의 두가지를 더 추천해서 이용했습니다.
         collection framework를 알고 싶으시면 [http://java.sun.com/j2se/1.4/docs/guide/collections/ 여기] 에서 보세요. 그리고 보셨으면 저에게 세미나 시켜주세요. 쿨럭.. --["neocoin"]
  • MoreEffectiveC++/Appendix . . . . 6 matches
         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
         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
          * '''''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
          * '''''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
         Each chapter in this book starts with some C++ software that has been published as an example of how to do something correctly. Cargill then proceeds to dissect — nay, vivisect — each program, identifying likely trouble spots, poor design choices, brittle implementation decisions, and things that are just plain wrong. He then iteratively rewrites each example to eliminate the weaknesses, and by the time he's done, he's produced code that is more robust, more maintainable, more efficient, and more portable, and it still fulfills the original problem specification. Anybody programming in C++ would do well to heed the lessons of this book, but it is especially important for those involved in code inspections. ¤ MEC++ Rec Reading, P21
         One topic Cargill does not discuss in C++ Programming Style is exceptions. He turns his critical eye to this language feature in the following article, however, which demonstrates why writing exception-safe code is more difficult than most programmers realize: ¤ MEC++ Rec Reading, P22
          * '''''Advanced C++: Programming Styles and Idioms''''', James Coplien, Addison-Wesley, 1992, ISBN 0-201-54855-0. ¤ MEC++ Rec Reading, P26
         I generally refer to this as "the LSD book," because it's purple and it will expand your mind. Coplien covers some straightforward material, but his focus is really on showing you how to do things in C++ you're not supposed to be able to do. You want to construct objects on top of one another? He shows you how. You want to bypass strong typing? He gives you a way. You want to add data and functions to classes as your programs are running? He explains how to do it. Most of the time, you'll want to steer clear of the techniques he describes, but sometimes they provide just the solution you need for a tricky problem you're facing. Furthermore, it's illuminating just to see what kinds of things can be done with C++. This book may frighten you, it may dazzle you, but when you've read it, you'll never look at C++ the same way again. ¤ MEC++ Rec Reading, P27
         If you have anything to do with the design and implementation of C++ libraries, you would be foolhardy to overlook ¤ MEC++ Rec Reading, P28
         Carroll and Ellis discuss many practical aspects of library design and implementation that are simply ignored by everybody else. Good libraries are small, fast, extensible, easily upgraded, graceful during template instantiation, powerful, and robust. It is not possible to optimize for each of these attributes, so one must make trade-offs that improve some aspects of a library at the expense of others. Designing and Coding Reusable C++ examines these trade-offs and offers down-to-earth advice on how to go about making them. ¤ MEC++ Rec Reading, P30
         The first part of the book explains C++ for FORTRAN programmers (now there's an unenviable task), but the latter parts cover techniques that are relevant in virtually any domain. The extensive material on templates is close to revolutionary; it's probably the most advanced that's currently available, and I suspect that when you've seen the miracles these authors perform with templates, you'll never again think of them as little more than souped-up macros. ¤ MEC++ Rec Reading, P33
          * '''''Design Patterns''''': Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1995, ISBN 0-201-63361-2. ¤ MEC++ Rec Reading, P35
         This book provides an overview of the ideas behind patterns, but its primary contribution is a catalogue of 23 fundamental patterns that are useful in many application areas. A stroll through these pages will almost surely reveal a pattern you've had to invent yourself at one time or another, and when you find one, you're almost certain to discover that the design in the book is superior to the ad-hoc approach you came up with. The names of the patterns here have already become part of an emerging vocabulary for object-oriented design; failure to know these names may soon be hazardous to your ability to communicate with your colleagues. A particular strength of the book is its emphasis on designing and implementing software so that future evolution is gracefully accommodated (see Items 32 and 33). ¤ MEC++ Rec Reading, P36
          * '''''Design Patterns CD''''': Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley, 1998, ISBN 0-201-63498-8. ¤ MEC++ Rec Reading, P38
  • MoreEffectiveC++/Techniques2of3 . . . . 6 matches
          String& operator=(const String& rhs);
         String& String::operator=(const String& rhs)
         다음에 구현해야할 사항은 할당(assignment)관련한 구현 즉 operator= 이다. 복사 생성자(copy constructor)를 호출이 아닌 할당은 다음과 같이 선언되고,
          String& operator=(const String& rhs);
         String& String::operator=(const String& rhs)
         참조세기가 적용된 문자열에 대하여 둘러 봤는데, 이번에는 배열에 관한(array-bracket) 연산자들 "[]" 이녀석들에 관해서 생각해 보자. 클래스의 선언은 다음과 같다.
          const char& operator[](int index) const; // const String에 대하여
          char& operator[](int index); // non-const String에 대하여
         const char& String::operator[](int index) const
         하지만 non-const의 operator[]는 이것(const operator[])와 완전히 다른 상황이 된다. 이유는 non-const operator[]는 StringValue가 가리키고 있는 값을 변경할수 있는 권한을 내주기 때문이다. 즉, non-const operator[]는 자료의 읽기(Read)와 쓰기(Write)를 다 허용한다.
         참조 세기가 적용된 String은 수정할때 조심하게 해야 된다. 그래서 일단 안전한 non-const operator[]를 수행하기 위하여 아예 operator[]를 수행할때 마다 새로운 객체를 생성해 버리는 것이다. 그래서 만든 것이 다음과 같은 방법으로 하고, 설명은 주석에 더 자세히
         char& String::operator[](int index) // non-const operator[]
          // break off a separate copy of the value for ourselves
         이러한 생각은 컴퓨터 과학에서 오랫동안 다루어 져있던 것이다. 특히나 OS(operating system)설계시에 Process가 공유하고 있던 데이터를 그들이 수정하고자 하는 부분을 복사해서 접근을 허락 받는 루틴에서 많이 쓰인다. 흔이 이러한 기술에 관해서 copy-on-write(쓰기에 기반한 복사, 이후 copy-on-write를 그냥 쓴다.) 라고 부른다.
         String의 복사 생성자는 이러한 상태를 감지할 방법이 없다. 위에서 보듯이, s2가 참고할수 있는 정보는 모두 s1의 내부에 있는데, s1에게는 non-const operator[]를 수행하였는지에 관한 기록은 없다.
         간단한 플래그 하나를 추가하는 것으로 이 문제는 해결된다. 이번 수정 버전은 공유의 여부를 허락하는 sharable 인자를 더한 것이다. 코드를 보자.
         그리고 이 shareable인자는 non-const operator[]가 호출될때 false로 변경되어서 이후, 해당 자료의 공유를 금지한다.
         char& String::operator[](int index)
          RCObject& operator=(const RCObject& rhs);
         RCObject& RCObject::operator=(const RCObject&)
  • Refactoring/OrganizingData . . . . 6 matches
         == 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.''
          * You have a literal number with a paricular meaning. [[BR]] ''Crate a constant, name it after the meaning, and replace the number with it.''
          return mass * GRAVITATION_CONSTNAT * height;
          static final double GRAVITATIONAL_CONSTANT = 9,81;
          * You need to interface with a record structure in a traditional programming environment. [[BR]]''Make a dumb data object for the record.''
         == Replace Type Code with Class p218 ==
          * A class has a numeric type code that does not affect its behavior. [[BR]] ''Replace the number with a new class.''
         http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithClass.gif
         == Replace Type Code with Subclasses p223 ==
          * You have an immutable type code that affects the bahavior of a class. [[BR]] ''Replace the type code with subclasses.''
         http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithSubclasses.gif
         == Replace Type code with State/Strategy p227 ==
          * You have a type code that affects the behavior of a class, but you cannot use subclassing. [[BR]] ''REplace the type code with a state object.''
         http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithStateStrategy.gif
  • Ruby/2011년스터디/세미나 . . . . 6 matches
          {| parameters| do something with parameters..}
          * [http://rubyforge.org/frs/?group_id=1109 RRobots]를 이용한 RubyLanguage Robocode
          * 를 하려고 했지만 tcl 문제로 CodeRace로 변경
          * Pair Programming : Pair를 밸런스에 맞게 짜드림.
          * '''레이튼 교수와 함께하는 CodeRace'''
          1. CodeRace를 준비하며 간단한 코드를 짜보았는데 생각보다 어려워서 역시 책만 읽어서는 안 되겠다는 생각이 들었습니다. 그냥 돌아가게 짜라면 짤 수 있겠는데 언어의 특성을 살려 ''우아하게'' 짜려니 어렵네요.
          1. 시간에 치여 준비했던 CodeRace를 못 한 것이 아쉽지만 시간이 좀 걸렸더라도 지혜가 RubyLanguage 문법을 설명할 때 다같이 실습하며 진행했던 것은 좋았습니다. 그냥 듣기만 했으면 지루하고 기억에 안 남았을지도 모르는데 직접 따라하며 문법을 익히는 방식이라 참여하신 다른 분들도 더 재미있고 뭔가 하나라도 기억에 확실히 남는 시간을 보내셨을거라는 생각이 드네요.
          1. 아쉽게도 못했던 CodeRace는 특별한 더 좋은 다른 일정이 없는 한 다음주나 다다음주 정모에서 진행하고자 합니다. - [김수경]
  • TheJavaMan/스네이크바이트 . . . . 6 matches
         {{{~cpp import java.util.Random;
          Random rmd = new Random();
          public void Trace()
          tSnake[0].Trace();
          tSnake[j].Trace();
         import java.util.Random;
         public class Board extends Frame{
          Graphics gb;
          setBackground(Color.GRAY);
          direction = KeyEvent.getKeyText(e.getKeyCode());
          Random rmd = new Random();
          public void update(Graphics g){
          public void paint(Graphics g){
          gb=buff.getGraphics();
          gb.drawImage(snake, x[i], y[i], this);
          gb.drawImage(apple, bx, by, this);
          g.drawImage(buff, 0, 0, this);
          public void Trace()
          tSnake[0].Trace();
          tSnake[j].Trace();
  • TwistingTheTriad . . . . 6 matches
         C++ 시스템의 Taligent 로부터 유래. Dolphin Smalltalk 의 UI Framework. 논문에서는 'Widget' 과 'MVC' 대신 MVP 를 채택한 이유 등을 다룬다고 한다. 그리고 MVC 3 요소를 rotating (or twisting)함으로서 현재 존재하는 다른 Smalltalk 환경보다 쓰기 쉽고 더 유연한 'Observer' based framework 를 만들 것을 보여줄 것이다.
         with a widget-based system it is easy to avoid having to think about the (required) separation between the user interface and the application domain objects, but it is all too easy to allow one's domain code to become inextricably linked with the general interface logic.
         it was much more that the widget system was just not flexible enought. We didn't know at the time, but were just starting to realise, that Smalltalk thrives on plugability and the user interface components in out widget framework were just not fine-grained enough.
         One example of this deficiency surfaced in SmalltalkWorkspace widget. This was originally designed as a multiline text-editing component with additional logic to handle user interface commands such as Do-it, Show-it, Inspect-it etc. The view itself was a standard Windows text control and we just attached code to it to handle the workspace functionality. However, we soon discovered that we also wanted to have a rich text workspace widget too. Typically the implementation of this would have required the duplication of the workspace logic from the SmalltalkWorkspace component or, at least, an unwarranted refactoring session. It seemed to us that the widget framework could well do with some refactoring itself!
         In MVC, most of the application functionality must be built into a model class known as an Application Model. It is the reponsibility of the application model to be the mediator between the true domain objects and the views and their controllers. The views are responsible for displaying the domain data while the controller handle the raw usr gestures that will eventually perform action on this data. So the application model typically has method to perform menu command actions, push buttons actions and general validation on the data that it manages. Nearly all of the application logic will reside in the application model classes. However, because the application model's role is that of a go-between, it is at times necessary for it to gain access to the user interface directly but, because of the Observer relationship betweeen it and the view/controller, this sort of access is discouraged.
         For example, let's say one wants to explicitly change the colour of one or more views dependent on some conditions in the application model. The correct way to do this in MVC would be to trigger some sort of event, passing the colour along with it. Behaviour would then have to be coded in the view to "hang off" this event and to apply the colour change whenever the event was triggered. This is a rather circuitous route to achieving this simple functionality and typically it would be avoided by taking a shoutcut and using #componentAt : to look up a particular named view from the application model and to apply the colour change to the view directly. However, any direct access of a view like this breaks the MVC dictum that the model should know nothing about the views to which it is connected. If nothing else, this sort of activity surely breaks the possibility of allowing multiple views onto a model, which must be the reason behind using the Observer pattern in MVC in the first place.
         This is the data upon which the user interface will operate. It is typically a domain object and the intention is that such objects should have no knowledge of the user interface. Here the M in MVP differs from the M in MVC. As mentioned above, the latter is actually an Application Model, which holds onto aspects of the domain data but also implements the user interface to manupulate it. In MVP, the model is purely a domain object and there is no expectation of (or link to) the user interface at all.
         One significant difference in MVP is the removal of the controller. Instead, the view is expected to handle the raw user interface events generated by the operating system (in Windows these come in as WM_xxxx messages) and this way of working fits more naturally into the style of most modern operating systems. In some cases, as a TextView, the user input is handled directly by the view and used to make changes to the model data. However, in most cases the user input events are actually routed via the presenter and it is this which becomes responsible for how the model gets changed.
         While it is the view's responsibility to display model data it is the presenter that governs how the model can be manipulated and changed by the user interface. This is where the heart of an application's behaviour resides. In many ways, a MVP presenter is equivalent to the application model in MVC; most of the code dealing with how a user interface works is built into a presenter class. The main difference is that a presenter is ''directly'' linked to its associated view so that the two can closely collaborate in their roles of supplying the user interface for a particular model.
         Compared with our orignnal widget framework, MVP offers a much greater separation between the visual presentation of an interface and the code required to implement the interface functionality. The latter resides in one or more presenter classes that are coded as normal using a standard class browser.
  • ZeroPage_200_OK . . . . 6 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/
          * JavaScript Library
         == Integrated Development Environment ==
          * JetBrains WebStorm
          * Oracle NetBeans
          * HTTP(HyperText Transfer Protocol) 소개
          * 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
          * DOM 객체를 wrapping 한 것으로 CSS selector 문법으로 DOM에서 Element를 찾아 올 수 있다.
          * URI encode
          * ASCII, EUC-KR, CP949, Unicode(UCS), UTF-8
          * encodeURI, decodeURI
          * encodeURIComponent, decodeURIComponent
          * Iframe/frames
          * append(), appendTo() - jQuery에는 같은 기능의 함수인데 체이닝을 쉽게 하기 위해서 caller와 parameter가 뒤바뀐 함수들이 있다. (ex. A.append(B) == B.appendTo(A))
  • 데블스캠프2005/금요일/OneCard/이동현 . . . . 6 matches
          ArrayList arr = new ArrayList();
          Random rand = new Random();
          comCards.add(stack.delete(rand.nextInt(stack.size()-1)));
          playerCards.add(stack.delete(rand.nextInt(stack.size()-1)));
          Random rand = new Random();
          discard.add(stack.delete(rand.nextInt(comCards.size())));
          Random rand = new Random();
          comCards.add(stack.delete(rand.nextInt(comCards.size())));
          playerCards.add(stack.delete(rand.nextInt(comCards.size())));
  • 바퀴벌레에게생명을 . . . . 6 matches
         자료구조1의 과제로 [RandomWalk]가 나오는 것을 보고 바퀴벌레의 움직을 그래픽으로 나타내기로 결정.
         다큐에서 CBug타입의 멤버 변수를 생성한다. 그리고 뷰에서 방향키의 키이벤트(OnKeyDown)를 받으면 다큐의 CBug 타입의 멤버 변수의 Move함수를 호출하고 변경된 position과 direction을 OnDraw에서 받아서 알맞은 그림을 잘라내서 뷰에 그린다.
         다큐에 RandomWalking함수를 제작하고 뷰에서 스페이스바의 키이벤트가 일어나면 0.3초의 타이머가 생성(OnTimer)되어 RandomWalking함수를 0.3마다 호출하고 변경된 위키와 방향대로 뷰에 그려준다.(OnDraw) 다시 스페이스바를 누르면 움직임을 멈춘다.
         실행파일: Upload:rkdRandomWalk.exe
         소스파일: Upload:rkdRandomWalk.zip
         [프로젝트분류] [RandomWalk] [강희경]
  • 비행기게임/BasisSource . . . . 6 matches
         import random, os.path
          raise SystemExit,"sorry, extended image module required"
          raise SystemExit, 'Could not load image "%s"%s'%(file,pygame.get_error)
          FRAME = 1
          FrameFrequence = 5
          speedIncreaseRateOfY = 0.1
          self.speedy+=self.speedIncreaseRateOfY
          self.speedy-=self.speedIncreaseRateOfY
          shotRate = 9 #If ShotRate is high the enemy shot least than low
          if self.count%(self.imagefrequence*self.shotRate) == 0:
          imgs = load_images('dragon000.gif','dragon002.gif','dragon004.gif','dragon006.gif','dragon008.gif','dragon010.gif','dragon012.gif','dragon014.gif','dragon016.gif','dragon018.gif','dragon020.gif','dragon022.gif','dragon024.gif','dragon026.gif','dragon028.gif','dragon030.gif')
          #decorate the game window
          enemy_1 = range(MAX_ENEMY)
          enemy_2 = range(MAX_ENEMY)
          item_1 = range(MAX_ITEM)
          #clear/erase the last drawn sprites
          for i in range(-30 * (player.maxShots - 1) + y, 30 * (player.maxShots - 1) + y + 1 , 30) :
          #draw the scene
          dirty = all.draw(screen)
          #cap the framerate
  • Classes . . . . 5 matches
         [http://www.xper.org/wiki/seminar/TheDragonBook]
          * Final Demonstration is 5 Jun.
         === ComputerGrapichsClass ===
         [http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200401090003 Computer Graphics with Open GL 3rd Ed]
         [http://ocw.mit.edu/OcwWeb/Mathematics/18-06Spring-2005/CourseHome/index.htm Linear Algebra]
          * http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtrace0.htm
          * http://en.wikipedia.org/wiki/Ray_tracing
          * http://web.cs.wpi.edu/~matt/courses/cs563/talks/dist_ray/dist.html
          * http://www.cs.unc.edu/~rademach/xroads-RT/RTarticle.html
          * [http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project1 #1] is due to 27 Mar.
          * [http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project2 #2] is due to 10 Apr.
          * [http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project3 #3] is due to 15 May.
          * [http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project4 #4] is due to 29 May.
  • CleanCode . . . . 5 matches
         = Clean Code =
          * [http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 CleanCode book]
          * [http://www.cleancoders.com/ CleanCoders]
          * [https://code.google.com/p/support/wiki/CodeReviews Google Code Review System]
          * [https://code.google.com/p/google-styleguide/ google coding style guide]
          * [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]
          * Clean Code 읽은 부분에 대해 토론(Chap 01, Chap 09)
          * 실제로는 쓰지 않는데 테스트를 위한 메소드를 추가하게 되는 경우가 있을 수 있지 않은가? -> java의 경우는 reflection을 사용하면 메소드의 추가 없이 처리가 가능한 경우도 있지만 그것보다도 테스트용 framework(mockito 등)를 사용하는것이 좋다.
          * abstraction level
         var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array.
         if(!array){
         array.forEach(/* handle found strings */)
         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. */
          * 현재 CleanCode에서 좋은 코드로 너무 가독성만을 중시하고 있는 것은 아닌가.
          * [http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf java se7 spec]
          1. CleanCoders 강의 맛보기.
          * Separate Constructing a System from Using It.
  • DPSCChapter1 . . . . 5 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.
         ''디자인 패턴''은 객체지향 언어로 제작된 프로그램에 23개의 패턴을 제시합니다. 물론, 23개의 패턴이 객체지향 디자이너들이 필요로 할 모든 디자인의 난제들을 전부 잡아내지는 못합니다. 그럼에도 불구하고 "Gang of Four"(Gamma et al.)에서 제시한 23개의 패턴은 좋은 디자인의 든든한 출발을 보장합니다. 이 23개의 패턴은 Smalltalk class libraries에 기반을한 디자인 수준(design-level) 분석(analog)입니다. 이 패턴을 이용해서 모든 문제를 해결할 수는 없지만, 전반적이고, 실제 디자인의 다양한 문제들을 위한 해결책을 위한 유용한 지식들의 기반을 제공할것입니다. 또, 이 패턴을 통해서 전문가 수준의 디자인 지식을 취득하고, 우아하고, 사후 관리가 편하고, 확장하기 쉬운 객체지향 프로그램 개발에 기초 지식을 제공하는데 톡톡한 역할을 할것입니다.
         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.
         Smalltalk Companion에서, 우리는 패턴의 "base library"를 추가하는 것보다 앞으로 요구될 수 있는 패턴으로 때때로 확장하고 해석해서, 설계자나 프로그래머를 위해 제공한다.
         ''Smalltalk Companion에서, 우리는 패턴의 'base library'를 추가하지 않습니다. 그것보다, 우리는 base library들을 Smalltalk 의 관점에서 해석하고 때?灌? 확장하여 Smalltalk 디자이너와 프로그래머를 위해 제공할 것입니다. 우리의 목표는 '''Design Patterns'''을 대체하려는 것이 아닙니다. '''Design Patterns''' 대신 Smalltalk Companion을 읽으려 하지 마시고, 두 책을 같이 읽으십시오. 우리는 이미 Gang of Four에서 잘 문서화된 정보를 반복하지 않을겁니다. 대신, 우리는 GoF를 자주 참조할 것이고, 독자들 역시 그래야 할 것입니다. -- 문체를 위에거랑 맞춰봤음.. 석천''
         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.
         Smalltalk experts know many things that novices do not, at various abstraction levels and across a wide spectrum of programming and design knowledge and skills:
          * What is available in the form of classes, methods, and functionality in the existing base class libraries
          * 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
          * Which classes work well together as frameworks
          * Recurring patterns of object configurations and interactions and the sorts of problems for which these cooperating objects provide (at least partial) solutions
         Smalltalk 전문가들은 여러가지 다양한 추상적 단계와 폭넓은 programming과 design에 대한 지식과 기술면에서 초심자들이 알지 못하는 많은 것을 알고 있다.
          * 어떤 클래스들이 frameworks로서 서로 잘 작동하는지에 대해
         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.
         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.
  • Gof/Visitor . . . . 5 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들은 컴파일 될 언어에 의존적이며, 또한 주어진 언어를 위해 바뀌지 않는다.
         이 다이어그램은 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들을 캡슐화한다.
         VisitorPattern으로, 개발자는 두개의 클래스 계층을 정의한다. 하나는 operation이 수행될 element에 대한 계층이고 (Node hierarchy), 하나는 element에 대한 operation들을 정의하는 visitor들이다. (NodeVisitor hierarchy). 개발자는 visitor hierarchy 에 새로운 subclass를 추가함으로서 새 operation을 만들 수 있다.
          - 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.
          - 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.
          - defines an Accept operation that takes a visitor as an argument.
          - implements an Accept operation that takes a visitor as an argument.
          * ObjectStructure (Program)
          - can enumerate its elements. [[BR]]
         == Collaborations ==
         class Iterator {
          ListIterator<Element*> i (_children);
         == Sample Code ==
          for (ListIterator<Equipment*> i(_parts); !i.IsDone (); i.Next ()) {
         visitLiteral: literalExp
  • GuiTestingWithMfc . . . . 5 matches
          // DO NOT EDIT what you see in these blocks of generated code!
          // 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
  • JavaStudy2002/해온일 . . . . 5 matches
          * 둘째주 ... 숙제는 ["RandomWalk"]를 자바로 구현해 보는 것입니다. 일단 난이도는 'RandomWalk -> 움직이는 물체 숫자 늘리기 -> ScheduledWalk(["RandomWalk2"])' 가 되겠습니다.
          * 셋째주 ... 셋째주에 만들었던 RandomWalk 를 변형하여 둘째주 마지막 단계인 ScheduledWalk 까지 완성하는 것으로 하겠습니다.
          * 첫번째 과제(10.8)-RandomWalk
          * Structerd Programming Style 시연 Java, C
  • Map/임영동 . . . . 5 matches
          //맵 객체들의 벡터인 decoder를 선언
          vector< map<char, char> > decoder;
          decoder.push_back(rule1);
          vector< map<char, char> >::iterator it;
          for(it=decoder.begin();it!=decoder.end();++it)
          for(string::iterator i=input.begin();i!=input.end();i++)
  • MoinMoinBugs . . . . 5 matches
         === Tables broken by trailing spaces ===
         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.''
          * 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.
          * 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.
          * 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.
         === Unicode issues ===
         With 0.3, TitleIndex is broken if first letter of Japanese WikiName is multibyte character. This patch works well for me but need to be fixed for other charsets.
          if isUnicodeName(name):
         ''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.''
         === paragraph bug redux ===
          A temporary, pop-up window created by the application, where the user can
  • MoreEffectiveC++/Techniques1of3 . . . . 5 matches
         class Graphic:public NLComponent{ // 그림을 표현하는 인자
         readComponent가 무엇을 어떻게 하는지 궁리해 보자. 위에 언급한듯이 readComponent는 리스트에 넣을 TextBlock나 Graphic형의 객체를 디스크에서 읽어 드린 자료를 바탕으로 만들어 낸다. 그리고 최종적으로 만들어진 해당 객체의 포인터를 반환해서 list의 인자를 구성하게 해야 할것이다. 이때 마지막 코드에서 가상 생성자의 개념이 만들어 져야 할것이다. 입력되 는자료에 기초되어서, 알아서 만들어 인자. 개념상으로는 옳지만 실제로는 그렇게 구현될수는 없을 것이다. 객체를 생성할때 부터 형을 알고 있어야 하는건 자명하니까. 그렇다면 비슷하게 구현해 본다?
         class Graphic:public NLComponent{
          virtual Graphic * clone() const // 가상 복사 생성자 선언
          { return new Graphic(*this); }
          for (list<NLComponent*>::constiterator it = rhs.components.begin();
         생성자는 실제로 가상 함수가 될수 없다. 마찬가지로 비멤버 함수들 역시 마찬가지 이리라, 하지만 그러한 기능이 필요할 떄가 있다. 바로 앞 예제에서 NLComponent와 그것에서 유도된 클래스들을 예를 들어 보자면 이들을 operator<<으로 출력을 필요로 할때 이리라. 뭐 다음과 같이 하면 문제 없다.
          // operator<<의 가상 함수
          virtual ostream& operator<<(ostream& str) const = 0;
          virtual ostream& operator<<(ostream& str) const;
         class Graphic:public NLComponent{
          virtual ostream& operator<<(ostream& str) const;
         Graphic g;
         class Graphic: public NLComponent {
         ostream& operator<<(ostream& s, const NLComponent& c)
         ( DeleteMe Translation unit의 해석이 불분명하다.)
         또 이 둘의 다른 취약점은 초기화 되는 시간이다. 우리는 함수의 경우에 초기화 시간을 정확히 알수 있다. 아예 처음 이니까 하지만 멤버 메소드로 구현시에는 모호하다. C++는 확실히 특별하게 해석해야 할 부분(단일 객체에서 소스 코드 몸체 부분 따위)은 정적 인자들에 대한 초기화 순서가 보장 된다. 하지만 서로 다른 해석 부분(translation unit)에 있는 정적 객체들의 초기화 순서에 대해서는 말할수가 없다. 이것은 머리를 아프게만 할뿐이다.
         그렇자민 아마 조금 다른 방법의 접근을 할수 있다. 바로 Heap영역에 올라가는 객체는 항상 new를 호출하는것, 그리고 이 new의 호출은 new operator와 operator new와의 상호 작용에서 작업이 이루어 지는 것이다. 자세한 내용은 Item 8을 참고하고, 다음과 같이 UPNumber를 고쳐서 유도되는 객체들 마져 제한을 걸수 있다.
          class HeapConstraintViolation {};
          static void * operator new(size_t size);
  • Plugin/Chrome/네이버사전 . . . . 5 matches
          * 크롬은 아시다시피 Plug-in을 설치할수 있다 extension program이라고도 하는것 같은데 뭐 쉽게 만들수 있는것 같다. 논문을 살펴보는데 사전기능을 쓰기위해 마우스를 올렸지만 실행이 되지 않았다.. 화난다=ㅂ= 그래서 살짝 살펴보니 .json확장자도 보이는것 같지만 문법도 간단하고 CSS와 HTML. DOM형식의 문서구조도 파악하고 있으니 어렵지 않을것 같았다. 그래서 간단히 네이버 링크를 긁어와 HTML element분석을 통해 Naver사전을 하는 Plug-in을 만들어볼까 한다.
         크롬의 개발자 API주소는 지금 사이트 이전을 하고있는데 맨앞에 code가 developer로 이전하는것 같았다. 여튼 index의 주소는 다음과 같다.
         http://code.google.com/chrome/extensions/index.html
         http://code.google.com/chrome/extensions/getstarted.html
         // Use of this source code is governed by a BSD-style license that can be
          <!-- JavaScript and HTML must be in separate files for security. -->
          * 링크 : http://code.google.com/chrome/extensions/contentSecurityPolicy.html
  • ProjectPrometheus/CookBook . . . . 5 matches
         Wiki:SandglassProgramming
          * 멀티 타이머 http://www.programming.de/cpp/timer.zip
          * http://rs2.riss4u.net/librarian_ch/list/rule/rule_06.html
         Python 에서의 string.urlencode 과 마찬가지로 GET,POST 로 넘기기 전 파라메터에 대해 URL Encoding 이 필요하다. URLEncoder 라는 클래스를 이용하면 된다.
         import java.net.URLEncoder;
         URLEncoder.encode (paramString, "UTF-8");
          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 참고
          <init-param driver-name="org.gjt.mm.mysql.Driver 식으로 드라이버 이름"/>
          <init-param url="jdbc:mysql://서버주소:서버IP/reference 이름"/>
          <init-param user="DB 사용자 ID"/>
          <init-param password="DB 사용자 Password"/>
          <init-param max-connections="20"/>
          <init-param enable-transaction="false"/>
  • ProjectPrometheus/Journey . . . . 5 matches
          * UnitTest 들이 드디어 다시 녹색바. 그리고 서블릿에 있던 로직 부분을 Extract, 테스트들을 붙여줌.
          * 한동안 PairProgramming 할때 주로 관찰자 입장에 있어서인지. (이상하게도. 창준이형이랑 할때나 상민이랑 할때나. 그나마 저번 르네상스 클럽때는 아무도 주도적으로 안잡아서 그냥 내가 잡긴 했지만, 다른 사람들이 적극적으로 나서지 않을때엔 웬지 그 사람들과 같이 해야 한다는 강박관념이 있어서.)
         그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
         1002 개인적으로 진행. 뭐 진행이라기 보다는, 오랜만에 Solo Programming 을 해봤다. 장점으로는 느긋하게 소스를 리뷰하고 대처할 시간을 천천히 생각해볼 수 있던점. (보통은 상민이가 이해를 빨리 하기 때문에 먼저 키보드를 잡는다.) 단점으로는 해결책에 대한 Feedback 을 구할 곳이 없다는 점이 있다. (평소 물어보고 둘이 괜찮겠다 했을때 구현을 하면 되었는데, 이경우에는 책임 소재랄까.. 웬지 혼자서 생각한 것은 의외의 틀린 답이 있을 것 같은 불안감이 생긴다. 테스트 중독증 이후 이젠 페어 중독증이려나..)
          * 대안을 생각중인데, 일종의 Facade 를 만들고, Controller 의 각 service 들은 Facade 만 이용하는 식으로 작성하면 어떨까. 그렇게 한다면 Facade 에 대해서 Test Code 를 작성할 수 있으리라 생각. 또는, Servlet 부분에 대해서는 AcceptanceTest 의 관점으로 접근하는 것을 생각. 또는, cactus 에 대해서 알아봐야 하려나.. --["1002"]
          * Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
          * SearchListExtractorRemoteTest 추가
          * 도서관은 303건 초과 리스트를 한꺼번에 요청시에는 자체적으로 검색리스트 데이터를 보내지 않는다. 과거 cgi분석시 maxdisp 인자에 많이 넣을수 있다고 들었던 선입견이 결과 예측에 작용한것 같다. 초기에는 local 서버의 Java JDK쪽에서 자료를 받는 버퍼상의 한계 문제인줄 알았는데, 테스트 작성, Web에서 수작업 테스트 결과 알게 되었다. 관련 클래스 SearchListExtractorRemoteTest )
          * Code Review 로서 Refactoring 이 이용된다고 했다시피, Refactoring을 해 나가면서 전체 프로그램의 그림이 좀 더 이해가 갔다. 한동안 해당 프로그램에 대해서 플밍 리듬을 놓쳤을때 Refactoring 을 시도하는것도 좋은 전략이라 생각.
          * DB Schema 궁리 & Recommendation System 을 DB 버전으로 Integration 시도
          * Pair 중간에 ["1002"] 는 목소리가 커질때가 있다. 하나는, 내가 놓치고 있을 경우에 대해 다른 사람이 이야기를 제대로 안해줬다고 생각되는 경우. 뭐 보통은 ["1002"]의 잘못을 다른 사람에게 떠넘기기 위한 방편인 경우가 많다 -_-; (찔린다; 나도 JuNe 형이랑 Pair 할때 무방비상태인 경우가 많아서;) 뭐, 같이 무방비였다가 못느끼고 넘어간 경우라면 아하~ 하면서 플밍하겠지만, 하나를 고치고 나서, 다른 사람이 당연한 듯이 좋은 방법으로 해결해낼때엔. ("왜 아까는 이야기안해?" "당연한거잖나."). 일종의 경쟁심리이려나. 에고 를 잊어야 하는게 PairProgramming 이지만, 사람 마음이 그렇기엔 또 다른것 같다. 코드 기여도에 대해서 보이지 않는 경쟁이 붙는다고 할까나.
          * {{{~cpp ViewBookExtractorTest}}} ( {{{~cpp LendBookList}}} 와 연계하여 테스트 추가 )
         상민쓰와 함께 ADO 를 이용한 부분에 대해 DB Mock Object 예제를 작성했다. 전에 상민이가 DB Layer 를 두지 않고, ADO Framework를 거의 치환하게끔 작성했다고 판단, 이번에는 내부적으로 ADO를 쓰건 가짜 데이터를 쓰건 신경쓰지 않는 방향으로 같이 작성하였다. ADO 는 기존에 ["1002"] 가 작업했던 프로그램에서 일부 사용한 소스를 고쳐썼다.
          * 예전에 일할때 잘못했었던 실수를 다시하고 있으니, 바로 기획자와의 대화이다. Iteration 이 끝날때마다 개발자가 먼저 기획자 또는 고객에게 진행상황을 이야기해야 한다. 특히 ExtremeProgramming 의 경우 Iteration 이 끝날때마다 Story 진행도에 대화를 해야 한다. Iteration 3 가 넘어가고 있지만 항상 먼저 전화를 한 사람이 누구인가라고 묻는다면 할말이 없어진다. 이번 Iteration 만큼은 먼저 전화하자;
          * 'Iteration 3 에서 무엇은 되었고 무엇은 안되었는가?' 지금 Iteration 3 쪽 Task 가 아직도 정리 안되었다. Task 정리를 하지 않고 Iteration 3 를 진행한 점은 문제이긴 하다. (비록 구두로 개발자들끼리 이야기가 되었다 하더라도. 제대로 정리를 한다는 의미에서.) Iteration 3 Task 정리 필요. 그리고 나머지 Iteration 에 대한 Task 들에 대해서 예측할 수 있는것들 (슬슬 눈에 보이니)에 대해 추가 필요.
          * 내일까지 신피의 네트웍이 안될까 걱정이다. 오늘의 일은 도저히 예측할수 없었던 일종의 사고이다. 나비의 날개짓은 어디에서 시작되었을까 생각해 본다. ["MIB"] Programmer가 되고 싶지만 그마저 시간이 부족한것이 현실이다.
          * Iteration 2 에 대해 밀린 것 마저 진행.
          * Iteration 3 에 대한 Planning
         Iteration 3 에서의 Login 을 위해 정말 오랜만에(!) Servlet 책과 JSP 책을 봤다. (빌리고서도 거의 1-2주간 안읽었다는. -_-;) 상민이가 옆에서 JSP 연습을 하는동안 나는 Servlet 연습을 했다. 후에 두개의 소스를 비교해보면서 공통점을 찾아내면서 스타일을 비교해 본 것이 재미있었다. (처음에 의도한건 아니지만;)
          * 학교에서 PairProgramming 이 정착될 수 있을까. Pair 를 하는 중 대화가 좀 커져서 그런지 저 너머쪽의 선배가 주의를 주었다. 뭐.. 변명거리일지 모르겠지만, 자신의 바로 뒤에서 게임을 하고 있는 사람은 자신의 일에 방해가 되지 않고, 저 멀리서 개발하느냐고 '떠드는 넘들' 은 자신의 일에 방해가 된다.
  • 새싹교실/2011/무전취식/레벨9 . . . . 5 matches
          * Array
          * Rand함수의 쓰임, seed값을 초기화시켜줘야 제대로된 rand가 나옵니다. 복습합시다.
          // put your code here
          // put your code here
          // put your code here
          srand(time(NULL));
          one = rand()%6+1;
          two = rand()%6+1;
          // put your code here
  • 조영준 . . . . 5 matches
          * [http://codeforces.com/profile/skywave codeforces]
          * Android Programming
          * [ZPLibrary]
          * SCPC 본선 진출 codeground.org
          * Google Codejam 2015 Round1 (1C round rank 1464)
          * 동네팀 - 신동네 프로젝트 [http://caucse.net], DB Migration 담당
          * DevilsCamp 2015 - Game Programming in Java with LibGdx - [데블스캠프2015/첫째날]
          * [열파참/프로젝트] - [http://library.zeropage.org] => [ZPLibrary]
          * GoogleCodeJam 2014 - Round 1 진출
          * [조영준/CodeRace/130506]
          * [PracticeNewProgrammingLanguage]
          * [RandomPage]
  • 0PlayerProject . . . . 4 matches
         http://zerowiki.dnip.net/~undinekr/arm_st.rar
          - General
          . Codec/String : XviD
          . BitRate/String : 615Kbps
          . Codec/String : PCM
          . BitRate/String : Microsoft PCM
          . BitRate_Mode : 1536 Kbps
          . SmplingRate/String : 48 Khz
  • 5인용C++스터디/API에서MFC로 . . . . 4 matches
          * '''M'''icrosoft '''F'''oundation '''C'''lass library
         // Generated message map functions
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your message handler code here and/or call default
  • 5인용C++스터디/더블버퍼링 . . . . 4 matches
         void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit)
         DrawBitmap(hMemDC,0,0,hBaby);
         SetBkMode(hMemDC,TRANSPARENT);
          DrawText(hMemDC,szGang,-1,&grt,DT_WORDBREAK);
         DrawText(hMemDC,szGang,-1,&grt,DT_WORDBREAK);
         LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
         return(DefWindowProc(hWnd,iMessage,wParam,lParam));
          // TODO: add construction code here
         void CTestView::OnDraw(CDC* pDC)
          // TODO: add draw code for native data here
          // TODO: Add your specialized creation code here
          // TODO: Add your message handler code here and/or call default
  • APlusProject . . . . 4 matches
         Upload:APP_MeetingRecord_Draft.zip - 회의록 초안입니다.
         [http://zeropage.org/~erunc0/study/dp/RationalRose.exe RationalRose 2002]
         [http://zeropage.org/~erunc0/study/dp/Rational_Rose_Enterprise_Edition_2002_Crack.zip RationalRose 2002 과자]
         ExtremeProgrammingInstallled - XP 입문서. 한서 있음. PL 필독.
  • AcceleratedC++/Chapter8 . . . . 4 matches
         || ["AcceleratedC++/Chapter7"] || ["AcceleratedC++/Chapter9"] ||
         Ch9~Ch12 WikiPedia:Abstract_data_type (이하 ADT)의 구현을 공부한다.
         참고페이지) [ParametricPolymorphism]
         함수의 호출시 함수의 매개변수를 operand로 하여 행해지는 operator의 유효성을 컴파일러가 조사. 사용 가능성을 판단
          return size % 2 == 0 ? (v[mid] + v[mid-1]) / 2 : v[mid]; // double, int에는 유효, string은 operator / 가 없기 때문에 무효
          인자로 받은 두 값의 타입이 완전히 같아야지만 올바른 동작을 보장받는다. 인자는 operator>(T, T)를 지원해야한다.
          STL 함수를 보면 인자로 받는 반복자(iterator)에 따라서 컨테이너의 함수 사용 유효성을 알 수 있다.
          STL은 이런 분류를 위해서 5개의 '''반복자 카테고리(iterator category)'''를 정의하여 반복자를 분류한다. 카테고리의 분류는 반복자의 요소를 접근하는 방법에따른 분류이며, 이는 알고리즘의 사용 유효성 여부를 결정하는데 도움이 된다.
          상기 2개의 구현 모두 begin, end iterator를 순차적으로 접근하고 있음을 알 수 있다. 상기의 함수를 통해서 순차 읽기-전용의 반복자는 '''++(전,후위), ==, !=, *'''를 지원해야한다는 것을 알 수 있다. 덧 붙여서 '''->, .'''와 같은 멤버 참조 연산자도 필요로하다. (7.2절에 사용했떤 연산자이다.)
          상기와 같은 반복자를 '''''입력 반복자(input iterator)'''''라고 함.
          상기 요구사항을 만족시키는 경우의 반복자를 '''''출력 반복자(Output iterator)'''''라고 함.
          '''*, ++(전,후위), ==, =, ., ->'''와 같은 연산이 가능하다면 '''''순방향 반복자(forward iterator)'''''라고 함.
          순방향 연산자의 모든 연산을 지원하고 '''--'''연산을 지원한다면 이 반복자는 '''양방향 반복자(bidirection iterator)''' 라고 부른다. 표준 라이브러리 컨테이너 클래스들은 모두 양방향 반복자를 지원함.
         template <class Ran, class X> bool binary_search(Ran begin, Ran end, const X& x) {
          Ran mid = begin + (end - begin ) /2;
          || condition p:iterator, q:iterator, n:integer ||
          * 두번째 인자로 하나가 지난 값을 갖도록함으로써 자연스럽게 out-of-range의 상황을 파악하는 것이 가능하다.
         == 8.3 Input and output iterators ==
         copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(v));
         //istream_iterator<int> 는 end-of-file, 에러상태를 가리킨다.
  • Android/WallpaperChanger . . . . 4 matches
          * http://stackoverflow.com/questions/2169649/open-an-image-in-androids-built-in-gallery-app-programmatically
          openPhotoLibrary();
          private void openPhotoLibrary() {
          public void onActivityResult(int requestCode, int resultCode, Intent data) {
          if (resultCode == RESULT_OK) {
          if (requestCode == SELECT_PICTURE) {
         import android.graphics.Bitmap;
         import android.graphics.BitmapFactory;
         public class MywallpaperActivity extends Activity {
          img1.setImageResource(R.raw.wall1);
          Bitmap b = BitmapFactory.decodeStream(getResources().openRawResource(R.raw.wall1));
          WallpaperManager manager = WallpaperManager.getInstance(MywallpaperActivity.this);
          e.printStackTrace();
          mTextView.append(mService.toShortString()+" is alrady stopped.\n");
         import android.graphics.Bitmap;
         import android.graphics.BitmapFactory;
          || 4/18 || WallPapermanagerActivity실행 및 파일 경로 받아오기 완성 ||
          || 4/18 || {{{MywallpaperActivity(MainActivity)에서 WallPapermanagerActivity로 넘겨주는 배경화면 리스트를 Prototype형으로 만들어놓음. WallPapermanagerActivity에서 MywallpaperActivity(MainActivity)로부터 리스트를 받아 Set하고 버튼 입력에 따라 Set과 add를 하게 해놓음. Delete의 추가 구현이 필요함.}}}||
          || 4/19 ||{{{MywallpaperActivity에서 TimeCycleActivity로 현재 값과 함께 넘어가는 기능 구현. TimeCycleActivity에 enum리스트로 현재 setting된 값을 single_choice list로 선택되고 setting버튼 cancle버튼을 통해 다시 돌아오는것 구현. }}}||
          || 4/25 || PathRepository를 ArrayList로 Parcelable객체로 만드는것을 성공 순서도상의 DB접근을 제한을 두어야할것 같음. 문제점 : WallpaperManagerActivity에서 Add시키고 setting하는데 객체가 날아감. 우짬.. 아! 우선 만들어놓고 setting할때만 DB에 저장시키는 방식으로 해야겠다.그리고 0으로 index가 없는것과 있는것을 표기해서 update혹은 새로 만들기를 실행하도록 하고. ||
  • CSP . . . . 4 matches
          raise "None expected"
          raise IOError, "ACK expected but got %s"%ack
          for i in xrange(10):
         #from Steve Holden's Python Web Programming
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "missing netstring terminator"
          s = encode(s)
         def encode(s):
         def decode(s):
          raise ValueError
          raise ValueError
          raise ValueError, "netstring format error: " + s
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "missing netstring terminator"
          s = encode(s)
         YOURADDR=('localhost',8142)
  • EightQueenProblem/강석천 . . . . 4 matches
          self.boardArray = {}
          for i in range (0,8):
          for j in range (0,8):
          self.boardArray[(i,j)] = 0
          return self.boardArray[(y,x)]
          self.boardArray[(y,x)] = data
          self.boardArray[(y,x)] = 1
          for i in range (0,8):
          for i in range (0,8):
          FindRange = 8 - max (FirstCornerX, FirstCornerY)
          for i in range (0,FindRange):
          FindRange = FirstCornerY + 1 - FirstCornerX;
          for i in range (0,FindRange):
          for i in range (0,8):
          for j in range (0,8):
          for i in range (0,8):
  • Gof/FactoryMethod . . . . 4 matches
         Framework(이하 Framework 그대로)는 객체사이의 관게를 정의하고, 유지하기 위하여 가상 클래스들을 사용한다. Framework는 종종 이러한 클래스들을 기반으로 객체의 생성에 책임을 진다.
         여러 문서를 사용자에게 보여줄수 있는 어플리케이션에 대한 Framework에 대하여 생각해 보자. 이러한 Framework에서 두가지의 추상화에 대한 요점은, Application과 Document클래스 일것이다. 이 두 클래스다 추상적이고, 클라이언트는 그들의 Application에 알맞게 명세 사항을 구현해야 한다. 예를들어서 Drawing Application을 만들려면 우리는 DrawingApplication 과 DrawingDocument 클래스를 구현해야 한다. Application클래스는 Document 클래스를 관리한다. 그리고 사용자가 Open이나 New를 메뉴에서 선택하였을때 이들을 생성한다.
         Application(클래스가 아님)만들때 요구되는 특별한 Document에 대한 Sub 클래스 구현때문에, Application 클래스는 Doment의 Sub 클래스에 대한 내용을 예측할수가 없다. Application 클래스는 오직 새로운 ''종류'' Document가 만들어 질때가 아니라, 새로운 Document 클래스가 만들어 질때만 이를 다룰수 있는 것이다. 이런 생성은 딜레마이다.:Framework는 반드시 클래스에 관해서 명시해야 되지만, 실제의 쓰임을 표현할수 없고 오직 추상화된 내용 밖에 다를수 없다.
         Factory Method 패턴은 이에 대한 해결책을 제시한다. 그것은 Document의 sub 클래스의 생성에 대한 정보를 캡슐화 시키고, Framework의 외부로 이런 정보를 이동 시키게 한다.
         == Collaborations : 협력 ==
         Factory method는 당신의 코드에서 만들어야한 Application이 요구하는 클래스에 대한 기능과 Framework가 묶여야할 필요성을 제거한다. 그 코드는 오직 Product의 인터페이스 만을 정의한다.; 그래서 어떠한 ConcreteProduct의 클래스라도 정의할수 있게 하여 준다.
          2. ''클래스 상속 관게에 수평적인(병렬적인) 연결 제공''(''Connects parallel class hierarchies.'') 여태까지 factory method는 오직 Creator에서만 불리는걸 생각해 왔다. 그렇지만 이번에는 그러한 경우를 따지는 것이 아니다.; 클라이언트는 수평적(병렬적)인 클래스간 상속 관계에서 factory method의 유용함을 찾을수 있다.
          병렬 클래스 상속은 클래스가 어떠한 문제의 책임에 관해서 다른 클래스로 분리하고, 책임을 위임하는 결과를 초례한다. 조정할수 있는 그림 도형(graphical figures)들에 관해서 생각해 보자.;그것은 마우스에 의하여 뻗을수 있고, 옮겨지고, 회정도 한다. 그러한 상호작용에 대한 구현은 언제나 쉬운것만은 아니다. 그것은 자주 늘어나는 해당 도형의 상태 정보의 보관과 업데이트를 요구한다. 그래서 이런 정보는 상호 작용하는, 객체에다가 보관 할수만은 없다. 게다가 서로다른 객체의 경우 서로다른 상태의 정보를 보관해야 할텐데 말이다. 예를들자면, text 모양이 바뀌면 그것의 공백을 변화시키지만, Line 모양을 늘릴때는 끝점의 이동으로 모양을 바꿀수 있다.
          2. ''Parameterized factory methods''(그대로 쓴다.) Factory Method패턴에서 또 다른 변수라면 다양한 종류의 product를 사용할때 이다. factory method는 생성된 객체의 종류를 확인하는 인자를 가지고 있다. 모든 객체에 대하여 factory method는 아마 Product 인터페이스를 공유할 것이다. Document예제에서, Application은 아마도 다양한 종류의 Document를 지원해야 한다. 당신은 CreateDocument에게 document생성시 종류를 판별하는 인자 하나를 넘긴다.
          Unidraw 그래픽 에디터 Framework는 디스크에 저장된 객체의 재 생성을 위하여 이러한 접근법을 사용하고 있다. Unidraw는 factory method를 이용한 Creator 클래스가 식별자를 가지고 있도록 정의해 두었다. 이 클래스 식별자는 적합한 클래스를 기술하고 있다. Unidraw가 객체를 디스크에 저장할때 이 클래스 식별자가 인스턴스 변수의 어떤것 보다도 앞에 기록 되는 것이다. 그리고 디스크에서 다시 객체들이 생성될때 이 식별자를 역시 가장 먼저 읽는다.
          클래스 식별자를 읽고서 Framework는 식별자를 Create에게 넘기면서 호출한다. Create는 적당한 클래스를 찾고, 그것을 객체의 생성에 사용한다. 마지막으로 Create는 객체의 Read 수행을 호출하여 디스크에 정보를 저장하고, 인스턴스 변수들을 초기화 한다.
          Parameterized factory method는 Product를 상속받은 MyProduct와 YourProduct상에서일반적으로 다음과 같은 형태를 가진다.
          Parameterized factory method 는 Creator가 생성하는 product를 선택적으로 확장하고, 변화시키는데, 쉽게 만들어 준다. 그리고 새로운 식별자로 새로운 종류의 product를 도입하고나, 서로다른 product의 식별자를 연관시킬수도 있다.
         더 유연한 접근 방식은 비슷하게 parameterized factory method Application의 클래스의 변수들과 같이 생성되어지는 클래스를 보관하는 것이다.그러한 방식은 product를 변경하는 Application을 반드시 감싸야 한다.
         You can avoid this by being careful to access products solely through accessor operations that create the product on demand. Instead of creating the concrete product in the constructor, the constructor merely initializes it to 0. The accessor returns the product. But first it checks to make sure the product exists, and if it doesn't, the accessor creates it. This technique is sometimes called lazy initialization. The following code shows a typical implementation:
          4. Using templates to avoid subclassing. As we've mentioned, another potential problem with factory methods is that they might force you to subclass just to create the appropriate Product objects. Another way to get around this in C++ is to provide a template subclass of Creator that's parameterized by the Product
          5. Naming conventions. It's good practice to use naming conventions that make it clear you're using factory methods. For example, the MacApp Macintosh application framework [App89] always declares the abstract operation that defines the factory method as Class* DoMakeClass(), where Class is the Product class.
         == Sample Code ==
         The function CreateMaze (page 84) builds and returns a maze. One problem with this function is that it hard-codes the classes of maze, rooms, doors, and walls. We'll introduce factory methods to let subclasses choose these components.
         Factory methods pervade toolkits and frameworks. The preceding document example is a typical use in MacApp and ET++ [WGM88]. The manipulator example is from Unidraw.
  • HelpOnMacros . . . . 4 matches
         $myplugins=array("각주"=>"FootNote",...); # ...는 생략을 뜻합니다. 다른 내용이 없으면 쓰지 않으셔야 합니다.
         ||{{{[[RandomPage]]}}} || 랜덤페이지 || [[RandomPage]] ||
         ||{{{[[RandomPage(#)]]}}} || 여러개의 랜덤 페이지. 인자는 숫자 || [[RandomPage(2)]] ||
  • InvestMulti - 09.22 . . . . 4 matches
          print '5. View Ranking '
          t0 = raw_input('INPUT ID ---->')
          user[t0] = raw_input('INPUT PASSWORD ---->')
          select = raw_input('Select Menu -->')
          Ranking()
          ID = raw_input('INPUT ID ---->')
          user[ID] = raw_input('INPUT PASSWORD ---->')
          for i in range(0,4):
          for j in range(0,3):
          print '5. View Ranking '
          select = raw_input('Select Menu -->')
          m.ranking()
          for i in range(0,4):
          for j in range(0,3):
          ID = raw_input('INPUT ID ---->')
          user[ID] = raw_input('INPUT PASSWORD ---->')
          print '5. View Ranking '
          select = raw_input('Select Menu -->')
          m.ranking()
          def ranking(self):
  • JavaScript/2011년스터디/URLHunter . . . . 4 matches
         [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보자!!
          var mop=new Array(40);
          function redraw(){
          var temp=Math.floor(Math.random()*40)+1
          var temp=Math.floor(Math.random()*10)+1;
          redraw();
          redraw();
          switch(event.keyCode){
          redraw();
          var code = (window.event)? window.event.keyCode: e.which;
          if(code == 39) map.H.right();
          else if (code == 37) map.H.left();
          else if (code == 32) map.kill();
          this.randomMove = function(){
          var t = (Math.floor(Math.random()*100)%3);
          this.a1 = new Monster(Math.floor(Math.random()*MapLength));
          this.a2 = new Monster(Math.floor(Math.random()*MapLength));
          this.a3 = new Monster(Math.floor(Math.random()*MapLength));
          this.a4 = new Monster(Math.floor(Math.random()*MapLength));
          this.a5 = new Monster(Math.floor(Math.random()*MapLength));
  • LinuxProgramming/SignalHandling . . . . 4 matches
          SIGALRM - signal raised by alarm
          SIGFPE - floating point exception -- "erroneous arithmetic operation"(SUS)
          SIGTRAP - trace/breakpoint trap
          SIGVTALRM - signal raised by timer counting virtual time -- "virtual timer expired"(SUS)
         = sample code =
         code written by eternalbleu@gmail.com
         code written by eternalbleu@gmail.com
         code written by eternalbleu@gmail.com
         desc: timer program that use SIGALRM signal.
         [LinuxProgramming]
  • MajorMap . . . . 4 matches
         = ComputerArchitecture =
         It's related ProgrammingLanguage, DigitalLogicDesign(, 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.
         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]
         2-bit Gray codes
  • MoinMoinTodo . . . . 4 matches
          * 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.
          * 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.
          * configurable fonts, font sizes etc. (copy master CSS file to a user one, and send that)
          * create a dir per page in the "backup" dir; provide an upgrade.py script to adapt existing wikis
          * [[SiteMap]]: find the hotspots and create a hierarchical list of all pages (again, faster with caching)
          * look at cvsweb code (color-coded, side-by-side comparisons)
          * or look at viewcvs www.lyra.org/viewcvs (a nicer python version of cvsweb with bonsai like features)
          * Create MoinMoinI18n master sets (english help pages are done, see HelpIndex, translations are welcome)
          * Check generated HTML code for conformity
          * Support URNs, see http://www.ietf.org/internet-drafts/draft-daigle-uri-std-00.txt and http://www.ietf.org/internet-drafts/draft-hakala-isbn-00.txt
          * Add display of config params (lower/uppercase letterns) to the SystemInfo macro.
          * Make a sitemap using Wiki:GraphViz
          * Configuration ''outside'' the script proper (config file instead of moin_config.py)
  • ProjectEazy . . . . 4 matches
         [http://www.unicode.org/versions/Unicode4.0.0/ch11.pdf 유니코드표준 동아시아(한글 포함)]
         [http://www.unicode.org/charts/PDF/U3130.pdf 유니코드 한글 조합형 표]
         [http://www.unicode.org/charts/PDF/UAC00.pdf 유니코드 한글 완성형 표]
         PyKug:CJKCodecs - 파이선 한글 코덱, hangul모듈 다운로드
  • RandomPageMacro . . . . 4 matches
         {{{[[RandomPage(9)]]}}}
         [[RandomPage(9)]]
         {{{[[RandomPage]]}}}
         [[RandomPage]]
  • RandomWalk2/영동 . . . . 4 matches
         사실 이제 Random도 아니죠... Scheduled에 가깝겠죠.
         //RandomWalk2
         //Random Walk
         작성자: ["Yggdrasil"]
         ["RandomWalk2"]
  • Refactoring/ComposingMethods . . . . 4 matches
         == Extract Method p110 ==
          * You have a code fragment that can be grouped together.[[BR]]''Turn the fragment into a method whose name explains the purpose of the method.''
          int getRating(){
          int getRating(){
          * 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.''
         == Split Temprorary Variable p128 ==
          * 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.''
         == Remove Assignments to Parameters p131 ==
          * The code assigns to a parameter. ''Use a temporary variagle instead.''
          * You have a long method that uses local variagles in such a way that you cannot apply ''Extract Method(110)''. [[BR]]
          ListCandidates = Arrays.asList(new String[] {"Don", John", "Kent"});
  • Refactoring/SimplifyingConditionalExpressions . . . . 4 matches
          * You have a complicated conditional (if-then-else) statement. [[BR]] ''Extract methods from the condition, then part, and else parts.''
          charge = quantity * _winterRate + _winterServeceCharge;
          else charge = quantity * _summerRate;
          * You have a sequence of conditional tests with the same result. [[BR]]''Combine them into a single conditional expression and extract it.''
         == Consolidate Duplicate Conditional Fragments ==
          * The same fragment of code is in all branches of a conditional expression. [[BR]]''Move it outside of the expression.''
          if (_isSeparated) result = separatedAmount();
          if (_isSeparated) return separatedAmount();
          * You have a conditional that chooses different behavior depending on the type of and object [[BR]] ''Move each leg of the conditional to an overriding method in a subclass. Make the orginal method abstract.''
          * A section of code assumes something about the state of the program. [[BR]]''Make the assumption explicit with an assertion.''
  • ScheduledWalk/임인택 . . . . 4 matches
         package RandomWalk;
         public class RandomWalk {
          public RandomWalk() {
          char c = schedule.charAt(i);
          e.printStackTrace();
          new RandomWalk();
  • TestFirstProgramming . . . . 4 matches
         어떻게 보면 질답법과도 같다. 프로그래머는 일단 자신이 만들려고 하는 부분에 대해 질문을 내리고, TestCase를 먼저 만들어 냄으로서 의도를 표현한다. 이렇게 UnitTest Code를 먼저 만듬으로서 UnitTest FrameWork와 컴파일러에게 내가 본래 만들고자 하는 기능과 현재 만들어지고 있는 코드가 하는일이 일치하는지에 대해 어느정도 디버깅될 정보를 등록해놓는다. 이로서 컴파일러는 언어의 문법에러 검증뿐만 아니라 알고리즘 자체에 대한 디버깅기능을 어느정도 수행해주게 된다.
         ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
          * wiki:Wiki:CodeUnitTestFirst, wiki:Wiki:TestFirstDesign, wiki:Wiki:TestDrivenProgramming
          * wiki:NoSmok:TestFirstProgramming
          * wiki:Wiki:ExtremeProgrammingUnitTestingApproach
         === Test Code Refactoring ===
         프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
          * wiki:Wiki:RefactoringTestCode
         === Test - Code Cycle ===
         테스트를 작성하는 때와 Code 를 작성하는 때의 주기가 길어질수록 힘들다. 주기가 너무 길어졌다고 생각되면 다음을 명심하라.
         === Test Code Approach ===
         전자의 경우는 일종의 '부분결과 - 부분결과' 를 이어나가면서 최종목표로 접근하는 방법이다. 이는 어떻게 보면 Functional Approach 와 유사하다. (Context Diagram 을 기준으로 계속 Divide & Conquer 해 나가면서 가장 작은 모듈들을 추출해내고, 그 모듈들을 하나하나씩 정복해나가는 방법)
         Test - Code 주기가 길다고 생각되거나, 테스트 가능한 경우에 대한 아이디어가 떠오르지 않은 경우, 접근 방법을 다르게 가져보는 것도 하나의 방법이 될 수 있겠다.
         Test Code 를 작성하진 않았지만, 이런 경험은 있었다. PairProgramming 을 하는 중 파트너에게
         === Random Generator ===
         Random 은 우리가 예측할 수 없는 값이다. 이를 처음부터 테스트를 하려고 하는 것은 좋은 접근이 되지 못한다. 이 경우에는 Random Generator 를 ["MockObjects"] 로 구현하여 예측 가능한 Random 값이 나오도록 한 뒤, 테스트를 할 수 있겠다.
         이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
         ["ExtremeProgramming"]
  • VMWare/OSImplementationTest . . . . 4 matches
         [http://neri.cafe24.com/menu/bbs/view.php?id=kb&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=x86&select_arrange=headnum&desc=asc&no=264 출처보기]
          or ah, ah ; Check for error code
          or ah, ah ; Check for error code
          jmp 08h:clear_pipe ; Jump to code segment, offset clear_pipe
         gdt_code: ; Code segment, read/execute, nonconforming
         number of parameters.\n\n");
         input file %s. Aborting operation...", args[i]);
         --------------------Configuration: testos - Win32 Release--------------------
  • WikiTextFormattingTestPage . . . . 4 matches
         Revised 1/05/01, 5:45 PM EST -- adding "test" links in double square brackets, as TWiki allows.
         http://narasimha.tangentially.com/cgi-bin/n.exe?twiky%20editWiki(%22WikiEngineReviewTextFormattingTest%22)
         The original Wiki:WardsWiki text formatting rules make no provision for headings. They can be simulated by applying emphasis. See the next several lines.
          This line, prefixed with one or more spaces, should appear as monospaced text. Monospaced text does not wrap.
         wrapped
         paragraph
         separate
         The next phrase, even though enclosed in triple quotes, '''will not display in bold because
         I've broken the phrase across a line''' boundary by inserting a <return>.
         If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
         Note that the logic seems to be easily confused. In the next paragraph I combine the two sentences (with no other changes). Notice the results. (The portion between the "innermost" set of triple quotes, and nothing else, is bold.)
         The next phrase, even though enclosed in triple quotes, '''will not display in bold because
         I've broken the phrase across a line''' boundary by inserting a <return>. If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
         This is another bulleted list, formatted the same way but with shortened lines to display the behavior when nested and when separated by blank lines.
          Wiki: A very strange wonderland. (Formatted as <tab>Wiki:<tab>A very strange wonderland.)
          Wiki: A very strange wonderland.
          Wiki: A very strange wonderland.
         Indented Paragraphs (For quotations)
          : Fourscore and seven years ago, our forefathers brought forth upon this continent a new nation, conceived in liberty, ... and I wish I could remember the rest. Formatted by preceding this paragraph with <tab><space>:<tab>.
          :: Here I tried some experimentation to see if I could indent a paragraph 8 spaces instead of 4 -- not successful but there might be a way. Fourscore and seven years ago, our forefathers brought forth upon this continent a new nation, conceived in liberty, ... and I wish I could remember the rest. Formatted by preceding this paragraph with <tab><tab><space>::<tab><tab>.
  • ZP&COW세미나 . . . . 4 matches
          * 로보코드 홈페이지: http://www-903.ibm.com/developerworks/kr/robocode/robocode.html
          * Extreme Programming Installed, Ron Jeffries, 인사이트
         http://165.194.17.15/pub/upload_one/robocode_result1.GIF
         http://165.194.17.15/pub/upload_one/robocode_result2.GIF
  • cookieSend.py . . . . 4 matches
         def generateCookieString(aDict):
         def getResponse(host="", port=80, webpage="", method="GET", paramDict=None, cookieDict=None):
          header = {"Content-Type":"application/x-www-form-urlencoded",
          print "encode cookie : " , urllib.urlencode(cookieDict)
          header['Cookie'] = generateCookieString(cookieDict)
          params=urllib.urlencode(paramDict)
          print "param : " , params
          conn.request(method, webpage, params, header)
          params = {"gg":"ff"}
          httpData = getResponse(host="zeropage.org", webpage="/~reset/testing.php", method='GET', paramDict=params, cookieDict=cookie)
  • 그래픽스세미나/1주차 . . . . 4 matches
          * Raster-Scan Display
          * 각각에 Outcode를 부여한다.
          * 선의 시작점과 끝점이 들어있는 영역의 Outcode 2개를 AND 연산한다.
          * Outcode가 0000 일 경우엔 Clipping 이 필요하다.
         || [남훈] || Upload:gl_triangle_znth.rar ||
         || 윤정수 || Upload:HW1_DrawTriangle.zip ||
  • 기본데이터베이스/조현태 . . . . 4 matches
          printf ("ERROR!! - code:00 - Wrong order!!\n");
          printf("ERROR!! - code:03 - data overflow!!\n");
          printf("ERROR!! - code:02 - Can't find deleted data!!\n");
          printf("ERROR!! - code:01 - Can't find!!\n");
  • 데블스캠프2009/화요일 . . . . 4 matches
         || 장혁수 || robocode || || ||
         || 변형진 || The Abstractionism || 컴퓨터공학의 발전과 함께한 노가다의 지혜 || attachment:/DevilsCamp2009/Abstractionism.ppt ||
         ||pm 01:00~02:00 || robocode || 장혁수 ||
         ||pm 02:00~03:00 || robocode || 장혁수 ||
         ||pm 03:00~04:00 || robocode || 장혁수 ||
  • 데블스캠프2012/넷째날/묻지마Csharp/서민관 . . . . 4 matches
          Random rand = new Random();
          int moveX = rand.Next(-4, 4);
          int moveY = rand.Next(-4, 4);
          Random rand = new Random();
          int respownX = rand.Next(this.Size.Width);
          int respownY = rand.Next(this.Size.Height);
          if (e.KeyCode == Keys.Up)
          else if (e.KeyCode == Keys.Down)
          else if (e.KeyCode == Keys.Left)
          else if (e.KeyCode == Keys.Right)
  • 새싹교실/2012/AClass/5회차 . . . . 4 matches
         level, racecar, deed는 palindrome, sadfds는 not Palindrome
         char code[100];
         scanf("%s",code);
         while(code[i]!='\0')
         printf("%c",key+code[i]);
         level, racecar, deed는 palindrome, sadfds는 not Palindrome
  • 오목/민수민 . . . . 4 matches
         #pragma once
         // Operations
          // ClassWizard generated virtual function overrides
          virtual void OnDraw(CDC* pDC); // overridden to draw this view
         // Generated message map functions
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          // TODO: add construction code here
         // CSampleView drawing
         void CSampleView::OnDraw(CDC* pDC)
          // TODO: add draw code for native data here
          // default preparation
          // TODO: add extra initialization before printing
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your message handler code here and/or call default
  • 오목/진훈,원명 . . . . 4 matches
         #pragma once
         // Operations
          // ClassWizard generated virtual function overrides
          virtual void OnDraw(CDC* pDC); // overridden to draw this view
         // Generated message map functions
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          // TODO: add construction code here
         // COmokView drawing
         void COmokView::OnDraw(CDC* pDC)
          // TODO: add draw code for native data here
          // default preparation
          // TODO: add extra initialization before printing
          // TODO: Add your message handler code here and/or call default
          // TODO: Add your specialized code here and/or call the base class
  • 정모/2011.4.4/CodeRace/김수경 . . . . 4 matches
          * 2011년 4월 4일 정모에서 진행된 레이튼 교수와 함께하는 CodeRace.진행자라서 직접 CodeRace에 참여하지 못한 것이 아쉬워 늦게라도 코딩해본다. 오늘 정말 일찍 자려고 했는데 누워있다가 이거 너무너무 짜보고 싶어서 갑자기 잠이 슬슬 깨길래 어떻게 할 지 고민. 고민하다 잠이 달아날 정도로 하고 싶은 것은 그냥 넘기면 안 되겠다 싶어 새벽 3시에 일어나 코딩 시작.
          * [TDD]로 개발하려 했는데 rake aborted! No Rakefile found. 라는 메세지가 뜨면서 테스트가 실행되지 않아 포기함. 한시간동안 계속 찾아봤지만 모르겠다. 영어 문서를 읽으면 답이 있을 것 같은데 더 이상은 영어를 읽고싶지않아ㅜㅜㅜㅜㅜㅜ
         [정모/2011.4.4/CodeRace]
  • 2학기자바스터디/운세게임 . . . . 3 matches
         = 난수발생(Random) =
          Random r = new Random();
  • 3rdPCinCAUCSE/FastHand전략 . . . . 3 matches
         C 번의 경우는 일단 [geniumin] 군이 초기 분석 & 알고리즘을 만들고 중반에 [1002]군이 pseudo-code 화, 후반 알고리즘 검산 & 알고리즘 수정에 대해서 [geniumin] & [경태]군이, 구현은 pseudo code 를 만들던 [1002]가 했습니다.
         [경태]가 코딩을 맡았으며 그 동안 [1002] 와 [geniumin] 가 3번문제에 대해 분석. [1002]는 실제 문제를 이해하는 시간이 적었던 관계로 [geniumin] 이 주로 설명. 추후에 [1002] 는 [geniumin] 의 방법이 맞다는 전제하에 pseudo code로의 작성을 도왔습니다.
         처음에 두명은 C 번에 대해서 Graph 스타일의 접근을 하였고, 한명은 순차적인 링크드 리스트의 묶음 & recursive 한 순회로 접근했습니다. 의견을 이야기하던중, 실제 구현상으로 볼때 셋의 의견이 같다는 것을 파악하고, 마저 구현으로 들어갔습니다.
         ComputerGraphicsClass 수업 레포트와 전자상거래 레포트, ComputerNetworkClass 레포트 구현 관계상 3명이 거의 일주일 내내 밤새면서 몸이 축난 중에도 수상을 하게 되어서 기뻤습니다. (문제풀던중 코 후비던 [1002]군이 피를 봤다는 후일담이 전해지고 있다는..;) 동기들끼리의 팀이여서 그런지 완벽한 룰 설정과 호흡, 아이디어의 모음이 빛을 발했다고 생각합니다.
  • BasicJAVA2005/실습1/조현태 . . . . 3 matches
         import java.util.Random;
          Random NumberCreator = new Random();
  • Boost/SmartPointer . . . . 3 matches
         typedef Vertexs::iterator VertexsItr;
         // use, modify, sell and distribute this software is granted provided this
         // without express or implied warranty, and with no claim as to its
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         // argument, so would not work as intended. At that point the code was
          bool operator()( const FooPtr & a, const FooPtr & b )
          void operator()( const FooPtr & a )
         // This example demonstrates the handle/body idiom (also called pimpl and
         // several other names). It separates the interface (in this header file)
         // some translation units using this header, shared_ptr< implementation >
         // shared_ptr_example2.cpp translation unit where functions requiring a
          example & operator=( const example & );
         example & example::operator=( const example & s )
         // Boost shared_ptr_example2_test main program ------------------------------//
  • BoostLibrary/SmartPointer . . . . 3 matches
         typedef Vertexs::iterator VertexsItr;
         // use, modify, sell and distribute this software is granted provided this
         // without express or implied warranty, and with no claim as to its
         // The original code for this example appeared in the shared_ptr documentation.
         // Ray Gallimore pointed out that foo_set was missing a Compare template
         // argument, so would not work as intended. At that point the code was
          bool operator()( const FooPtr & a, const FooPtr & b )
          void operator()( const FooPtr & a )
         // This example demonstrates the handle/body idiom (also called pimpl and
         // several other names). It separates the interface (in this header file)
         // some translation units using this header, shared_ptr< implementation >
         // shared_ptr_example2.cpp translation unit where functions requiring a
          example & operator=( const example & );
         example & example::operator=( const example & s )
         // Boost shared_ptr_example2_test main program ------------------------------//
         BoostLibrary
  • BuildingWikiParserUsingPlex . . . . 3 matches
         Plex 로 Wiki Page Parser 를 만들던중. Plex 는 아주 훌륭한 readability 의 lexical analyzer code 를 만들도록 도와준다.
          upperCase = Range('AZ')
          lowerCase = Range('az')
          enterCode = Str("\n")
          ruler = Str("----") + enterCode
          rawTextStart=Str("{{{~cpp ")
          rawTextEnd=Str("} } }")
          def repl_rawTextStart(self, aText):
          self.begin("rawtext")
          def repl_rawTextEnd(self, aText):
          (rawTextStart, repl_rawTextStart),
          State('rawtext', [
          (rawTextEnd, repl_rawTextEnd),
          (enterCode, repl_enter),
  • CodeRace . . . . 3 matches
         --제로페이지에서는 [http://altlang.org/fest/CodeRace 코드레이스]를 (밥 먹으러) 가기 전에 즐깁니다.--
         이 대회는 신입생의 흥미를 불러일으키기위해서 시행될수도 있습니다. 이때는 재학생을 같이 참여시켜 [PairProgramming]을 활용해 보는 것도 좋은 방법입니다.
         [정모/2013.5.6/Code Race]
         [정모/2011.4.4/Code Race]
  • CodeRace/Rank . . . . 3 matches
         = CodeRace/Rank =
         [CodeRace]
  • ComputerNetworkClass/Report2006/BuildingWebServer . . . . 3 matches
          * http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project2
          * [http://orchid.cse.cau.ac.kr/course/cn/project/webserver-code.htm 참고자료]
          * [http://msdn.microsoft.com/library/en-us/winsock/winsock/winsock_functions.asp Winsock Functions]
          * [http://dasomnetwork.com/~leedw/mywiki/moin.cgi/NetworkProgramming 네트워크프로그래밍]
          * [http://www.sockaddr.com/ExampleSourceCode.html example code]
          * [CeeThreadProgramming]
  • ContestScoreBoard/차영권 . . . . 3 matches
         void RankTeam(Team *team, bool *joined);
          RankTeam(team, joined);
         void RankTeam(Team *team, bool *joined)
  • DataCommunicationSummaryProject/Chapter9 . . . . 3 matches
         == Short-Range Wireless Networks ==
          * cellular networks가 cell을 반경으로 하는데 비하여, Short-Range Wireless Networks는 아주 짧은 반경,Ultra Wide Banded 을 사용,고속이다.pbx처럼 pirvate networks이다.
          * cellular networks가 예상보다 빠르게 성장한데 비하여,short-range mobile systems은 덜 성공적이였다.그 이유에는 속도,유선에 비하여 신뢰성의 떨어짐, 경쟁적인 기준이 있다.물론 Cordless phones 처럼 인기있는것도 있지만, 점점 범위를 늘리려고 한다. 또한roaming에서의 실패성이 많다.적외선이 laptop 이나 PDA에서 거의 사용되지만 잘 사용되지 않는다.
          * ISM(Industrail,Scientific, and Medical) 는 의사소통을 위한것이 아니다. 따라서 이 범위의 주파수는 국가에서 나두었다. 그래서 무선 전화나 무선 랜에서 사용된다.
          * License-Free Radio 통신서비스를 하도록 허락한 주파수대이다.(돈주고 판것이것지) 물론 미국과 유럽의 기준이 약간 틀리다.
          * CCK(Complementary Code Keying)라고 불리는DSSS의 2.4GHZ를 사용한다. 물론 기존의 기계와 호환성을 기진다. MAC하는 방법은 CSMA/CA(여기서 A는 avoidance이다 유선과는 틀리다) half-duples이다.shared이다. 대역폭이 11Mbps이지만 오보헤드가 심하다. 여기에다가 쉐어드이니 장에가 심하면 1-2Mbps밖에 안된다.하지만 데이터 전송률은 쓸만하다. 이러한 낭비를 줄이려고 차세대로 갈수록 물리적인 데이터 율을 줄인다.
          * 이동 노드가 Probe Frame 전송
          * ProbeResponse Frame을 받은 모든 AP 응답
          * AP 선택 : AssociatedRequest Frame 전송
          * AP는 AssociationResponse Frame 응답
          * Infrared LANs : 볼거 없다. 그냥 적외선으로 랜 하는거다.
  • DebuggingSeminar_2005/AutoExp.dat . . . . 3 matches
         Visual C++ .net 에 있는 파일이다. {{{~cpp C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\Debugger}}} 에 존재한다.
         ; Copyright(c) 1997-2001 Microsoft Corporation. All Rights Reserved.
         ; sign, and text with replaceable parts in angle brackets. The
         ; part in angle brackets names a member of the type and an
         ; angle brackets (<>), and comma are taken literally. Square
         ; brackets ([]) indicate optional items.
         ; c Single character 0x0065,c 'e'
         ; su Unicode string pVar,su "Hello world"
         tagMSG =msg=<message,x> wp=<wParam,x> lp=<lParam,x>
         CByteArray =count=<m_nCount>
         ; same for all CXXXArray classes
         ;ANSI C++ Standard Template library
         std::basic_string<char,std::char_traits<char>,std::allocator<char> >=$BUILTIN(NSTDSTRING)
         std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >=$BUILTIN(WSTDSTRING)
         std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >=$BUILTIN(WSTDSTRING)
         ; You need to list the error code in unsigned decimal, followed by the message.
         ;1234=my custom error code
  • DirectDraw/Example . . . . 3 matches
         #include <ddraw.h>
         // Foward declarations of functions included in this code module:
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
          // TODO: Place code here.
          hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_SIMPLEDX);
          if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
          TranslateMessage(&msg);
          return msg.wParam;
         // This function and its usage is only necessary if you want this code
          wcex.style = CS_HREDRAW | CS_VREDRAW;
          wcex.cbClsExtra = 0;
          wcex.cbWndExtra = 0;
         // create and display the main program window.
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
          wmId = LOWORD(wParam);
          wmEvent = HIWORD(wParam);
          return DefWindowProc(hWnd, message, wParam, lParam);
          return DefWindowProc(hWnd, message, wParam, lParam);
         LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
  • EightQueenProblem . . . . 3 matches
         시간을 잴 때에는 Wiki:SandglassProgramming 에 소개된 프로그램을 이용하면 편리합니다. 화장실을 다녀온다든가 할 때 필요한 중간 멈춤(pause) 기능도 있습니다.
         ||강석천|| 4h:50m || 135 lines (+ 82 line for testcode. total 217 lines)|| python || ["EightQueenProblem/강석천"] ||
         ||강석천|| 0h:47m || 72 lines (+ 58 line for testcode. total 132 lines)|| python || . ||
         ||김형용|| 8h:00m || 115 lines (+ 63 line for testcode. total 178 lines) || python || ["EightQueenProblem/김형용"]||
          * 공동 학습(collaborative/collective learning)을 유도하기 위해
  • EightQueenProblem/용쟁호투 . . . . 3 matches
         = 파워빌더 소스(eightqueenproblem.sra) =
         $PBExportHeader$eightqueenproblem.sra
         $PBExportComments$Generated Application Object
         global transaction sqlca
         Randomize(0)
          li_x = Rand(8)
          li_y = Rand(8)
         sqlca=create transaction
  • FOURGODS/김태진 . . . . 3 matches
         // codersHigh2013
          freopen("/Users/jkim/Development/C&C++/codersHigh2013/codersHigh2013/input.txt","r",stdin);
  • Gnutella-MoreFree . . . . 3 matches
          5개의 Descriptor를 사용하고 TCP/IP 프로토콜과 ASCII Code를 기반으로
          Range:bytes=0-rn
          Range가 파일의 이어받기가 가능하게 함.
          Range:bytes=0-rn
          - Trailer
          VendorCode(3byte) OpenDataSize(1byte) OpenData(2byte) PrivateData(n)
         2. Gnutella Core Code
          2.2 Class Hierarchal Diagram
          Compile / Execute 가능한 Code를 손에 얻을 수 있는 프로그램이다. 물론
         std::list<ResultGroup>::iterator itGroup;
         OnReceive(int nErrorCode) 에서 Content-length 만큼의 버퍼 데이타를 받아 청크와 연결 시킨다.
         // Extract results from the packet
         AttemptPort += rand() % 99 + 0;
  • HardcoreCppStudy/세번째숙제 . . . . 3 matches
          * 이번주는 참석율도 그렇고 해서 숙제를 딴 걸 냈습니다. 바로 ZeroWiki:ScheduledWalk 짜오기! 즉, ZeroWiki:RandomWalk2입니다.
          * ZeroWiki:RandomWalk2
          * 그날 영동이 짠 소스: ZeroWiki:RandomWalk/영동 의 아랫부분을 참조하세요.
  • HighResolutionTimer . . . . 3 matches
         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.
  • JavaStudy2002/세연-2주차 . . . . 3 matches
          Random random = new Random();
          dir = random.nextInt() % 8;
         public class RandomWalk{
  • JavaStudy2002/영동-2주차 . . . . 3 matches
          System.out.println("RandomWalk");
          Random rand=new Random();
          way=rand.nextInt()%8;
         작성자: ["Yggdrasil"]
  • Linux . . . . 3 matches
         [[include(틀:OperatingSystems)]]
         [[https://groups.google.com/forum/#!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ 전설적인 서문]]
         I'm doing a (free) operating system (just a hobby, won't be big and
         (same physical layout of the file-system (due to practical reasons)
         This implies that I'll get something practical within a few months, and
         PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
         [http://www-106.ibm.com/developerworks/linux/library/l-web26/ 리눅스2.4와 2.6커널의 비교 자료]
         [http://phpschool.com/bbs2/inc_print.html?id=11194&code=tnt2] linux에서 NTFS 마운트 하기
         [http://j2k.naver.com/j2k_frame.php/korean/http://www.linux.or.jp/JF/ 리눅스 문서 일본어화 프로젝트(LJFP)]
         [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의 소개, 인터뷰기사등]
         [OperatingSystem]
  • Map연습문제/나휘동 . . . . 3 matches
          string decoded;
          decoded += ch;
          cout << decoded << endl;
  • MatrixAndQuaternionsFaq . . . . 3 matches
         Q3. How do I represent a matrix using the C/C++ programming languages?
         Q8. What is the transpose of a matrix?
         Q10. How do I subtract two matrices?
         Q12. How do I square or raise a matrix to a power?
         Q21. How do I calculate the inverse of a matrix using Kramer's rule?
         TRANSFORMS
         Q27. How do I generate a rotation matrix in the X-axis?
         Q28. How do I generate a rotation matrix in the Y-axis?
         Q29. How do I generate a rotation matrix in the Z-axis?
         Q35. How do I generate a rotation matrix from Euler angles?
         Q36. How do I generate Euler angles from a rotation matrix?
         Q37. How do I generate a rotation matrix for a selected axis and angle?
         Q38. How do I generate a rotation matrix to map one vector onto another?
         Q39. What is a translation matrix?
          In this document (as in most math textbooks), all matrices are drawn
          in the standard mathematical manner. Unfortunately graphics libraries
          Hence, in this document you will see (for example) a 4x4 Translation
          OpenGL uses a one-dimensional array to store matrices - but fortunately,
          In the code snippets scattered throughout this document, a one-dimensional
          array is used to store a matrix. The ordering of the array elements is
  • MoniWikiPlugins . . . . 3 matches
          * Draw /!\ Hotdraw (1.0.9 cvs에서 다시 작동함)
          * trackback
          * RandomBanner
          * RandomQuote
          * urlencode
  • NSIS/예제2 . . . . 3 matches
         InstallDir $PROGRAMFILES\Example2
          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
         InstallDir $PROGRAMFILES\Example2
          Delete "$SMPROGRAMS\Example2\*.*"
          RMDir "$SMPROGRAMS\Example2"
         InstallDir $PROGRAMFILES\Example2
          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
          Delete "$SMPROGRAMS\Example2\*.*"
          RMDir "$SMPROGRAMS\Example2"
         Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
         InstallDir: "$PROGRAMFILES\Example2"
         CreateDirectory: "$SMPROGRAMS\Example2"
         CreateShortCut: "$SMPROGRAMS\Example2\Uninstall.lnk"->"$INSTDIR\uninstall.exe" icon:$INSTDIR\uninstall.exe,0, showmode=0x0, hotkey=0x0
         CreateShortCut: "$SMPROGRAMS\Example2\Example2 (notepad).lnk"->"$INSTDIR\notepad.exe" icon:$INSTDIR\notepad.exe,0, showmode=0x0, hotkey=0x0
         Delete: "$SMPROGRAMS\Example2\*.*"
         RMDir: "$SMPROGRAMS\Example2"
  • NSIS/예제3 . . . . 3 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] - 실행가능.
         BrandingText "ZeroPage Install v1.0"
         ; BGGradient
         BGGradient 000000 308030 FFFFFF
         InstallDir $PROGRAMFILES\zp_tetris
         Section "ProgramFiles"
          CreateDirectory "$SMPROGRAMS\ZPTetris"
          CreateShortCut "$SMPROGRAMS\ZPTetris\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
          CreateShortCut "$SMPROGRAMS\ZPTetris\ZPTetris.lnk" "$INSTDIR\tetris.exe"
          Delete "$SMPROGRAMS\ZPTetris\*.*"
          RMDir "$SMPROGRAMS\ZPTetris"
         Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
         BrandingText: "ZeroPage Install v1.0"
         BGGradient: 000000->308030 (text=16777215)
         InstallDir: "$PROGRAMFILES\zp_tetris"
         Section: "ProgramFiles"
         File: "MainFrame.cpp" [compress] 620/1365 bytes
         File: "MainFrame.h" [compress] 603/1342 bytes
         CreateDirectory: "$SMPROGRAMS\ZPTetris"
         CreateShortCut: "$SMPROGRAMS\ZPTetris\Uninstall.lnk"->"$INSTDIR\uninstall.exe" icon:$INSTDIR\uninstall.exe,0, showmode=0x0, hotkey=0x0
  • OurMajorLangIsCAndCPlusPlus/ctype.h . . . . 3 matches
         || int isgraph(int c) || 공백문자를 제외한 출력가능 문자인지 검사한다. ||
         || 함수명 (Uncode) || 내용 ||
         || int iswalpha(wint_t) || Uncode 인지 확인 (한글 등) ||
         || int iswgraph(wint_t) || 공백문자를 제외한 출력가능 문자인지 검사한다. ||
         || int isleadbyte(int) || 주어진 문자가 Uncode인지 확인(alpha와 동일) ||
  • PairProgrammingForGroupStudy . . . . 3 matches
         PairProgramming이란 ExtremeProgramming이라고 하는 새로운 소프트웨어 개발 방법론의 한가지 기법으로, 두명이 한 컴퓨터를 이용해서 같이 프로그래밍을 하는 것을 말합니다.
         저는 여기서 PairProgramming의 교육적 효과와 이를 그룹 스터디나 프로젝트 팀 교육에 응용하는 방법을 간략히 서술하겠습니다.
         여기서는 단기간에 이런 PairProgramming을 통해서 팀 내에 지식이 확산되게 하거나, 그룹 스터디에 이용할 수 있는 방법을 보도록 하죠.
         이렇게 되면 E와 F는 전문가인 A와 B와 직접 PairProgramming을 하고 나머지 네명은 자기들끼리 PairProgramming을 하게 되죠. 처음 pairing에서 C와 G, D와 H는 태스크를 완수해지 못해도 괜찮습니다 -- 대신 문제 영역을 탐색하는 동안 어느 정도의 학습은 발생하거든요.
         이 상태에서는 A와 B는 ExpertRating이 0이고, E와 F는 1이 됩니다. 이 개념은 Erdos라는 수학자가 만든 것인데, Expert 자신은 0이 되고, 그 사람과 한번이라도 pairing을 했으면 1이 됩니다. 그리고, expert와 pairing한 사람과 pairing을 하면 2가 됩니다. expert는 사람들의 ExpertRating을 낮추는 식으로 짝짓기 스케쥴링을 맞춰갑니다. 물론 처음에는 C,D,G,H는 아무 점수도 없죠. 이럴 때는 "Infinite"이라고 합니다.
         여기서는 각각의 ExpertRating은, C=2, D=2, E=1, F=1, G=1, H=1이 되겠죠. (A,B는 시원source이므로 여전히 0)
         너무나 좋은 글을 읽은 것 같습니다. 선배님이 써주신 PairProgramming에 관한 글을 순식간에 읽었습니다 ^^ 이런 방법이 스터디의 방법으로 자리잡는다면 초보자의 실력향상에 엄청난 도움이 되겠군요
  • ProgrammingContest . . . . 3 matches
         http://www.itasoftware.com/careers/programmers.php
          ''Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천''
         수준이 궁금하신 분들은 K-In-A-Row를 풀어보세요. http://ipsc.ksp.sk/problems/prac2002/sampl_r.php
         만약 자신이 K-In-A-Row를 한 시간 이상 걸려도 풀지 못했다면 왜 그랬을까 이유를 생각해 보고, 무엇을 바꾸어(보통 완전히 뒤집는 NoSmok:역발상 으로, 전혀 반대의 "極"을 시도) 다시 해보면 개선이 될지 생각해 보고, 다시 한번 "전혀 새로운 접근법"으로 풀어보세요. (see also DoItAgainToLearn) 여기서 새로운 접근법이란 단순히 "다른 알고리즘"을 의미하진 않습니다. 그냥 내키는 대로 프로그래밍을 했다면, 종이에 의사코드(pseudo-code)를 쓴 후에 프로그래밍을 해보고, 수작업 테스팅을 했다면 자동 테스팅을 해보고, TDD를 했다면 TDD 없이 해보시고(만약 하지 않았다면 TDD를 하면서 해보시고), 할 일을 계획하지 않았다면 할 일을 미리 써놓고 하나씩 빨간줄로 지워나가면서 프로그래밍 해보세요. 무엇을 배웠습니까? 당신이 이 작업을 30분 이내에 끝내려면 어떤 방법들을 취하고, 또 버려야 할까요?
         === Strategy ===
         만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.
         === topcoder ===
         http://topcoder.com
         http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. ["이덕준"]은 ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
  • ProjectPrometheus/AT_BookSearch . . . . 3 matches
         DEFAULT_HEADER = {"Content-Type":"application/x-www-form-urlencoded",
          "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
         def getSimpleSearchResponse(params):
          params=urllib.urlencode(params)
          conn.request("POST", DEFAULT_SERVICE_SIMPLE_PATH, params, DEFAULT_HEADER)
         def getAdvancedSearchResponse(params):
          params=urllib.urlencode(params)
          conn.request("POST", DEFAULT_SERVICE_ADVANCED_PATH, params, DEFAULT_HEADER)
          params = {'TI':'Test', 'AU':'', 'IB':'', 'PU':'', 'OP1':'','OP2':'','OP3':''}
          data = getAdvancedSearchResponse(params)
          params = {'TI':'', 'AU':'김소월', 'IB':'', 'PU':'', 'OP1':'','OP2':'','OP3':''}
          data = getAdvancedSearchResponse(params)
          params = {'TI':'한글', 'AU':'', 'IB':'', 'PU':'', 'OP1':'','OP2':'','OP3':''}
          data = getAdvancedSearchResponse(params)
          params = {'keyword':'한글'}
          data = getSimpleSearchResponse(params)
          params = {'keyword':'897087223X'}
          data = getSimpleSearchResponse(params)
          params = {'keyword':'한글3'}
          data = getSimpleSearchResponse(params)
  • ProjectPrometheus/LibraryCgiAnalysis . . . . 3 matches
         params={'LIBRCODE': 'ATSL',
          #'operator1': '&',
         headers = {"Content-Type":"application/x-www-form-urlencoded",
          "Referer":"http://165.194.100.2/cgi-bin/mcu100?LIBRCODE=ATSL&USERID=*&SYSDB=R",
         def getSrchResult(headers,params):
          params=urllib.urlencode(params)
          conn.request("POST", "/cgi-bin/mcu200", params, headers)
         def getSrchResult2(params):
          params=urllib.urlencode(params)
          f = urllib.urlopen("http://165.194.100.2/cgi-bin/mcu200", params)
         http://165.194.100.2/cgi-bin/mcu201?LIBRCODE=ATSL&USERID=abracadabra&SYSDB=R&HISNO=0010&SEQNO=21&MAXDISP=10
         &pKeyWordC=%28+%28-TI-+WITH+%28extreme+programming+%29+.TXT.%29++%29 - 검색 관련 키워드
  • RandomWalk/영동 . . . . 3 matches
          cout<<"Random Walk"<<endl;
          srand((unsigned)time(NULL));
          a=rand()%input;
          srand((unsigned)time(NULL));
          b=rand()%input;
          way=rand()%8+1;
          a_bug.way=rand()%DIRECTION;
          srand((unsigned)time(NULL));
          srand((unsigned)time(NULL));
          way=rand()%DIRECTION;
         === RandomWalk.cpp (Main함수) ===
         작성자: ["Yggdrasil"]
         ["RandomWalk"]
  • RandomWalk2/TestCase2 . . . . 3 matches
         c:\RandomWalk2Test> alltest.bat test.exe
         {{{~cpp C:\RandomWalk2Test> fc output1.txt e-output1.txt}}}를 통해 정답과 자동 비교를 해볼 수 있습니다.
         ["RandomWalk2"]
  • Refactoring/BuildingTestCode . . . . 3 matches
         == The Value of Self-testing Code ==
         나로하여금 self-testing code로의 길을 시작하게 한 계기는 OOPSLA '92의 한 이야기부터였다. 그때 누군가 (아마도 Dave Thomas)"클래스는 자기 자신의 테스트코드를 가지고 있어야 한다" 라는 말을 했다. 이 말은 테스트를 구성하기 위한 좋은 방법으로 여겨졌다. 나는 모든 클래스에 클래스 스스로를 테스트하는 메소드들 (''test''라 한다.)들을 가지도록 만들었다.
         테스팅 코드는 ExtremeProgramming 의 중요한 부분이다. [Beck, XP]. 이 이름은 빠르고 게으른 해커같은 프로그래머들에겐 마술주문과 같을 것이다. 하지만, extreme programmer들은 테스트에 대해 매우 헌신적이다. 그들은 가능한 한 소프트웨어가 빠르게 발전하기 원하고, 그들은 테스트들이 당신을 아마 갈 수 있는 한 빠르게 갈 수 있도록 도와줄 것을 안다.
         이정도에서 이야기는 충분하다 본다. 비록 내가 self-testing code를 작성하는 것이 모두에게 이익이 된다고 생각하더라도, 그것은 이 책의 핵심이 아니다. 이 책은 Refactoring에 관한 것이다. Refactoring은 test를 요구한다. 만일 Refactoring 하기 원한다면, test code를 작성해야 한다.
  • SeparatingUserInterfaceCode . . . . 3 matches
         Upload:separation.pdf
         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.
         너무 이상적이라고 말할지 모르겠지만, DIP 의 원리를 잘 지킨다면(Dependency 는 Abstraction 에 대해서만 맺는다 등) 가능하지 않을까 생각. 또는, 위에서의 WIMP를 그대로 웹으로 바꾸어도. 어떠한 디자인이 나올까 상상해본다.
  • SmallTalk/강좌FromHitel/강의2 . . . . 3 matches
          시다. 그러면 "Transcript"와 "Workspace"라는 제목을 가진 두 개의 창이 뜰
          ☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
          AbstractToTextConverter ACCEL AcceleratorPresenter AcceleratorTable
          UserLibrary default invalidate: nil lpRect: nil bErase: true.
          우리가 방금 실행했던 <바탕글 1>과 "UserLibrary"로 시작하는 명령을, 이번
          부터 100 까의 수 100개가 들어 있는 배열(array)을 만들어 내는 명령입니
          (Random new next: 6) collect: [:n | (n * 49) rounded].
          r := Random new.
          s asSortedCollection asArray.
          (source code)를 찾아내는 명령입니다. 3MB가 넘는 큰 용량의 파일을 뒤져서
          "Transcript"라는 이름의 창만 하나 덜렁 남아 있게 되었습니다. 썰렁하지
  • SmallTalk/강좌FromHitel/강의3 . . . . 3 matches
         * Zip Code: 여러분의 우편번호를 넣습니다. 700-234.
         * Image Code: 여기에 "Locked Image" 창에 표시된 Image code를 넣습니다.
         그러면 Image Code와 그에 해당하는 Password를 발급 받게 됩니다. "Locked
          내용: Username과 Image code.
          UserLibrary default invalidate: nil lpRect: nil bErase: true.
         이 파일은 Dolphin Smalltalk 바탕본의 바탕글(source code)입니다. 여기에
  • TellVsAsk . . . . 3 matches
         원문 : http://www.pragmaticprogrammer.com/ppllc/papers/1998_05.html 중 'Tell vs Ask'
         Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
         Sure, you may say, that's obvious. I'd never write code like that. Still, it's very easy to get lulled into
         what you want. Let it figure out how to do it. Think declaratively instead of procedurally!
         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
  • TheJavaMan/숫자야구 . . . . 3 matches
         public class BBGameFrame extends Frame implements WindowListener{
          static BBGameFrame f;
          public BBGameFrame(String aStr){
          f = new BBGameFrame("숫 자 야 구 게 임 !");
          System.exit(0); // Program을 종료한다.
         import java.util.Random;
          * To change the template for this generated file go to
          * Window - Preferences - Java - Code Generation - Code and Comments
          * To change the template for this generated type comment go to
          * Window - Preferences - Java - Code Generation - Code and Comments
          Random rmd = new Random();
          if ( correct_answer.charAt(i) == aStr.charAt(i))
          if ( correct_answer.charAt(i) == aStr.charAt(j))
          BBGameFrame frame = new BBGameFrame();
          frame.show();
          frame.giveFocus();
         BBGameFrame.java
         import javax.swing.JFrame;
          * To change the template for this generated file go to
          * Window - Preferences - Java - Code Generation - Code and Comments
  • TheJavaMan/지뢰찾기 . . . . 3 matches
          Random rand = new Random();
          r = Math.abs(rand.nextInt()) % row;
          c = Math.abs(rand.nextInt()) % col;
          kan[i][j].setBorder(BorderFactory.createRaisedBevelBorder());
  • TkinterProgramming/Calculator2 . . . . 3 matches
         class SLabel(Frame):
          Frame.__init__(self, master, bg='gray40')
          font=("arial", 6, "bold"), width=5, bg='gray40').pack(
          font=("arial", 6, "bold"), width=1, bg='gray40').pack(
          def runpython(self, code):
          return repr(eval(code, self.myNameSpace, self.myNameSpace))
          exec code in self.myNameSpace, self.myNamespace
         class Calculator(Frame):
          Frame.__init__(self, bg='gray40')
          'matrix': self.doThis, 'program' : self.doThis,
          'vars' : self.doThis, 'clear' : self.clearall,
          def clearall(self, *args):
          KC1 = 'gray30'
          KC2 = 'gray50'
          ('Prgm', 'Draw', '', KC1, FUN, 'program'),
          hull_background='gray40', hull_borderwidth = 10,
          rowa = Frame(self, bg='gray40')
          rowb = Frame(self, bg='gray40')
  • ZPBoard/PHPStudy/기본문법 . . . . 3 matches
         code..
         code..
         code..
  • html5/form . . . . 3 matches
          * 입력 양식 : Range 양식, email등
         == webForms2 library ==
          * http://code.google.com/p/webforms2/
          * HTML5 의 Canvas를 지원하지 않는 IE8 이전 버전을 위해 ExplorerCanvas(http://code.google.com/p/explorercanvas/) 라이브러리가 제공되듯이 HTML5 확장 폼을 지원하지 않는 브라우저의 경우 WebForm2 라이브러리를 사용할만 하다
          * http://nz.pe.kr/wordpress/programming/html5/번역-지금-바로-cross-browser-html5-form-만드는-방법
          * range
         == range ==
          * {{{<input type="range" min=0 max=10 step=2 value=2>}}}
          * {{{<input type="text" name="postCode" pattern="/^\d{3}-?\d{3}$/" title="123-123">}}}
          * opera
  • 기술적인의미에서의ZeroPage . . . . 3 matches
         extracted from ZeroPage
         The zero page instructions allow for shorter code and excution times by only feching the
         Careful use of the zero page can result in significant increase in code efficient.
         The zero page is the memory address page at the absolute beginning of a computer's address space (the lowermost page, covered by the memory address range 0 ... page size?1).
         In early computers, including the PDP-8, the zero page had a special fast addressing mode, which facilitated its use for temporary storage of data and compensated for the relative shortage of CPU registers. The PDP-8 had only one register, so zero page addressing was essential.
         Possibly unimaginable by computer users after the 1980s, the RAM of a computer used to be faster than or as fast as the CPU during the 1970s. Thus it made sense to have few registers and use the main memory as substitutes. Since each memory location within the zero page of a 16-bit address bus computer may be addressed by a single byte, it was faster, in 8-bit data bus machines, to access such a location rather than a non-zero page one.
         For example, the MOS Technology 6502 has only six non-general purpose registers. As a result, it used the zero page extensively. Many instructions are coded differently for zero page and non-zero page addresses:
         예를 들자면 the MOS Technology 6502 는 오직 6개의 non-general 목적을 가진 레지스터를 가지고 있었다. 결과적으로 이는 것은 제로페이지라는 개념을 폭넓게 사용하였다. 많은 명령어들이 제로페이지와 제로페이지가 아닌 어드레씽을 위해서 다르게 쓰여졌다.
         Zero page addressing now has mostly historical significance, since the developments in integrated circuit technology have made adding more registers to a CPU less expensive, and have made CPU operations much faster than RAM accesses. Some computer architectures still reserve the beginning of address space for other purposes, though; for instance, the Intel x86 systems reserve the first 512 words of address space for the interrupt table.
         IC테크놀로지의 발전이 더욱 적은 비용으로 CPU의 레지스터를 늘리게 되었고 이에따라서 RAM을 액세스하는 것 보다 더욱 빠른 CPU명령어를 처리하게 되었기 때문에 제로페이지는 이제 대개는 역시적인 의미를 갖는다. 그럼에도 불구하고, 어떤 컴퓨터 아키텍처는 여전히 다른 목적을 위해서 제로페이지라는 개념을 제공하기는 한다; 예를 들자면 인텔의 x86은 인터럽트 테이블의 사용을 위해서 512워드의 공간을 사용한다.
  • 데블스캠프2003/셋째날 . . . . 3 matches
         [RandomWalk2/Leonardong]
         [Random Walk2/곽세환]
         [RandomWalk/창재]
  • 레밍즈프로젝트/프로토타입/에니메이션버튼 . . . . 3 matches
         || animate(.AVI) button || [http://www.codeproject.com/buttonctrl/anibuttons.asp] ||
         || ImageButton(.jpeg, .gif...) || [http://www.codeproject.com/buttonctrl/CKbcButton.asp] ||
         || XP MediaCenter Button || [http://www.codeproject.com/buttonctrl/CMCButton.asp] ||
  • 방울뱀스터디/GUI . . . . 3 matches
         frame = Frame(root)
         frame.pack()
         entry = Entry(frame)
         textWrite = Label(frame, text="Hello World!")
         button = Button(frame, text="Push Button", fg="red", command=frame.quit)
         check = Checkbutton(frame, text="Check Button", variable=var, command=cb)
         radio1 = Radiobutton(frame, text="One", variable=var, value=1)
         radio2 = Radiobutton(frame, text="Two", variable=var, value=2)
         radio1.pack(anchor=w)
         radio2.pack(anchor=w)
         radio1단추를 선택하면 var변수의 값은 1이되고, radio2단추를 선택하면 var변수의 값이 2가된다.
         Radiobutton 함수호출에서 indicatoron=0을 넣어주면 라디오버튼모양이 푸시버튼모양으로 된다.
         scrollbar = Scrollbar(frame)
         listbox = Listbox(frame, yscrollcommand=scrollbar.set) # 1번 작업
         textArea = Text(frame, width=80, height=20)
  • 서지혜 . . . . 3 matches
         Someday you'll say something that you'll wish could take back - drama, House
         나의 [http://rabierre.wordpress.com 블로그]
          * super super programmer - Guru가 되고 싶어요.
          1. Training 1000시간
          1. TopCoder 목표점수 1000점
         == TRACE ==
          * ~~레이튼의 강건너기 see also [정모/2011.4.4/CodeRace]~~
          1. Training Diary
          * 갑작스레 엄청난 이민의 압박을 받아 Ruby on Rails를 시작하려 함. ~~가볍기로 소문났으니 12/31까지 toy 만들어보기로 목표.~~
          * 기념으로 Jetbrain사의 RubyMine구매 (12/21 지구멸망기념으로 엄청 싸게 팔더라)
          1. [https://github.com/Rabierre/my-calculator my calculator]
          1. Training Diary
          * 망함.. 프로젝트가 망했다기 보다 내가 deliberate practice를 안해서 필요가 없어졌음...
          * 디버거를 사용할 수 없는 환경을 난생 처음 만남. print문과 로그만으로 디버깅을 할 수 있다는 것을 깨달았다. 정보 로그, 에러 로그를 분리해서 에러로그만 보면 편하다. 버그가 의심되는 부분에 printf문을 삽입해서 값의 변화를 추적하는 것도 효과적이다(달리 할수 있는 방법이 없다..). 오늘 보게된 [http://wiki.kldp.org/wiki.php/HowToBeAProgrammer#s-3.1.1 HowToBeAProgrammer]에 이 내용이 올라와있다!! 이럴수가 난 삽질쟁이가 아니었음. 기쁘다.
          1. Scarab
          * [SmalltalkBestPracticePatterns]
  • 알고리즘5주참고자료 . . . . 3 matches
         [http://en.wikipedia.org/wiki/Randomized_algorithm Randomized algorithm]
         [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/avrim/www/Randalgs97/home.html 관련자료]
  • 오목/곽세환,조재화 . . . . 3 matches
         #pragma once
         // Operations
          // ClassWizard generated virtual function overrides
          virtual void OnDraw(CDC* pDC); // overridden to draw this view
          int array[10][10];
         // Generated message map functions
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          // TODO: add construction code here
          array[i][j]=-1;
         // COhbokView drawing
         void COhbokView::OnDraw(CDC* pDC)
          // TODO: add draw code for native data here
          if(array[i][j]==0)
          if(array[i][j]==1)
          // default preparation
          // TODO: add extra initialization before printing
          // TODO: Add your message handler code here and/or call default
          else if(array[(point.y+15-50)/30][(point.x+15-50)/30] != -1)
          array[(point.y+15-50)/30][(point.x+15-50)/30] = turn % 2;
          while(array[a-1][x] == z && a > 0 )
  • 오목/재선,동일 . . . . 3 matches
         #pragma once
         // Operations
          // ClassWizard generated virtual function overrides
          virtual void OnDraw(CDC* pDC); // overridden to draw this view
         // Generated message map functions
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          // TODO: add construction code here
         // CSingleView drawing
         void CSingleView::OnDraw(CDC* pDC)
          // TODO: add draw code for native data here
          // default preparation
          // TODO: add extra initialization before printing
          // TODO: Add your message handler code here and/or call default
  • ACE/HelloWorld . . . . 2 matches
          * 먼저 [ACE] 라이브러리를 다운받아 컴파일해야 한다. [http://riverace.com 여기]서 다운받아 컴파일한다. 빌드 컨피큐레이션이 프로젝트별로 3~4개씩 있는데 이거 한번에 컴파일하는데 30분 넘게 걸렸었다...-_-; (P4 2.4G, 512MB, VC6)
          * include path 에 ace 라이브러리가 있는 곳의 경로를 넣어준다. [임인택]의 경우 {{{~cpp E:libc&c++ACE_wrappers}}}.
          * project setting 에서 link 탭에 aced.lib (디버그용), 또는 ace.lib 을 추가한다. (프로젝트 홈 디렉토리에 lib, dll 파일이있거나 path 가 걸려있어야 한다. 혹은 additional library path에 추가되어 있어야 한다)
          * project setting 에서 c++ 탭에 code generation->use run-time library 에서 (debug) multithreaded 또는 (debug) multithreaded dll (무슨차이가 있는지 아직 확실하게 모르겠다)
         === code ===
         include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
  • ACM_ICPC/2011년스터디 . . . . 2 matches
         || [김태진] || 2606 || Rabbit hunt ||좀 쉬워보이는 기하문제에 도전합니당 ||
         || [정의정] || 2970 || The lazy programmer ||물론 제가 게으르다는 말은 아닙니다. ||
          * [RabbitHunt/김태진] // 왜 소숫값을 못받니.. 어째 코드가 완성이 되가더니.. (아직 낫 accept;;)
          * PIGS(1149)와 The lazy programmer(2970) 중에서 하나 풀어오기
          * 재귀함수와 백트래킹, Dynamic Programming에 난항을 겪어 최적해구하는 문제에서 고전했습니다.
  • AM/AboutMFC . . . . 2 matches
         || Upload:MFC_Macro_code_23of3_2001.11.11.doc ||분석||
         전세계에서 가장 유명한 사이트는 역시 http://codeguru.com 국내는 데브피아 겠죠. 데브피아가 상업화 되면서 어떻게 변했는지는 모르겠네요.
         F12로 따라가는 것은 한계가 있습니다.(제가 F12 기능 자체를 몰랐기도 하지만, F12는 단순 검색에 의존하는 면이 강해서 검색 불가거나 Template을 도배한 7.0이후 부터 복수로 결과가 튀어 나올때가 많죠. ) 그래서 MFC프로그래밍을 할때 하나의 새로운 프로젝트를 열어 놓고 라이브러리 서치용으로 사용합니다. Include와 Library 디렉토리의 모든 MFC관련 자료를 통째로 복사해 소스와 헤더를 정리해 프로젝트에 넣어 버립니다. 그렇게 해놓으면 class 창에서 찾아가기 용이하게 바뀝니다. 모든 파일 전체 검색 역시 쉽게 할수 있습니다.
  • AVG-GCC . . . . 2 matches
          -pass-exit-codes Exit with highest error code from a phase[[BR]]
          -print-libgcc-file-name Display the name of the compiler's companion library[[BR]]
          -print-file-name=<lib> Display the full path to library <lib>[[BR]]
          multiple library search directories[[BR]]
          -Wa,<options> Pass comma-separated <options> on to the assembler [[BR]]
          -Wp,<options> Pass comma-separated <options> on to the preprocessor[[BR]]
          -Wl,<options> Pass comma-separated <options> on to the linker[[BR]]
          -pipe Use pipes rather than intermediate files[[BR]]
          -v Display the programs invoked by the compiler[[BR]]
  • Applet포함HTML/상욱 . . . . 2 matches
         <applet code=Applet1 whdth=200 height=70>
          codebase = "http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_01-windows-i586.cab#Version=1,4,1,1"
          <PARAM NAME = CODE VALUE = Applet1 >
          <PARAM NAME = "type" VALUE = "application/x-java-applet;jpi-version=1.4.1_01">
          <PARAM NAME = "scriptable" VALUE = "false">
          CODE = Applet1
         <APPLET CODE = Applet1 WIDTH = 200 HEIGHT = 70>
  • Applet포함HTML/영동 . . . . 2 matches
         <applet code=AppletTest width=200 height=100>
          codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4_0_03-win.cab#Version=1,4,0,30">
          <PARAM NAME = CODE VALUE = AppletTest >
          <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4.0_03">
          <PARAM NAME="scriptable" VALUE="false">
          CODE = AppletTest
         <APPLET CODE = AppletTest WIDTH = 200 HEIGHT = 100>
  • AseParserByJhs . . . . 2 matches
         #define WIREFRAME_COLOR "*WIREFRAME_COLOR"
         #define OBJECT_ROT_EXIST "*CONTROL_ROT_TRACK"
         #define OBJECT_POS_EXIST "*CONTROL_POS_TRACK"
         // for(StlListItor itorAll = pSL->begin (); itorAll!= pSL->end (); ++itorAll) {
          itor = pSL->erase(itor);
          // 모두 월드 좌표들이었습니다. 모델 각각의 위치로 Translate 나 Rotate를
          matrix_t tmp_trans, tmp_rot;
          matrixIdentity (tmp_trans);
          matrixTranslate (tmp_trans, pM->Pos);
          matrixMultiply (tmp_rot, tmp_trans, pM->tm);
          if (t >= degToRad(180)) {
          t = degToRad(360) - t;
  • BasicJAVA2005/실습1/송수생 . . . . 2 matches
          Random number = new Random();
  • C/Assembly . . . . 2 matches
         -fomit-frame-pointer 함수를 call 할때 fp를 유지하는 코드(pushl %ebp, leave)를 생성하지 않도록 한다.
         asm(".code16\n");
         asm(".code32\n");
  • C99표준에추가된C언어의엄청좋은기능 . . . . 2 matches
         printf("Array Size? ");
          * 알아본 결과 C99에서 지원되는 것으로 표준이 맞으며, 단지 VS의 컴파일러가 C99를 완전히 만족시키지 않기 때문이라고함. gcc도 3.0 이후버전부터 지원된 기능으로 variable-length array 이라고 부르는군요. (gcc는 C99발표이전부터 extension 의 형태로 지원을 하기는 했다고 합니다.) - [eternalbleu]
          [http://www-128.ibm.com/developerworks/linux/library/l-c99.html?ca=dgr-lnxw07UsingC99 Open source development using C99]
          The new variable-length array (VLA) feature is partially available. Simple VLAs will work. However, this is a pure coincidence; in fact, GNU C has its own variable-length array support. As a result, while simple code using variable-length arrays will work, a lot of code will run into the differences between the older GNU C support for VLAs and the C99 definition. Declare arrays whose length is a local variable, but don't try to go much further.
  • CodeCoverage . . . . 2 matches
         CodeCoverage 는 Testing 이 목표 어플리케이션을 얼만큼 충분히 테스트하는가에 대한 측정 지표이다.
         원문 : http://www.wikipedia.org/wiki/Code_coverage
         CodeCoverage 는 Software Testing 에서 사용하는 측정 도구중의 하나이다. 프로그램이 테스트된 소스 코드의 정도를 기술한다. 이는 다른 대다수의 다른 테스트 메소드와 다른다. 왜냐하면 CodeCoverage 는 소프트웨어 기능, Object interface 과 같은 다른 측정 방법에 비하여 source code를 직접 보기 ㅤㄸㅒㅤ문이다.
         몇가지 CodeCoverage 의 측정의 방법이 있다. 그중 중점적인것 몇가지를 보면
          * StatementCoverage - 각 소스 코드 각 라인이 테스트 시에 실행되는가?
          * ConditionCoverage - 각 측정 시점( 가령 true/false 선택 따위) 이 실행되고 테스트 되는가?
          * PathCoverage - 주어진 코드 부분의 가능한 모든 경로가 실행되고, 테스트 되는가? (Note 루프안에 가지(분기점)를 포함하는 프로그램에 대하여 코드에 대하여 가능한 모든 경로를 세는것은 거의 불가능하다. See Also HaltingProblem[http://www.wikipedia.org/wiki/Halting_Problem 링크] )
         일반적으로 소스 코드는 모듈화를 통해 도구처럼 만들어지고, 회귀(regression) 테스트들을 통해 실행되어 진다. 결과 출력은 실행지 않은 코드들을 보고, 이러한 부분에 대한 테스트들이 필요함을 분석해 낸다. 다른 관점의 CodeCoverage 방법들과 혼용하는 것은 회귀 테스트들의 관리하는 회귀 테스트들에게 좀더 엄격한 개발을 이끌어 낸다.
         CodeCoverage 는 최종적으로 퍼센트로 표현한다. 가령 ''우리는 67% 코드를 테스트한다.'' 라고 말이다. 이것의 의미는 이용된 CodeCoverage 에 대한 얼마만큼의 의존성을 가지는가이다. 가령 67%의 PathCoverage는 67%의 StatementCoverage 에 비하여 좀더 범위가 넓다.
         See also: RegressionTesting, StaticCodeAnalysis
         http://wiki.cs.uiuc.edu/SEcourse/Code+coverage+tool
         === Code Coverage Tool ===
          * http://www.validatedsoftware.com/code_coverage_tools.html : Code Coverage Tool Vender 들
  • CodeRace/20060105/도현승한 . . . . 2 matches
         [codeRace/20060105]
          for(vector<string>::iterator iter = aVec.begin(); iter!=aVec.end(); iter++)
          for(vector<string>::iterator iter = aVec.begin(); iter!=aVec.end(); iter++)
  • DebuggingApplication . . . . 2 matches
         TRACE
         [http://msdn.microsoft.com/library/FRE/vsdebug/html/_core_the_trace_macro.asp?frame=true]
         [http://www.codeguru.com/forum/showthread.php?t=315371]
         [http://msdn.microsoft.com/library/en-us/vsdebug/html/_core_using_c_run2dtime_library_debugging_support.asp?frame=true]
         [http://www.codeproject.com/debug/mapfile.asp]
  • EffectiveSTL/Container . . . . 2 matches
          * STL을 구성하는 핵심 요소에는 여러 가지가 있다.(Iterator, Generic Algorithm, Container 등등). 역시 가장 핵심적이고, 조금만 알아도 쓸수 있고, 편하게 쓸수 있는 것은 Container다. Container는 Vector, List, Deque 과 같이 데이터를 담는 그릇과 같은 Object라고 보면 된다.
          * 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)를 지원한다.
         vector<Type>::itarator // typedef vector<Type>::iterator VTIT 이런식으로 바꿀수 있다. 앞으로는 저렇게 길게 쓰지 않고도 VIIT 이렇게 쓸수 있다.
         = Item5. Prefer range member functions to their single-element counterparts. =
         for(vector<Object>::const_itarator VWCI = a.begin() + a.size()/2 ; VWCI != a.end() ; ++VWCI)
          * copy, push_back 이런것은 넣어줄때 insert iterator를 사용한다. 즉, 하나 넣고 메모리 할당 해주고, 객체 복사하고(큰 객체면... --; 묵념), 또 하나 넣어주고 저 짓하고.. 이런것이다. 하지만 assign은 똑같은 작업을 한번에 짠~, 만약 100개의 객체를 넣는다면 assign은 copy이런것보다 1/100 밖에 시간이 안걸린다는 것이다.(정확하진 않겠지만.. 뭐 그러하다.)
          * range 멤버 메소드는 주어진 두개의 반복자로 크기를 계산해서 한번에 옮기고 넣는다. 벡터를 예로 들면, 만약에 주어진 공간이 꽉 찼을때, insert를 수행하면, 새로운 공간 할당해서 지금의 내용들과, 넣으려는 것들을 그리로 옮기고 지금 있는걸 지우는 작업이 수행된다. 이짓을 100번 해보라, 컴퓨터가 상당히 기분나빠할지도 모른다. 하지만 range 멤버 메소드는 미리 늘려야 할 크기를 알기 때문에 한번만 하면 된다.
          * 성능 따지기 골치 아픈 사람이라도, range 시리즈가 하나씩 시리즈보다 타이핑 양이 적다는 걸 알것이다.
         list<int> data(ifstream_iterator<int>(dataFile),ifstream_iterator<int>()); // 이런 방법도 있군. 난 맨날 돌려가면서 넣었는데..--;
         ifstream_iterator<int> dataBegin(dataFile);
         ifstream_iterator<int> dataEnd;
         for(vector<Object*>::iterator i = v.begin() ; i != v.end() ; ++i)
          void operator()(const T* ptr) const
         = Item9. Choose carefully among erasing options. =
         c.erase( remove(c.begin(), c.end(), 1982), c.end() ); // 이건 내부적으로 어떻게 돌아가는 걸까. 찾아봐야겠군.
          * list일때 - erase 써도 되지만 remove가 더 효율적이다.
         c.erase(1982);
  • EightQueenProblem/밥벌레 . . . . 2 matches
          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
          { Private declarations }
          { Public declarations }
          Table: array[0..8-1, 0..8-1] of Boolean;
         procedure SetQueens(n: Integer); // 퀸 배치하기. 이 소스의 핵심함수. n은 현재 사용안한다. 처음엔 RandomSeed로 쓰려했음..-_-;
          row := random(8);
         procedure DrawQueens;
          DrawQueens;
          Randomize;
          DrawQueens;
          DrawQueens;
  • EightQueenProblem2Discussion . . . . 2 matches
         이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
         두번째 문제에 답이 있었군요.. 역시 제답이 틀리군요 실패의 원인은 제대된 알고리즘이 없다는 것이라고 생각합니다 BackTracking 알고리즘을 보고 왔지만 이문제에 대한 설명도 보왔습니다. 하지만 알고리즘에 무지해서 그런지 잘 눈에 들어오지 않습니다. 그래도 밤새 풀면서(엉뚱한 답이다도) 오래만에 재밌었습니다. ^^-최광식
          ''기본적으로 이 문제는 알고리즘을 스스로 고안(invent)해 내는 경험이 중요합니다. BackTracking 알고리즘을 전혀 모르는 사람도 이 문제를 풀 수 있습니다. 아니, 어떻게 접근을 해야 BackTracking을 전혀 모르는 사람도 이 문제를 쉽게 풀 수 있을까 우리는 생각해 보아야 합니다.''
         BackTracking 이야기가 나오는데, 대강 수업시간에 들은것이 있었지만 그냥 연습장에 판을 그리고 직접 궁리했고요. 결국은 전체 방법에 대한 비교방법이 되어서 (8단계에 대한 Tree) 최종 구현부분은 BackTracking의 방법이 되어버리긴 했네요. (사전지식에 대해 영향받음은 어쩔수 없겠죠. 아에 접해보지 않은이상은. --;) --석천
         하..하하.. BackTracking이.. 뭐죠? 거꾸로.. 추적한다는 이야기같은데.. ㅡㅡa --선호[[BR]][[BR]]
         어제 서점에서 ''Foundations of Algorithms Using C++ Pseudocode''를 봤습니다. 알고리즘 수업 시간에 백트래킹과 EightQueenProblem 문제를 교재를 통해 공부한 사람에게 이 활동은 소기의 효과가 거의 없겠더군요. 그럴 정도일줄은 정말 몰랐습니다. 대충 "이런 문제가 있다" 정도로만 언급되어 있을 주 알았는데... 어느 교재에도 구체적 "해답"이 나와있지 않을, ICPC(ACM의 세계 대학생 프로그래밍 경진대회) 문제 같은 것으로 할 걸 그랬나 봅니다. --김창준
         학교에서 알고리즘 시간에 너무 많이 놀았기 때문인지.. -_-;; 우리 학교에서는 BackTracking이 AI시간에 배우는 부분이라서 그런지..
         BackTracking에 대해 찾아보니 결국 제가 한 방법이 그 방법이군요. 알고리즘자체는 좀 틀리지만 (전 리커시브를 이용...)
  • FortuneCookies . . . . 2 matches
         [[RandomQuote]]
          * "Say it, don't spray it!"
          * "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
          * "Perl is executable line noise, Python is executable pseudo-code."
          * "Heck, I'm having a hard time imagining the DOM as civilized!" -- Fred L. Drake, Jr.
          * He who spends a storm beneath a tree, takes life with a grain of TNT.
          * Even the boldest zebra fears the hungry lion.
          * Might as well be frank, monsieur. It would take a miracle to get you out of Casablanca.
          * You recoil from the crude; you tend naturally toward the exquisite.
          * Today is a good day to bribe a high ranking public official.
          * You display the wonderful traits of charm and courtesy.
          * You have literary talent that you should take pains to develop.
          * Troglodytism does not necessarily imply a low cultural level.
          * You are scrupulously honest, frank, and straightforward.
          * As goatheard learns his trade by goat, so writer learns his trade by wrote.
          * If it pours before seven, it has rained by eleven.
          * You will attract cultured and artistic people to your home.
          * People who take cat naps don't usually sleep in a cat's cradle.
          * Courage is your greatest present need.
          * Don't be overly suspicious where it's not warranted.
  • HolubOnPatterns . . . . 2 matches
          * [http://www.yes24.com/24/Goods/2127215?Acode=101 Holub on Patterns: 실전 코드로 배우는 실용주의 디자인 패턴] - 번역서
          * [http://www.yes24.com/24/goods/1444142?scode=032&OzSrank=1 Holub on Patterns: Learning Design Patterns by Looking at Code] - 원서
  • ISBN_Barcode_Image_Recognition . . . . 2 matches
         = 1D Barcode Image Recognition =
          * EAN-13의 심볼로지에 대해 잘 설명되어 있는 페이지(영문) : http://www.barcodeisland.com/ean13.phtml
          * Left Characters
          * Right Characters
          * Center Guard는 Left Characters와 Right Characters를 구분하는 심볼이다.
          * Left Characters와 Right Characters는 각각 6자리 숫자를 나타낸다.
          * 나머지 한 자리는 Left Characters의 Encoding으로 부터 해석한다. (아래 Encoding에서 설명)
          * Right Characters의 마지막 한 자리는 Check Digit 이다.
         def generate_isbn_check_digit(numbers): # Suppose that 'numbers' is 12-digit numeric string
          for i, number in enumerate(numbers):
         ==== Character ====
         ||Character||Left(Odd)||Left(Even)||Right||
          * 스페이스와 바에 의해 직접적으로 표현되는 숫자는 12개이다. 나머지 하나의 숫자는 Left Character의 인코딩을 해석해 얻어내야 한다. 예를 들어 8801067070256 이라는 EAN-13 바코드가 있을 때, 바코드에 직접적으로 얻어지는건 맨 앞의 자리 '8'이 빠진 801067070256 이고, 이는 Left Character에 해당하는 801067의 인코딩을 보고 알아내야 한다.
  • InternalLinkage . . . . 2 matches
         The second subtlety has to do with the interaction of inlining and static objects inside functions. Look again at the code for the non-member version of thePrinter: ¤ Item M26, P17
         You don't ordinarily need to worry about such linguistic mumbo jumbo, but there is one thing you must remember: functions with internal linkage may be duplicated within a program (i.e., the object code for the program may contain more than one copy of each function with internal linkage), and this duplication includes static objects contained within the functions. The result? If you create an inline non-member function containing a local static object, you may end up with more than one copy of the static object in your program! So don't create inline non-member functions that contain local static data.(9)
         그것은 바로 InternalLinkage 때문이다. InternalLinkage 란, 컴파일 단위(translation unit -> Object Code로 생각해 보자) 내에서 객체나 함수의 이름이 공유되는 방식을 일컫는다. 즉, 객체의 이름이나 함수의 이름은 주어진 컴파일 단위 안에서만 의미를 가진다.
         예를들어, 함수 f가 InternalLinkage를 가지면, 목적코드(Translation Unit) a.obj 에 들어있는 함수 f와 목적코드 c.obj 에 들어있는 함수 f는 동일한 코드임에도 별개의 함수로 인식되어 중복된 코드가 생성된다.
          ''DeleteMe 이 말도 이해가 안갑니다. 주제로 시작한 inline은 중복 코드를 감안하고 성능을 위해서 쓰는 것이 아니 었던가요? 무엇이 문제인가요? inline 이 아닌 함수들은 ExternalLinkage로 전제 되었다고 볼수 있는데, 지적해야 할것은 inline의 operation에 해당하는 코드가 아니라, static 같은 변수가 중복을 예로 들어야 할것을... --NeoCoin''
  • JTDStudy/첫번째과제/상욱 . . . . 2 matches
         {{{~cpp code
          fstNum = "" + (Math.random()*10);
          secNum = "" + (Math.random()*10);
          trdNum = "" + (Math.random()*10);
          if (resultNumber.charAt(i) == userNumber.charAt(j)) {
         {{{~cpp code
         import junit.framework.TestCase;
          if (testString.charAt(0) == '1' &&
          testString.charAt(1) == '2' &&
          testString.charAt(2) == '3')
          assertNotSame(object.getResultNumber().charAt(0), object.getResultNumber().charAt(1));
          assertNotSame(object.getResultNumber().charAt(1), object.getResultNumber().charAt(2));
          assertNotSame(object.getResultNumber().charAt(0), object.getResultNumber().charAt(2));
          * 테스트 코드를 갖고 어떻게 해야하는지 잘 모르겠어요. import junit.framework.TestCase 구문이 있던데 이것은 어디서 가져와야 하나요? -_-;; - [문원명]
         import java.util.Arrays;
          assertEquals(Arrays.asList(actual), Arrays.asList(expect));
         import java.util.Arrays;
         import junit.framework.TestCase;
          assertEquals(Arrays.asList(actual), Arrays.asList(expect));
          from random import randint
  • Java Study2003/첫번째과제/장창재 . . . . 2 matches
          - 자바(Java)를 이야기할 때 크게 두 가지로 나누어 이야기 할 수 있습니다. 먼저, 기계어, 어셈블리어(Assembly), 포트란(FORTRAN), 코볼(COBOL), 파스칼(PASCAL), 또는 C 등과 같이 프로그래밍을 하기 위해 사용하는 자바 언어가 있고, 다른 하나는 자바 언어를 이용하여 프로그래밍 하기 위해 사용할 수 있는 자바 API(Application Programming Interface)와 자바 프로그램을 실행시켜 주기 위한 자바 가상머신(Java Virtual Machine) 등을 가리키는 자바 플랫폼(Platform)이 있습니다. 다시 말해서, 자바 언어는 Visual C++와 비유될 수 있고, 자바 플랫폼은 윈도우 95/98/NT 및 윈도우 95/98/NT API와 비유될 수 있습니다.
          자바 언어(Java Language)를 이용하여 작성한 자바 프로그램(Java Program)은 자바 컴파일러(Java Compiler)를 이용하여 자바 바이트코드(Java Byte code)로 컴파일 되고, 이 자바 바이트코드는 자바 가상머신에 의해 해석되어 실행되는데, 이때 자바 가상머신은 자바 바이트코드에 대한 해석기 즉 인터프리터(interpreter)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
         자바 바이트코드(Java Byte code):
         자바 API(Java Application Programming Interface):
         자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
  • JavaStudy2002/상욱-2주차 . . . . 2 matches
          Random rand = new Random();
          public int randomNumber_1() {
          return rand.nextInt(10000);
          public int randomNumber_2() {
          return rand.nextInt(40000);
          return (randomNumber_1()%3)-1; // -1 is left, 1 is right.
          return (randomNumber_2()%3)-1; // -1 is up, 1 is down.
  • LawOfDemeter . . . . 2 matches
         다음은 http://www.pragmaticprogrammer.com/ppllc/papers/1998_05.html 중 'Law Of Demeter' 에 대한 글.
         tries to restrict class interaction in order to minimize coupling among classes. (For a good discussion on
         any parameters that were passed in to the method.
         The disadvantage, of course, is that you end up writing many small wrapper methods that do very little but
         delegate container traversal and such. The cost tradeoff is between that inefficiency and higher class
         something somewhere else. This tends to create fragile, brittle code.
         Command/Query Separation
         of maintaining these as separate methods. Why bother?
         the code, you can do so with confidence if you know the queries you are calling will not cause anything
  • MFC/MessageMap . . . . 2 matches
          afx_msg LRESULT OnAcceptClient(WPARAM wParam, LPARAM lParam); // 이부분에 이렇게 정의한 메시지를 실행할 함수를 넣어준다. 함수명은 하고 싶은데로..
         afx_msg LRESULT OnAcceptClient(WPARAM wParam, LPARAM lParam)
         = Code Part =
          // ClassWizard generated virtual function overrides
          // DO NOT EDIT what you see in these blocks of generated code !
          // DO NOT EDIT what you see in these blocks of generated code!
          // ClassWizard generated virtual function overrides
          * main frame window object
          * frame windows object (linked with view activate)
         #define WM_SETREDRAW 0x000B
         #define WM_ERASEBKGND 0x0014
          * Struct pointed to by WM_GETMINMAXINFO lParam
          POINT ptMinTrackSize;
          POINT ptMaxTrackSize;
         #define WM_ICONERASEBKGND 0x0027
         #define WM_DRAWITEM 0x002B
         #define WM_QUERYDRAGICON 0x0037
          * wParam for WM_POWER window message and DRV_POWER driver notification
          * lParam of WM_COPYDATA message points to...
         #define NFR_UNICODE 2
  • MFC/Serialize . . . . 2 matches
          // ClassWizard generated virtual function overrides
          // TODO: add storing code here
          // TODO: add loading code here
  • Memo . . . . 2 matches
         unicode('배','utf-8', 'replace').encode('euc-kr')
         http://search.costcentral.com/search?p=Q&srid=S9%2d3&lbc=costcentral&ts=custom&w=ThinkPad&uid=975848396&method=and&isort=price&srt=150
         [http://blog.naver.com/anyray?Redirect=Log&logNo=50006688630 여름인데 놀러갈래!]
         RFC 768 User Datagram Protocol
         RFC 793 Transmission Control Protocol
          unsigned short Flags_and_Frags; //Flags 3 bits and Fragment offset 13 bits
          Sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
          printf("CRASHn");
         htpp://zeropage.org/trac/leonardong/
         //Project -> Setting -> LINK 메뉴 -> Object/library modules: 의 끝부분에 ws2_32.lib 를 추가한다.
  • MicrosoftFoundationClasses . . . . 2 matches
         Microsoft Foundation Classes 를 줄여서 부른다. 기정의된 클래스의 집합으로 Visual C++이 이 클래스들을 가반으로 하고 있다. 이 클래스 군은 MS Windows API를 래핑(Wrapping)하여서 객체지향적 접근법으로 프로그래밍을 하도록 설계되어 있다. 예전에는 볼랜드에서 내놓은 OWL(Object Windows Library)라는 것도 쓰였던 걸로 아는데... -_-; 지금은 어디로 가버렸는지 모른다. ㅋㅋ
          ''백과사전) WikiPedia:Microsoft_Foundation_Classes, WikiPedia:Object_Windows_Library ''
         #include <afxwin.h> //about class library
         class CExWnd : public CFrameWnd {
          ''컴파일 해보고자 하는 분들은 Project/Setting/General 항목에서 MFC DLL을 사용한다는 설정을 해야한다.
          Upload:simple_mfc_painter.rar
         [http://www.codeproject.com/ Code Project]
          하나의 document와 frame window는 한개의 document template에 의해서 생성되며 view는 frame window객체가 생성되면서 자동으로 생성되게 된다.
          * {{{~cpp WinMain() 에서 InitInstance() 수행, document template, main frame window, document, view 를 생성한다.}}}
          * [MFC/DynamicLinkLibrary]
          * [MFC/RasterOperation]
         [GUIProgramming] [MFC] [MFC프로그래밍시작하기]
  • NSIS/예제1 . . . . 2 matches
         InstallDir $PROGRAMFILES\TestInstallSetup
         Contributors: nnop@newmail.ru, Ryan Geiss, Andras Varga, Drew Davidson, Peter Windridge, Dave Laundon, Robert Rainwater, Yaroslav Faybishenko, et al.
         InstallDir: "$PROGRAMFILES\TestInstallSetup"
         Output: "C:\Program Files\NSIS\TestInstallSetup.exe"
         Install code+strings: 525 / 944 bytes
  • NotToolsButConcepts . . . . 2 matches
         Raphael Ribeiro wrote:
         > I wanna start learning some real programming language (I know now only
         > programmers, but this is my opinion).
         > And I was reading some docs, which were talking about lots of programming
         - Object Oriented Programming (OOP)
         - Procedural Programming
         - Functional Programming
         more attractive to employers who have a clue about what's important in the
          blocking other team members who wait for you. Using a source code control
          concentration, unit tests, and always trying to improve on yourself help
          * [STL], Container, 등등이 아닌 GenericProgramming
          * MFC, VB 등이 아닌 EventDrivenProgramming + 그외에 녹아있는 패러다임들.
          * Java, C#이 아닌 OOP(ObjectOrientedProgramming),AOP(AspectOrientedProgramming)
         [1002] 가 Windows Programming 을 오래 하다가 EventDrivenProgramming 의 개념을 나름대로 제대로 받아들였다는 느낌이 들었을때는 해당 플랫폼에서 1년 이상 작업했을 때 였다.(여기서 '받아들였다'는 실제 EventDriven Model로 디자인해서 구현해보는 정도) 사람들의 공부 스타일에 따라 차이가 있지만, 해당 개념에 대해 제대로 이해하기 위해선 구현레벨에서의 경험도 필요하다. 위의 '예' 에서 '아닌 - Not' 이란 단어대신 '넘어서 - Beyond' 라는 단어로 바꿔서 읽어보면 어떨까.
         Teach them skepticism about tools, and explain how the state of the software development art (in terms of platforms, techniques, and paradigms) always runs slightly ahead of tool support, so those who aren't dependent on fancy tools have an advantage. --Glenn Vanderburg, see Seminar:AgilityForStudents
  • OptimizeCompile . . . . 2 matches
         프로그램(translation unit)은 진행방향이 분기에 의해 변하지 않는 부분의 집합인 basic block 들로 나눌 수 있는데 이 각각의 block 에 대하여 최적화 하는 것을 local optimization 이라 하고, 둘 이상의 block 에 대하여, 혹은 프로그램 전체를 총괄하는 부분에 대하여 최적화 하는 것을 global optimization 이라고 한다.
         area = 2 * PI * radius;
         area = 2 * 3.14159 * radius;
         area = 6.28318 * radius;
         '''Removing loop invariant code'''
         ==== Reduction of code size ====
          '''Algebraic simplification'''
         수학적으로 같은 값을 가지는 수로 대치하는 것이 바로 algebraic simplification 이다.
         e.g. instruction prefetching, branch prediction, out-of-order execution
         see also ["zennith/MemoryHierarchy"]
  • ProjectPrometheus/Iteration7 . . . . 2 matches
         || Rating( Light View) 추가 || . || ○ ||
         || 로그인 + 보기 + Rating(lightView)|| . || ○ ||
  • ProjectPrometheus/UserStory . . . . 2 matches
         ||Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다. ||
          * Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
  • PyIde/SketchBook . . . . 2 matches
          ''스몰토크 비슷한 환경이 되지 않을까. 소스 코드의 구조적 뷰로는 LEO라는 훌륭한 도구가 있다. 크누스교수의 Literate Programming을 가능케 해주지. 나는 SignatureSurvey를 지원해 주면 어떨까 한다. --JuNe''
         Eclipse 쓰던중 내 코드 네비게이팅 습관을 관찰해보니.. code 를 page up/down 으로 보는 일이 거의 없었다. 이전에 VIM 을 쓰면서 'VIM 으로 프로그래밍하면 빠르다' 라고 느꼈던 이유를 생각해보면
         Python 으로 HTML Code Generator 를 작성하던중. 좀 무식한 방법으로 진행했는데, 원하는 HTML 을 expected 에 고스란히 박아놓은 것이다. 이는 결과적으로 test code 를 네비게이팅 하기 어렵게 만들었고, 해당 Generating 되는 HTML 의 추상도도 상당히 낮게 된다. 한화면에 보여야 할 HTML 데이터도 많아야 한다. 이는 결국 내가 에디터 창을 최대로 놓게 만들더니, 더 나아가 에디터 창의 폰트 사이즈을 11에서 8정도로 줄이고 모니터를 앞당겨 보게끔 만들었다. (15인치 LCD 모니터여서 해상도가 최대 1024*768 임.) 해당 상황에 대해 사람이 맞추는 것이 좋을까, 또는 툴의 Viewing 이 도움을 줄 방법이 있을까, 또는 사람이 이를 문제상황으로 인식하고 프로그램 디자인을 바꾸게끔 하는것이 좋을까.
         Wiki:FitNesse 의 맨 앞 문구 'Beyond Literate Programming' 이라는 말이 참 인상적으로 보인다.
         현재의 UML Case Tool들은 Beyond Literate Programming 일까?
  • PythonLanguage . . . . 2 matches
         '~을 하기에 적합한' 언어는 있어도 '~을 하기 위한' 것이란 없다. -_-; ('~을 하기 위한 API'는 존재할 수 있겠다.) 이녀석도 프로그래밍 언어이므로 프로그래밍을 하기 위한 언어이다. ^^; (PHP도 사람들이 웹프로그래밍으로만 접근해서 그렇지 원래는 shell script programming 도 가능하다. perl 보다 편하게 쓰는 사람들이 많다.)
          * Python 을 '실행가능한 의사코드(pseudo-code)' 라고 부르기도 한다. 그만큼 완성뒤 코드를 보면 참으로 깔끔하다.
          * '''ExtremeProgramming 과 잘 어울린다.'''
          * TestFirstProgramming, UnitTest(PyUnit 참고), ["Refactoring"] 등의 방법론을 같이 접목시키면 더욱 큰 효과를 발휘할 수 있다.
          * ["PyGame"] - Python Game Library
          * [PythonNetworkProgramming]
          * [PythonImageLibrary]
          * [PythonWebProgramming]
          * [AirSpeedTemplateLibrary]
          * [PythonThreadProgramming]
         이미 다른 언어들을 한번쯤 접해본 사람들은 'QuickPythonBook' 을 추천한다. 예제위주와 잘 짜여진 편집으로 접근하기 쉽다. (두께도 별로 안두껍다!) Reference 스타일의 책으로는 bible 의 성격인 'Learning Python' 과 Library Reference 인 'Python Essential Reference' 이 있다.
         Python 으로 무엇을 할 수 있는지를 알고 싶다면 'Programming Python'를 추천.
          * [http://codejob.co.kr/docs/view/2/ 점프 투 파이썬]
         ~~http://users.python.or.kr:9080/PyKUG/TransProjects/Python20Docs/~~
  • R'sSource . . . . 2 matches
         name = raw_input("검색하고 싶은 게이머의 이름을 입력하세요 : ")
         inputDir = raw_input("""저장 하고 싶은 경로를 지정하세요.(예>c:\\\\replay\\\\) : """)
         global keyRace
         keyRace = ''
          for i in range(int(replayNum), 0, itemNum * -1):
  • REFACTORING . . . . 2 matches
          * 기존의 "디자인 후 코딩' 법칙과 반대된다. (TestFirstProgramming 에서 UnitTest - ["Refactoring"] 이 맞물려 돌아간다)
          * Refactoring 을 하기 위해서는 UnitTest code가 필수적이다. 일단 처음 Refactoring에 대한 간단한 원리를 이해하고 싶다면 UnitTest 코드 없이 해도 좋지만, UnitTest code를 작성함으로서 Refactoring 에 대한 효과를 높일 수 있다. (Refactoring 중 본래의 외부기능을 건드리는 실수를 막을 수 있다.)
          * Code Review 를 하려고 할때
          * Bad Smell 이 날때. - ["Refactoring/BadSmellsInCode"]
         그리고 Refactoring 을 이해하는데 ExtremeProgramming 을 이해하면 도움이 될 것이다.
         == Refactoring 과 Test Code ==
         ["Refactoring/BuildingTestCode"]
         ["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
         개인적으로 Refactoring 을 적용하는중, 자주 이용되는 테크닉이 StructuredProgramming 기법인 StepwiseRefinement (Rename 도 일종의 StepwiseRefinement 기술이라 생각이 든다)라는점은 의외일련지 모르겠다. OOP 와 SP 는 상호배제의 관계가 아니기에. --["1002"]
  • RSSAndAtomCompared . . . . 2 matches
         #pragma section-numbers off
         People who generate syndication feeds have a choice of
         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].
         Toru Marumoto has produced [http://www.witha.jp/Atom/RSS-and-Atom.html a Japanese translation].
         IETF standards track RFC) represents the consensus of the
         [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.
          * some other XML vocabulary (There is no guarantee that the recipient will be able to do anything useful with such content)
          * base64-encoded binary content (again, no guarantee)
         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.
         Atom [http://www.ietf.org/internet-drafts/draft-ietf-atompub-autodiscovery-01.txt standardizes autodiscovery]. Additionally, Atom feeds contain a “self” pointer, so a newsreader can auto-subscribe given only the contents of the feed, based on Web-standard dispatching techniques.
         === Extraction and Aggregation ===
         Atom 1.0 allows standalone Atom Entry documents; these could be transferred
         using any network protocol, for example [http://ietfreport.isoc.org/idref/draft-saintandre-atompub-notify/ XMPP]. Atom also has support for aggregated
         RSS 2.0 is not in an XML namespace but may contain elements from other XML namespaces. There is no central place where one can find out about many popular extensions, such as dc:creator and content:encoded.
         RSS 2.0 does not specify the handling of relative URI references, and in practice they cannot be used in RSS feeds.
         === Software Libraries (Parsing, Generating) ===
         Both RSS 2.0 and Atom 1.0 feeds can be accessed via standard HTTP client libraries. Standard caching techniques work well and are encouraged. Template-driven creation of both formats is quite practical.
         Libraries for processing RSS 2.0:
  • RandomPage . . . . 2 matches
         25개의 RandomPage 무작위 추출. ^^;
         [[RandomPage(25)]]
  • RandomQuoteMacro . . . . 2 matches
         {{{[[RandomQuote]]}}}
         [[RandomQuote(3)]]
  • RandomWalk/성재 . . . . 2 matches
         Random Work...
          srand((time(0)));
          b = rand() % num;
          c = rand() % num; //end
          int q = rand() % 8; //end
         ["RandomWalk"]
  • RandomWalk/손동일 . . . . 2 matches
         RandomWalk..
          srand(time(0)); // rand()의 시드값을 설정합니다.
          int x = rand(); // rand()함수는 랜덤한 숫자를 리턴하는 함수입니다.
          int x1 = rand() % 10; // % 10 연산을 하면 x1 에는 10의 나머지가 될 수 있는
          int x2 = rand() % 9 + 1; // % 9를 하면 0~8까지의 숫자가 들어갈 수 있고
          srand(time(0));
          int x = rand() % 5;
          int y = rand() % 5;
          int i = rand() % 3 -1;
          int j = rand() % 3 -1;
          int k = rand() % 3 -1;
          int l = rand() ;
         [RandomWalk] [손동일]
  • RandomWalk/재니 . . . . 2 matches
          cout << "Random-Walker를 실행하겠습니다. 숫자를 입력하십시오. ";
          srand(time(0));
          line = rand() % n;
          row = rand() % n;
          l_or_r = rand() % 2;
          srand(time(0));
          int x = -1, i = rand();
         ["RandomWalk"]
  • RandomWalk2/재동 . . . . 2 matches
         == RandomWalk2 ==
         {{{~cpp RandomWalk2.py}}}
         import unittest, random, os.path
          for i in range(3):
          self.board = [[0 for i in range(self.col)] for j in range(self.row)]
          for row in range(self.row):
          for col in range(self.col):
          for i in range(len(self.path)):
          for i in range(self.rowLength):
          for j in range(self.colLength):
         import unittest, random, os.path
          for who in range(2):
          for who in range(2):
          self.board = [[0 for i in range(self.col)] for j in range(self.row)]
          for row in range(self.row):
          for col in range(self.col):
          for who in range(2):
          for who in range(2):
          for i in range(self.time):
          for who in range(2):
  • RandomWalk2/질문 . . . . 2 matches
         RandomWalk2의 변경4에 대한 질문인데요, (긁어서 보세요)
         ''RandomWalk2 Requirement Modification 4 is now updated. Thank you for the questions.''
  • Randomwalk/조동영 . . . . 2 matches
         = [RandomWalk]/[조동영] =
          srand(time(0));
          int random = rand()%8; // 0~7 까지의 임의의 수 생성해서 random 이란 integer 값에 대입
          if (ibug + imove[random] <0 || ibug + imove[random] > Xroom-1 ||
          jbug + jmove[random] <0 || jbug + jmove[random] > Yroom-1)
          room[ibug+imove[random]][jbug+jmove[random]]++;
          ibug = ibug + imove[random];
          jbug = jbug + jmove[random];
         2차원 동적 배열할때 벡터를 사용해도 좋음. [RandomWalk2/Vector로2차원동적배열만들기] 자료구조 숙제는 [STL]을 사용하면 더 편하게 할수 있는거 같다. - [상협]
  • ServiceQualityOfYongsanMarket . . . . 2 matches
         === Shop code : YS0000 ===
         === Shop code : YS0001 ===
  • SmallTalk/강좌FromHitel/강의4 . . . . 2 matches
         하나는 "System Transcript"라는 제목이 붙어있는 "알림판"(transcript)이
         Smalltalk 환경에서 가장 중요한 창은 "알림판"(transcript)입니다. 원래
         'transcript'라는 낱말의 뜻은 '베껴낸 것, 사본, 등본'인데, Smalltalk를
         깊이 공부하지 못한 필자로써는 왜 transcript라는 낱말이 이 창에 붙게 되
          Transcript show: '안녕하세요?'.
         자, 여러분이 지금 어디에 있던지 Tools > Class Hierarchy Browser 메뉴를
         Hierarchy Browser)를 불러낼 수 있습니다. 갈래씨줄 탐색기를 줄여서 '갈래
         이 갈래씨줄 탐색기는 이러한 갈래들의 씨줄(hierarchy)을 짚어가며 갈래들
         찾아내는 명령입니다. 약 3M 이상 되는 바탕글(source code)에서 글귀를 찾
          SmalltalkWorkspace>>evaluateRange:ifFail:
  • StructuredText . . . . 2 matches
         symbology to indicate the structure of a document. For the next generation of structured text, see [http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextNG here].
         A structured string consists of a sequence of paragraphs separated by
         one or more blank lines. Each paragraph has a level which is defined
         as the minimum indentation of the paragraph. A paragraph is a
         sub-paragraph of another paragraph if the other paragraph is the last
         preceding paragraph that has a lower level.
          * A single-line paragraph whose immediately succeeding paragraphs are lower level is treated as a header.
          * A paragraph that begins with a '-', '*', or 'o' is treated as an unordered list (bullet) element.
          * A paragraph that begins with a sequence of digits followed by a white-space character is treated as an ordered list element.
          * A paragraph that begins with a sequence of sequences, where each sequence is a sequence of digits or a sequence of letters followed by a period, is treated as an ordered list element.
          * A paragraph with a first line that contains some text, followed by some white-space and '--' is treated as a descriptive list element. The leading text is treated as the element title.
          * Sub-paragraphs of a paragraph that ends in the word 'example' or the word 'examples', or '::' is treated as example code and is output as is.
          * Text enclosed single quotes (with white-space to the left of the first quote and whitespace or puctuation to the right of the second quote) is treated as example code.
          * Text surrounded by '*' characters (with white-space to the left of the first '*' and whitespace or puctuation to the right of the second '*') is emphasized.
          * Text surrounded by '**' characters (with white-space to the left of the first '**' and whitespace or puctuation to the right of the second '**') is made strong.
          * Text surrounded by '_' underscore characters (with whitespace to the left and whitespace or punctuation to the right) is made underlined.
          * Text enclosed in brackets which consists only of letters, digits, underscores and dashes is treated as hyper links within the document. For example:
          As demonstrated by Smith [12] this technique is quite effective.
          * Text enclosed in brackets which is preceded by the start of a line, two periods and a space is treated as a named link. For example:
          * A paragraph that has blocks of text enclosed in '||' is treated as a table. The text blocks correspond to table cells and table rows are denoted by newlines. By default the cells are center aligned. A cell can span more than one column by preceding a block of text with an equivalent number of cell separators '||'. Newlines and '|' cannot be a part of the cell text. For example:
  • SystemEngineeringTeam/TrainingCourse . . . . 2 matches
         = Training Course =
          * [서지혜] - rabierre.me
          * stylesha.re처럼 이어지는 도메인(rabier.re)으로 정하고 싶어 .re를 알아보았다. .re는 프랑스령의 한 섬인 레위니옹의 ccTLD. AFNIX에서 관리한다고 한다. 처음에 AFNIX 사이트에서 도메인 구입을 하려 했으나 회원가입도 변변히 못하고 쫒겨났는데 다시 찾아보니 [http://ko.wikipedia.org/wiki/.re 레위니옹 이외의 조직 또는 개인에게 아예 할당을 하지 않는 모양..]
          * .re는 후보에서 제외됨.. 신포도 기제 발동으로 rabier.re가 갑자기 구려보임.
         ||비슷한 일반 데스크톱 운영체제||Fedora||ubuntu||FreeBSD|| ||
          * Fedora - 주로 데탑으로 많이쓰이고 업데이트가 빠르며 다양한 패키지들을 사용할수 있지만 다소 불안정함. 사실 연습용 서버로 쓰기에는 큰 무리가 없다.
          * Fedora와 ubuntu는 stable하지 않다. 사실 연습용서버로는 충분하나, 다른것에 비하면..
          * 현재 사용하고 있는 Fedora와는 CentOS가 유사하다.
          * 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
          * [서지혜] - Fedora와 Cent중에 고민중
  • TAOCP/BasicConcepts . . . . 2 matches
          C - 명령어 코드(the poeration code)
          F - 명령어의 변경(a modification of the operation code). (L:R)이라면 8L+R = F
          * Loading operators.
          * Storing operators.
          * Arithmetic operators.
          * Address transfer operators.
          <!> ''예) ENTA 2000 - > rA || + || 0 || 0 || 0 || 2000 ||''
          * Comparison operator
          * Jump operators.
          * Miscellaneous operators.
          시프트 명령은 rA와 rX를 사용한다. SLA, SRA, SLAX, SRAX, SLC, SRC가 있다. M은 시프트하는 횟수를 나타낸다.
          * Conversion operators.
          NUM은 rAX를 가지고 숫자로 바꾸어 rA에 저장한다. 각 바이트가 한 자리로 바뀌는데, 일의 자리만 가지고 바꾼다(10 -> 0, 23->3 )
          CHAR는 rA를 가지고 문자 코드로 바꾸어 rAX에 저장한다.
         순열은 abcdef를 재배열(rearrangement)이나 이름바꾸기(renaming)를 해서 얻는다고 볼 수 있다. 이를 다음과 같이 표시할 수 있다.(p.164참조)
  • TheJavaMan/로보코드 . . . . 2 matches
         * 로보코드 홈페이지: http://www-903.ibm.com/developerworks/kr/robocode/robocode.html
  • TheJavaMan/테트리스 . . . . 2 matches
          Graphics memG;
          Random r;
          memG = mem.getGraphics();
          r = new Random();
          drawBlock();
          drawMap();
          drawGrid();
          private void drawMap() {
          private void drawBlock() {
          private void drawGrid() {
          memG.drawRect(i*15,j*15,15,15);
          drawBlock();
          public void paint(Graphics g) {
          g.drawImage(mem, 0, 0, this); //
          public void update(Graphics g) {
          drawBlock();
          drawMap();
          drawGrid();
          if(!moveOk) drawBlock();
          String keyCode = KeyEvent.getKeyText(e.getKeyCode());
  • TheKnightsOfTheRoundTable/하기웅 . . . . 2 matches
         void getRadius()
          cout << "The radius of the round table is: 0.000"<<endl;
          cout << "The radius of the round table is: " << 1.0*sqrt(halfSum*(halfSum-a)*(halfSum-b)*(halfSum-c))/halfSum << endl;
          getRadius();
  • TriDiagonal/1002 . . . . 2 matches
          * 느낀점 - LU 분해를 일반화시키는 부분에 대해서는 연습장에서 계산을 시키고 대입을 해보고 패턴을 찾아낸 뒤 일반화시켰다. 만일 이 부분을 코드를 짜면서 ["TestFirstProgramming"] * ["Refactoring"] 의 방법으로 풀었더라면 어떠했을까. (두 개의 과정이 비슷하다고 여겨진다. 코드가 줄어들고 OAOO 의 원칙을 지킬 수 있을테니까.) -- 석천
         === test_lu.py - LU Decomposition 을 위한 test code ===
          self.matrixA = Matrix(array(self.a))
          matrixL = Matrix(array(l))
          matrixU = Matrix(array(u))
         from ArrayPrinter import *
          def __init__(self, aSquareArray):
          assert len(aSquareArray) == len(aSquareArray[0])
          self.array = aSquareArray
          self.n = len(aSquareArray)
          for i in range(self.n):
          for i in range(0,n):
          for j in range(0,n):
          for i in range(self.n):
          for eachRow in range(aCol, self.n):
          self.l[eachRow][aCol] = self.array[eachRow][aCol] - self._minusForWriteL(eachRow, aCol)
          for n in range(0, aCol):
          for eachCol in range(aRow+1, self.n):
          self.u[aRow][eachCol] = float(self.array[aRow][eachCol] - self._minusForWriteU(eachCol, aRow)) / float(self.l[aRow][aRow])
          for n in range(0, aRow):
  • UML . . . . 2 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.
         == UML Diagram types ==
         === Use Case Diagram ===
         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.
         === Class Diagram ===
         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.
         === Sequence Diagram ===
         [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.
         === Collaboration Diagram /Communication Diagram (UML 2.0) ===
         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.
         Collaboration and sequence diagrams describe similiar information, and as typically implemented, can be transformed into one another without difficulty.
         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.
         === Statechart Diagram ===
         See [http://en.wikipedia.org/wiki/State_diagram#Harel_statechart].
         === Activity Diagram ===
         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.
  • WERTYU/1002 . . . . 2 matches
          print wertyu(raw_input())
         JuNe 의 이야기를 듣고 doctest 를 처음 써보다. (실제로는 한단계씩 진행) 느낌이 꽤 재밌었다. test code 에 대해서 'test code == 문서화 정보'를 한다는 느낌이 더 깊게 난다. 조금 더 써먹어보고 관찰해봐야겠다는 생각중.
  • WindowsTemplateLibrary . . . . 2 matches
         {{|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.|}}
         WTL은 객체지향적인, Win32 를 캡슐화하여 만들어진 C++라이브러리로 MS 에서 만들어졌다. WTL은 프로그래머에 의한 사용을 위해 API Programming Style을 지원한다. WTL MFC에 대한 경량화된 대안책으로서 개발되었다. WTL은 MS의 ATL를 확장한다. ATL 은 ActiveX COM 을 이용하거나 ActiveX 컨트롤들을 만들기 위한 또 다른 경량화된 API 이다. WTL은 MS 에 의해 만들어졌디면, MS 가 지원하진 않는다.
         [http://www.codeproject.com/wtl/wtl4mfc1.asp WTLForMFCProgrammer]
  • Yggdrasil . . . . 2 matches
          * ["Yggdrasil/가속된씨플플"]:AcceleratedC++을 공부해보자!
         ["Yggdrasil/temp"]
          * ["RandomWalk2/영동"] [[BR]]
          * ["RandomWalk/영동"]
          * ["Yggdrasil/020523세미나"]
          * ["Yggdrasil/020515세미나"]
          * ["CppStudy_2002_1/과제1/Yggdrasil"] [[BR]]
          * ["Yggdrasil/파스칼의삼각형"] [[BR]]
  • Zeropage/Staff . . . . 2 matches
          * [CodeRace] 진행자 뽑기.
         == CodeRace 진행자 뽑기 ==
  • [Lovely]boy^_^/Diary/2-2-16 . . . . 2 matches
          * 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.
          * I can't translate english sentence that I writed.--;
          * Today, I'll type DirectX Codes.... but I didn't.--;
          * I studied Grammar in Use Chapter 39,40. I have not done study this book since then summer.--;
          * I studied ProgrammingPearls chapter 3. When I was reading, I could find familiar book name - the Mythical Man Month, and Code Complete.
          * I summarized a ProgrammingPearls chapter 3.
          * '''Don't write a big program when a little one will do.'''
          * '''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.
          * I studied Grammar in Use Chapter 41,42.
          * '''Keeping the code simple is usually the key to correctness.'''
          * I summarized a ProgrammingPearls chapter 4,5.
          * I summarized a ProgrammingPearls chapter 6.
  • html5practice/계층형자료구조그리기 . . . . 2 matches
         [[pagelist(html5practive)]]
          <body onload="main()" style="background-color:darkgray">
          <canvas id="canvas" width="500px" height="500px" style="background-color:gray"/>
         var NodeRadius = 5;
         function roundRect(ctx, x, y, width, height, radius, fill, stroke) {
          if (typeof radius === "undefined") {
          radius = 5;
          ctx.moveTo(x + radius, y);
          ctx.lineTo(x + width - radius, y);
          ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
          ctx.lineTo(x + width, y + height - radius);
          ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
          ctx.lineTo(x + radius, y + height);
          ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
          ctx.lineTo(x, y + radius);
          ctx.quadraticCurveTo(x, y, x + radius, y);
         function nodeDraw(ctx, x, y, node){
          // draw rect
          roundRect(ctx, x-NodePaddingW, y-NodePaddingH, calcRt.width + NodePaddingW*2, NodeFontHeight + NodePaddingH*2, NodeRadius, true, true);
          // draw text
  • naneunji . . . . 2 matches
          * ["RandomWalk"]
          * ["RandomWalk2"]
  • teruteruboz . . . . 2 matches
          * ["RandomWalk/성재"]
          * 이영록 : ["ricoder"]
          * 임영동 : ["Yggdrasil"]
  • whiteblue . . . . 2 matches
          * ["RandomWalk/유상욱"]
          *임영동 : ["Yggdrasil"] [[BR]]
          *이영록 : ["ricoder"] [[BR]]
  • 고슴도치의 사진 마을처음화면 . . . . 2 matches
         ▷Mother's Digital Camera
         || [Celfin's ACM training] ||
         [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/avrim/www/Randalgs97/home.html Randomized Algoritms]
  • 고한종/배열을이용한구구단과제 . . . . 2 matches
          //put your code in here.
          //code zone is end.
         void trash(void)
         참고 링크 : http://rantis7.egloos.com/2404014
  • 데블스캠프2002 . . . . 2 matches
         || 99 학번 || 강석천(목,금), 윤정수(화요일이후), 류상민(random()%4) ||
         || 00 학번 || 이정직(일/금), 최광식, 김남훈(random;), 임인택(수,목 혹은 둘다) ||
         || 01 학번 || 남상협(모든요일ㅡㅡ;), 신재동, 이창섭(월,화), 이선호, 이상규(random) ||
         || 6월 26일 || 수요일 || 이상규, 이병희 || DevelopmentinWindows, Web Programming ||
         || 6월 27일 || 목요일 || 강석천 || ObjectOrientedProgrammingSeminar ||
          1. ["RandomWalk"] - 2학년 1학기 자료구조 첫 숙제였음. ["radiohead4us"]
          1. ["RandomWalk2"] - aka Scheduled Walk.
          1. ["StarCraft"] - 내가 생각해본 문제.. Class에 대한 이해와 접근에 도움을 주기 위해.. --광민
          동의. 중간중간 컴퓨터 관련 역사나 야사 같은 것을 해줘도 좋을 것 같은데. ["스티븐레비의해커"], ProgrammersAtWork, 마소에서 안윤호씨의 글들 (이분 글도 참 재밌지. 빌 조이의 글이나 70년대 OS 초기시절 이야기 등등) 소개해줘도 재미있을듯. --석천
  • 데블스캠프2002/날적이 . . . . 2 matches
         2. Scenario Driven - 앞의 CRC 세션때에는 일반적으로 Class 를 추출 -> Requirement 를 읽어나가면서 각 Class 별로 Responsibility 를 주욱 나열 -> 프로그램 작동시 Scenario 를 정리, Responsibility 를 추가. 의 과정을 거쳤다. 이번에는 아에 처음부터 Scenario 를 생각하며 각 Class 별 Responsibility 를 적어나갔다. Colloboration 이 필요한 곳에는 구체적 정보를 적어나가면서 각 Class 별 필요정보를 적었다. 그리하여 모든 Scenario 가 끝나면 디자인 세션을 끝내었다.
          * 일부러 문법쪽에 대한 정통적인 설명을 배제하긴 했음. 뭐.. 그정도만 해도 디자인 타임때 디자인한 객체를 구현하는데 문제 없을 것 같고 해서. 졸지도 않고 끝까지 둘이서 같이 이야기하면서 플밍 하는 모습이 보기 좋았던 거 같아. 그리고 요구사항 추가내용인 바퀴벌레 2마리일때와 2차원 판이 아닌 3차원 직육면체를 돌아다닐때에 대해서 StructuredProgramming 과 ObjectOrientedProgramming 을 하여 비교하면 문제점 면에서 그 차이를 확실히 알 수 있을것임. --석천
          ''아직 RandomWalk2에서 변경사항4까지 풀지 않은 사람은 읽지 마세요: (읽으려면 마우스로 긁기) [[HTML(<font color="white">)]]음식 요구사항 같은 것은 특히 OOP에 대한 일반인의 고정관념을 깰 수 있는 좋은 예입니다. 보통 비지니스 애플리케이션에서 역할(Role)이라고 하는 것을 경험할 수 있습니다. 흔히들 OOP에 대한 비판 중 하나가, 집에 있으면 아들이고, 학교에 가면 학생이고, 과외집에 가면 선생이 된다는 "객체 자체의 변화"에 대한 것입니다. 이것은 추상적이고 일시적인 대상도 객체가 될 수 있다는 사고 전환에서 해결 가능합니다. 일시적으로 어떤 역할을 갖고 있다가(Has-a) 그 역할이 바뀌는 것이죠. RW2의 변경사항들은 OOP 교육적 측면에서 모두 중요한 것들입니다. --JuNe [[HTML(</font>)]]''
          * 성재) 우선 처음의 Unix의 경우는 쉽고 재밌었습니다. 제가 개인적으로 홈페이지에 관심이 많던터라 퍼미션 조정에 대해서도 잘 알수 있었구요.. 서버에서의 html을 찾아가는 경로도 알수 있어서 좋았습니다. 그런데... -_-;; 씨 프로그래밍은 여전히 어려웠습니다...-_-;; 첫번째 문제밖에 못풀었는데요.. 우선 Randomwork경우에는 문제조차 이해를 바로하지 못했던게 문제였던 것 같습니다. 동적배열을 쓰는 법도 잘 몰라서 문제였구요. 선배들이 도와주셔서 알긴 했지만 좀 더 공부해야 겠다는 생각이 들었습니다. 그리고 중요한 에러중에 하나가 괄호를 생략하는데서 나온건데요.. 코딩시 줄을 줄여보겠다는 일념<?>하에 괄호가 필요하지 않은데는 일일히 해주지 않았더니 꼬이더라구요... 코딩을 하는데에서의 인터페이스와 여러가지에 대해 깨우치고 알았던 기회였던 거 같습니다. 다음에는 좀 더 찬찬히 알고리즘부터 쫘악 짜서 천천히 풀어봐야 겠습니다...
  • 데블스캠프2009/목요일/연습문제/MFC/박준호 . . . . 2 matches
          // ClassWizard generated virtual function overrides
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
          ON_WM_QUERYDRAGICON()
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          if (!strAboutMenu.IsEmpty())
          pSysMenu->AppendMenu(MF_SEPARATOR);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
          // TODO: Add extra initialization here
         void CTestAPPDlg::OnSysCommand(UINT nID, LPARAM lParam)
          CDialog::OnSysCommand(nID, lParam);
         // If you add a minimize button to your dialog, you will need the code below
         // to draw the icon. For MFC applications using the document/view model,
         // this is automatically done for you by the framework.
          SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
          // Draw the icon
          dc.DrawIcon(x, y, m_hIcon);
         // The system calls this to obtain the cursor to display while the user drags
  • 데블스캠프2009/목요일/연습문제/MFC/서민관 . . . . 2 matches
          // ClassWizard generated virtual function overrides
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
         ON_WM_QUERYDRAGICON()
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          if (!strAboutMenu.IsEmpty())
          pSysMenu->AppendMenu(MF_SEPARATOR);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
          // TODO: Add extra initialization here
         void CTestMFCDlg::OnSysCommand(UINT nID, LPARAM lParam)
          CDialog::OnSysCommand(nID, lParam);
         // If you add a minimize button to your dialog, you will need the code below
         // to draw the icon. For MFC applications using the document/view model,
         // this is automatically done for you by the framework.
          SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
          // Draw the icon
          dc.DrawIcon(x, y, m_hIcon);
         // The system calls this to obtain the cursor to display while the user drags
  • 데블스캠프2009/목요일/연습문제/MFC/송지원 . . . . 2 matches
         #pragma once
          // ClassWizard generated virtual function overrides
          // Generated message map functions
          afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
          afx_msg HCURSOR OnQueryDragIcon();
          afx_msg void operation();
         // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
          // ClassWizard generated virtual function overrides
          m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
          ON_WM_QUERYDRAGICON()
          // IDM_ABOUTBOX must be in the system command range.
          CString strAboutMenu;
          strAboutMenu.LoadString(IDS_ABOUTBOX);
          if (!strAboutMenu.IsEmpty())
          pSysMenu->AppendMenu(MF_SEPARATOR);
          pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
          // Set the icon for this dialog. The framework does this automatically
          // TODO: Add extra initialization here
         void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
          CDialog::OnSysCommand(nID, lParam);
  • 데블스캠프2011/네째날/이승한 . . . . 2 matches
          * [http://code.google.com/p/msysgit/downloads/list msysgit download page] - download {{{Git-1.7.4-preview20110204.exe}}}
          * [http://code.google.com/p/tortoisegit/downloads/list tortoise git download page] - download {{{Tortoisegit-1.6.5.0-32bit.msi}}}, 32bit
  • 데블스캠프2011/넷째날/Git . . . . 2 matches
          * [http://code.google.com/p/msysgit/downloads/list msysgit download page] - download {{{Git-1.7.4-preview20110204.exe}}}
          * [http://code.google.com/p/tortoisegit/downloads/list tortoise git download page] - download {{{Tortoisegit-1.6.5.0-32bit.msi}}}, 32bit
  • 데블스캠프2011/다섯째날/HowToWriteCodeWell/강소현,구자경 . . . . 2 matches
          // TODO Auto-generated method stub
          // TODO Auto-generated method stub
          timer.scheduleAtFixedRate(new TimerTask(){
          // TODO Auto-generated method stub
          // TODO Auto-generated method stub
          timer.scheduleAtFixedRate(new TimerTask(){
          // TODO Auto-generated method stub
  • 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김수경 . . . . 2 matches
         using System.Drawing;
          /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
          #region Windows Form Designer generated code
          /// the contents of this method with the code editor.
          this.startBtn.Location = new System.Drawing.Point(34, 82);
          this.startBtn.Size = new System.Drawing.Size(75, 23);
          this.hour.Font = new System.Drawing.Font("굴림", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
          this.hour.Location = new System.Drawing.Point(27, 18);
          this.hour.Size = new System.Drawing.Size(61, 37);
          this.minute.Font = new System.Drawing.Font("굴림", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
          this.minute.Location = new System.Drawing.Point(125, 18);
          this.minute.Size = new System.Drawing.Size(61, 37);
          this.second.Font = new System.Drawing.Font("굴림", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
          this.second.Location = new System.Drawing.Point(228, 18);
          this.second.Size = new System.Drawing.Size(61, 37);
          this.milli.Font = new System.Drawing.Font("굴림", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
          this.milli.Location = new System.Drawing.Point(331, 18);
          this.milli.Size = new System.Drawing.Size(39, 37);
          this.label1.Font = new System.Drawing.Font("굴림", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
          this.label1.Location = new System.Drawing.Point(94, 18);
  • 레밍즈프로젝트/프로토타입/파일스트림 . . . . 2 matches
         || MFC 파일 스트림 || [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cstring.asp] ||
         || m_hFile || Usually contains the operating-system file handle. ||
         || ReadHuge || Can read more than 64K of (unbuffered) data from a file at the current file position. Obsolete in 32-bit programming. See Read. ||
         || WriteHuge || Can write more than 64K of (unbuffered) data in a file to the current file position. Obsolete in 32-bit programming. See Write. ||
         || LockRange || Locks a range of bytes in a file. ||
         || UnlockRange || Unlocks a range of bytes in a file. ||
  • 몸짱프로젝트 . . . . 2 matches
          * 참고한 책 : ProgrammingPearls(번역서 [생각하는프로그래밍])
         || RandomWalk || [RandomWalk/황재선] ||
  • 비밀키/나휘동 . . . . 2 matches
          ofstream fout("encode.txt");
          ofstream fout("decode.txt");
  • 상규 . . . . 2 matches
          * [RandomWalk2/상규]
          * [ClassifyByAnagram/상규]
          * [RandomWalk2/ExtremePair]
  • 새싹교실/2011/무전취식/레벨10 . . . . 2 matches
          // add your code here //아직 코드까지는 못짰어요;
          // add your code here
  • 새싹교실/2011/무전취식/레벨4 . . . . 2 matches
          * 함수의 구조는 입력(Parameter), 내부 연산, 출력(Return)으로 설명했습니다.
         #include<math.h> //Rand를 가져오는 헤더파일
         #define SORAKICK 900
         #define SORAPUNCH 1000
          int Sora = 2500, My = 5000;
          srand(time(NULL)); //Rand의 시드값 변경해줌.
          printf("이소라 체력 : %d\n",Sora);
          temp = ( ( rand() % KICK +1)); //1~KICK까지의 데미지를 입힌다.
          Sora = Sora - temp; break;
          temp = ( ( rand() % PUNCH +1));
          Sora = Sora - temp; break;
          select = rand() %2 +1;//선택의 랜덤.
          temp = ( ( rand() % SORAKICK +1));
          temp = ( ( rand() % SORAPUNCH + 1));
          if(Sora <= 0 && My <= 0){
          else if(Sora <= 0){
  • 새싹교실/2012/새싹교실강사교육/2주차 . . . . 2 matches
         #include<math.h> //Rand를 가져오는 헤더파일
         #define SORAKICK 900
         #define SORAPUNCH 1000
          int Sora = 2500, My = 5000;
          srand(time(NULL)); //Rand의 시드값 변경해줌.
          printf("이소라 체력 : %d\n",Sora);
          temp = ( ( rand() % KICK +1)); //1~KICK까지의 데미지를 입힌다.
          Sora = Sora - temp; break;
          temp = ( ( rand() % PUNCH +1));
          Sora = Sora - temp; break;
          select = rand() %2 +1;//선택의 랜덤.
          temp = ( ( rand() % SORAKICK +1));
          temp = ( ( rand() % SORAPUNCH + 1));
          if(Sora <= 0 && My <= 0){
          else if(Sora <= 0){
         srand(time(NULL)), rand(). 함수와 라이브러리.
  • 새싹교실/2012/주먹밥/이소라때리기게임 . . . . 2 matches
         #include<math.h> //Rand를 가져오는 헤더파일
         #define SORAHEAL 60000
         #define SORAKICK 9000
         #define SORAPUNCH 10000
          PLAYER sora = {"이소라",{100000,SORAHEAL,SORAKICK,SORAPUNCH}};
          srand(time(NULL)); //Rand의 시드값 변경해줌.
          printplayerstate(&sora, &player);
          gameprocess(&sora, &player);
          if(sora.skill.health <= 0 && player.skill.health <= 0){
          else if(sora.skill.health <= 0){
          temp = ( ( rand() % who->skill.heal));
          temp = ( ( rand() % who->skill.kick));
          temp = ( ( rand() % who->skill.punch));
         int printplayerstate(PLAYER * sora, PLAYER * me){
          printf("이소라 체력 : %d\n",sora->skill.health);
         int gameprocess(PLAYER * sora, PLAYER * player){
          (menu[i].func(player,sora));
          select = rand() % SKILLSIZE +1;//선택의 랜덤
          (menu[i].func(sora,player));
  • 선희/짜다 만 소스 . . . . 2 matches
         == RandomWalk ==
         Upload:RandomWalk_SUNNY.cpp
  • 성당과시장 . . . . 2 matches
         [http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html 성당과시장] 에서 논문 번역문을 읽을 수 있다. 논문 발표후 Eric S. Raymond는 집중 조명을 받았는데, 얼마 있어 지금은 사라진 Netscape 가 자사의 웹 브라우저인 Netscape Navigtor를 [http://mozilla.org 모질라 프로젝트]로 오픈 소스시켜 더 유명해 졌다. RevolutionOS 에서 실제로 Netscape의 경영진은 이 결정중 이 논문을 읽었다고 인터뷰한다.
         이듬해 Eric S.Raymond 는 [http://kldp.org/root/gnu/cb/magic-cauldron/ 마법의 솥] 이라는 오픈소스의 구체적인 사업 형태 대한 논문을 선보인다. 그리고 이후 [http://zdnet.co.kr/news/enterprise/article.jsp?id=69067&forum=1 독점SW vs. 오픈소스「뜨거운 경제 논쟁] 같이 아직까지도 꾸준한 논쟁이 이루어 진다.
         그외에도 [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/ 해커들의 반란] 순으로 씌였다.
  • 위시리스트 . . . . 2 matches
          * [http://www.yes24.com/24/goods/1469754?scode=032&OzSrank=4 OpenGL Super Bible]
          http://www.kyobobook.co.kr/product/detailViewEng.laf?ejkGb=BNT&mallGb=ENG&barcode=9781849695046&orderClick=LAG&Kc=
         The art of computer programming 1 ~ 4A
  • 이영호/nProtect Reverse Engineering . . . . 2 matches
         특정한 게임을 Cracking 하려고 했더니 nProtect와 비슷한 녀석이 디버그 되는 것을 방해하고 있었다.
         업데이트 파일에서 host의 patch 주소를 내가 사용하는 eady.sarang.net/~dark/12/Mabi/로 고치고 여기에 파일 3개를 올리고 시도 하였더니
         |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""
         |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" 로 실행시키면 된다.
         Protector가 제거 된다면 바로 cracking에 들어가자. -_-^
  • 이영호/지뢰찾기 . . . . 2 matches
         지뢰찾기 만든 coder가 어떤 생각으로 이걸 짰는지 분석부터 시작.
         Crack: 분석 완료 직후, Inline Patch로 배열 부분을 손보고 지뢰 찾기 시작 후 고급 기록 1초 갱신 완료.
         아래 소스는 지뢰찾기 분석한 것을 coder가 제작한 게임 소스 그대로 C언어로 완벽하게 구현한 것이다. (아마 M$에 있는 소스와 완벽히 똑같을 것이다.)
          int num = (int)rand();
         // srand(GetTickCount()); 를 이 함수 밖에서 수행한다.
  • 임인책/북마크 . . . . 2 matches
          * [http://www.riverace.com/ Riverace Corporation]
          * [http://zeropage.org/~dduk/ace/Addison.Wesley.The.ACE.Programmers.Guide.chm ACE Programmer's Guide] ([http://zeropage.org/~dduk/ace/APG.zip example code])
          * http://sangam.sourceforge.net/ -> Xper:RemotePairProgramming 을 [Eclipse]에서 해주게 하는 플러그인!! 한번 경험해 봐야겠다!!
          * [http://codeguru.earthweb.com/system/apihook.html API Hooking Revealed]
          * [http://www.extension.harvard.edu/2002-03/programs/DistanceEd/courses/default.jsp Distance Education Program]
  • 작은자바이야기 . . . . 2 matches
          * [:Java/OpenSourceLibraries 주요 오픈 소스 라이브러리]
          * 그동안 설계와 구현에 관한 일반론을 위주로 세미나를 진행해왔기에, 이번에는 좀더 practical하고 pragmatic한 지식을 전달하는데 비중을 두고자 함.
          * abstract, final, static
          * 제가 "원래 모든 함수가 static"이라는 의미로 말한건 아닌데 오해의 소지가 있었나보군요. 사실 제가 설명한 가장 중요한 사실은 말씀하신 예에서 object의 컴파일 타입의 method() 메서드가 가상 메서드라면(static이 아닌 모든 Java 메서드), 실제 어떤 method() 메서드를 선택할 것이냐에 관한 부분을 object의 런타임 타입에 의한다는 부분이었지요. 그러니까 object는 컴파일 타입과 동일하지 않은 런타임 타입을 가질 수 있으며, 다형성의 구현을 위해 implicit argument인 object(=this)의 런타임 타입에 따라 override된 메서드를 선택한다는 사실을 기억하세요. (Python에선 실제 메서드 내에서 사용할 formal parameter인 self를 explicit하게 선언할 수 있다고 보면 되겠지요.) - [변형진]
          * transient modifier는 VM의 자동 직렬화 과정에서 특정 속성을 제외할 수 있고, Externalizable 인터페이스를 구현하면 직렬화, 역직렬화 방식을 직접 정의할 수 있음을 보았습니다.
          * Abstraction layer
          * Iterator (java.util)
          * Iterable (java.lang)
          * Iterator의 특징과 Iterable을 사용했을 때의 특징들을 공부하는 시간
          * Comparable
          * 지난시간에 이은 Inner Class와 Nested Class의 각각 특징들 Encapsulation이라던가 확장성, 임시성, 클래스 파일 생성의 귀찮음을 제거한것이 새로웠습니다. 사실 쓸일이 없어 안쓰긴 하지만 Event핸들러라던가 넘길때 자주 사용하거든요. {{{ Inner Class에서의 this는 Inner Class를 뜻합니다. 그렇기 때문에 Inner Class를 포함하는 Class의 this(현재 객체를 뜻함)을 불러오려면 상위클래스.this를 붙이면 됩니다. }}} Iterator는 Util이지만 Iterable은 java.lang 패키지(특정 패키지를 추가하지 않고 자바의 기본적인 type처럼 쓸수있는 패키지 구성이 java.lang입니다)에 포함되어 있는데 interface를 통한 확장과 재구성으로 인덱스(index)를 통한 순차적인 자료 접근 과는 다른 Iterator를 Java에서 범용으로 쓰게 만들게 된것입니다. 예제로 DB에서 List를 한꺼번에 넘겨 받아 로딩하는것은 100만개의 아이템이 있다면 엄청난 과부하를 겪게되고 Loading또한 느립니다. 하지만 지금 같은 세대에는 실시간으로 보여주면서 Loading또한 같이 하게 되죠. Iterator는 통해서는 이런 실시간 Loading을 좀더 편하게 해줄 수 있게 해줍니다. 라이브러리 없이 구현하게 되면 상당히 빡셀 것 같은 개념을 iterator를 하나의 itrable이란 인터페이스로 Java에서는 기본 패키지로 Iterable을 통해 Custom하게 구현하는 것을 도와주니 얼마나 고마운가요 :) 여튼 자바는 대단합니다=ㅂ= Generic과 Sorting은 다른 분이 설명좀. - [김준석]
          * run-time의 type erasure
          * parameter 얻어오는 방법 세 가지.
          * 리플렉션과 제네릭스를 써서 map -> object와 object -> map을 하는 부분을 해봤습니다. 자바의 일반적인 세 가지 방식의 클래스 내 변수에 대해 getClass, getFields, getMethods를 사용해 private, 나 접근자가 있는 경우의 값을 받아왔습니다. getter를 사용해서 변수 값을 받아올 때 이름이 get으로 시작하는 다른 함수를 제외하기 위해 method.getParameterTypes().length == 0 같은 부분은 이렇게 체크해야 된다는 부분은 나중에 제네릭스 관련으로 써먹을만 할 것 같습니다. 그리고 mapToObject에서는 문제가 없었지만 objectToMap의 경우에는 제네릭스의 type erase때문에 Class<T> expectedType = T.class; 같은 코드를 사용할 수 없어서 map.put(field.getName(), (T)field.get(obj));에서 형변환의 타입 안전성을 위해 인자로 Class<T> valueType을 받아오고 valueType.isAssignableFrom(field.getType())로 체크를 하는 부분도 공부가 많이 됐습니다. - [서영주]
          * driver에서 connection을 얻어오는 부분에 대해서는 abstract factory가 사용됨 - 추상타입으로부터 추상타입을 만든다.
          * abstract factory를 잘 쓰기 위해서는 인터페이스에 api가 잘 설계되어 있어야 한다.
          * Statement, ResultSet에 대해서도 마찬가지로 인터페이스를 이용한 abstract factory가 사용됨.
          * abstract factory패턴과 factory method 패턴의 구분
          * 생성 메소드를 호출하는 인스턴스의 타입, 메소드에 들어가는 인자의 두 가지가 새로 생성되는 인스턴스에 영향을 주는 경우 abstract factory
          * abstract factory는 확장 위주의 패턴이다. 자바 프레임 워크에서는 api의 확장이 중요하기 때문에 자주 보이지만 일반적인 어플리케이션에서는 확장성을 제공할 필요성이 적기 때문에 많이 나타나지 않는다.
  • 장용운 . . . . 2 matches
          * CodeRace([Code Race/2015.5.15/참가상GAY득]) 강사
  • 정모 . . . . 2 matches
         ||||2023.03.29||[김동영]||||||||learning to rank||
         ||||2023.09.06||[김경민]||||||||GNU Privacy Guard Best Practices||[정모/2023.09.06/참석자]||
         ||||2023.09.20||[방석현]||||||||Rust - Object Oriented Programming with Rust||[정모/2023.09.20/참석자]||
         ||||2023.11.22||[조영호]||||||||아두이노로 마이크 샘플링 해서 녹음하기 & 온습도 기록해서 Grafana로 모니터링하기||[정모/2023.11.22/참석자]||
         || 8월 ||[정모/2014.8.6], [정모/2014.8.13], [wiki:CodeRace/2014.8.20 Code Race/2014.8.20], [정모/2014.8.27] ||
          -> 해결책 : 어떻게 하면 토론을 효과적으로 할것인가에 대한 brain storming 이나, 학습 등.
  • 정모/2006.2.2 . . . . 2 matches
         == CodeRace 실시 결과 ==
         [CodeRace]
  • 조동영 . . . . 2 matches
         ,[Randomwalk/조동영]
          * [RandomWalk]라...-_-ㅋ;; - 이승한
  • 조영준/CodeRace/130506 . . . . 2 matches
         namespace CodeRace
          class Program
         [정모/2013.5.6/CodeRace#s-2.2]
  • 최소정수의합/임인택2 . . . . 2 matches
          (rnd, toRational (rnd*(rnd+1))/2)
         에서 rnd의 타입이 Integer로 되었는데 Integer는 다른 값으로 나눠지지 않았다(내가 방법을 모르고 있을수도 있겠지만). haskell wiki를 뒤져 toRational 이라는 함수를 찾았지만 출력되는 모양이 영 마음에 들지 않는다.
  • 코드레이스출동 . . . . 2 matches
         [http://altlang.org/fest/%EC%BB%A8%ED%85%8C%EC%8A%A4%ED%8A%B8 SVN과 Trac의 링크]
         [http://altlang.org/fest/CodeRace 대안언어에서의 코드레이스 페이지]
         [http://oss.or.kr/coderace/index.html 온라인 등록]
         [코드레이스출동/CleanCode] : 재선, 회영, 도현, 용재
          15 mkdir branches
  • 타도코코아CppStudy/0724 . . . . 2 matches
          * Higher Order Programming
          SeeAlso) [RandomWalk2/ClassPrototype]
          * Higher Order Programming
          SeeAlso) OWIKI:RandomWalk2/ClassPrototype
         || 랜덤워크 || [정우] || Upload:random_winy.cpp || 저랑 같이 고쳐봅시다. 고칠게 많네요. 결과는 제대로 되었지만... 이런 식으로 짠 코드는 나중에 수정하기가 골치아프답니다. ||
  • 타도코코아CppStudy/0728 . . . . 2 matches
          * TableDrivenProgramming
         || ZeroWiki:RandomWalk2 || [CherryBoy] || Upload:randomWork2_CheRy.cpp || 다시 ||
         || 랜덤워크 || [CherryBoy] || Upload:randomWalk_CherRy.cpp || . ||
          * 인수형~~~~~ 파일 입출력 Random Walk2 올렸씁니다.. 지금 시간 8시..1시간정도 걸렸네요..-_-; 파일 입출력 고생하다..!! - [CherryBoy]
  • 타도코코아CppStudy/0804 . . . . 2 matches
         || ZeroWiki:RandomWalk || . || . || . ||
         || ZeroWiki:RandomWalk2 || CherryBoy || Upload:randomWork2_CheRy.cpp || . ||
         || ZeroWiki:ClassifyByAnagram || . || . || . ||
         || Seminar:SpiralArray || . || . || . ||
  • 타도코코아CppStudy/0811 . . . . 2 matches
         || ZeroWiki:RandomWalk || 정우||Upload:class_random.cpp . || 왜 Worker가 Workspace를 상속받지? 사람이 일터의 한 종류야?--; 또 에러뜨네 cannot access private member. 이건 다른 클래스의 변수를 접근하려고 해서 생기는 에러임. 자꾸 다른 클래스의 변수를 쓰려 한다는건 그 변수가 이상한 위치에 있다는 말도 됨 ||
         || ZeroWiki:RandomWalk2 || . || . || . ||
         || ZeroWiki:ClassifyByAnagram || . || . || . ||
         || Seminar:SpiralArray || . || . || . ||
  • 프로그램내에서의주석 . . . . 2 matches
         처음에 Javadoc 을 쓸까 하다가 계속 주석이 코드에 아른 거려서 방해가 되었던 관계로; (["IntelliJ"] 3.0 이후부턴 Source Folding 이 지원하기 때문에 Javadoc을 닫을 수 있지만) 주석을 안쓰고 프로그래밍을 한게 화근인가 보군. 설계 시기를 따로 뺀 적은 없지만, Pair 할 때마다 매번 Class Diagram 을 그리고 설명했던 것으로 기억하는데, 그래도 전체구조가 이해가 가지 않았다면 내 잘못이 크지. 다음부터는 상민이처럼 위키에 Class Diagram 업데이트된 것 올리고, Javadoc 만들어서 generation 한 것 올리도록 노력을 해야 겠군.
         내가 가지는 주석의 관점은 지하철에서도 언급한 내용 거의 그대로지만, 내게 있어 주석의 주된 용도는 과거의 자신과 대화를 하면서 집중도 유지, 진행도 체크하기 위해서 이고, 기타 이유는 일반적인 이유인 타인에 대한 정보 전달이다. 전자는 command.Command.execute()이나 상규와 함께 달은 information.InfoManager.writeXXX()위의 주석들이고,후자가 주로 쓰인 용도는 각 class 상단과 package 기술해 놓은 주석이다. 그외에 class diagram은 원래 아나로그로 그린것도 있지만, 설명하면서 그린건 절대로 타인의 머리속에 통째로 저장이 남지 않는다는 전제로, (왜냐면 내가 그러니까.) 타인의 열람을 위해 class diagram의 디지털화를 시켰다. 하는 김에 그런데 확실히 설명할때 JavaDoc뽑아서 그거가지고 설명하는게 편하긴 편하더라. --["상민"]
         자바 IDE들이 Source Folding 이 지원하거나 comment 와 관련한 기능을 지원한다면 해결될듯. JavaDoc 은 API군이나 Framework Library의 경우 MSDN의 역할을 해주니까. --석천
         자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
         그리고 개인적으론 Server 쪽 이해하기로는 Class Diagram 이 JavaDoc 보는것보다 더 편했음. 그거 본 다음 소스를 보는 방법으로 (완벽하게 이해하진 않았지만.). 이건 내가 UML 에 더 익숙해서가 아닐까 함. 그리고 Java Source 가 비교적 깨끗하기에 이해하기 편하다는 점도 있겠고. (그래 소스 작성한 사람 칭찬해줄께;) --석천
          하지만, "확실히 설명할때 {{{~cpp JavaDoc}}}뽑아서 그거가지고 설명하는게 편하긴 편하더라."라고 한말 풀어쓰는 건데, 만약 디자인 이해 후에 코드의 이해라면 {{{~cpp JavaDoc}}} 없고 소스만으로 이해는 너무 어렵다.(최소한 나에게는 그랬다.) 일단 코드 분석시 {{{~cpp JavaDoc}}}이 나올 정도라면, "긴장 완화"의 효과로 먹고 들어 간다. 그리고 우리가 코드를 읽는 시점은 jdk를 쓸때 {{{~cpp JavaDoc}}}을 보지 소스를 보지는 않는 것처럼, 해당 메소드가 library처럼 느껴지지 않을까? 그것이 메소드의 이름이나 필드의 이름만으로 완벽한 표현은 불가능하다고 생각한다. 완벽히 표현했다면 너무나 심한 세분화가 아닐까? 전에 정말 난해한 소스를 분석한 적이 있다. 그때도 가끔 보이는 실낱같은 주석들이 너무나 도움이 된것이 기억난다. 우리가 제출한 Report를 대학원 생들이 분석할때 역시 마찬가지 일것이다. 이건 궁극의 Refactoring문제가 아니다. 프로그래밍 언어가 그 셰익스피어 언어와 같았으면 하기도 하는 생각을 해본다. 생각의 언어를 프로그래밍 언어 대입할수만 있다면야.. --["상민"]
         내가 Comment 와 JavaDoc 둘을 비슷한 대상으로 두고 쓴게 잘못인듯 하다. 두개는 좀 구분할 필요가 있을 것 같다는 생각이 들어서다. 내부 코드 알고리즘 진행을 설명하기 위해서는 다는 주석을 comment로, 해당 구성 클래스들의 interface를 서술하는것을 JavaDoc으로 구분하려나. 이 경우라면 JavaDoc 과 Class Diagram 이 거의 비슷한 역할을 하겠지. (Class Diagram 이 그냥 Conceptual Model 정도라면 또 이야기가 달라지겠지만)
          그리고, JDK 와 Application 의 소스는 그 성격이 다르다고 생각해서. JDK 의 소스 분석이란 JDK의 클래스들을 읽고 그 interface를 적극적으로 이용하기 위해 하는 것이기에 JavaDoc 의 위력은 절대적이다. 하지만, Application 의 소스 분석이라 한다면 실질적인 implementation 을 볼것이라 생각하거든. 어떤 것이 'Information' 이냐에 대해서 바라보는 관점의 차이가 있겠지. 해당 메소드가 library처럼 느껴질때는 해당 코드가 일종의 아키텍쳐적인 부분이 될 때가 아닐까. 즉, Server/Client 에서의 Socket Connection 부분이라던지, DB 에서의 DB Connection 을 얻어오는 부분은 다른 코드들이 쌓아 올라가는게 기반이 되는 부분이니까. Application 영역이 되는 부분과 library 영역이 되는 부분이 구분되려면 또 쉽진 않겠지만.
         이번기회에 comment, document, source code 에 대해서 제대로 생각해볼 수 있을듯 (프로그램을 어떻게 분석할 것인가 라던지 Reverse Engineering Tool들을 이용하는 방법을 궁리한다던지 등등) 그리고 후배들과의 코드에 대한 대화는 익숙한 comment 로 대화하는게 낫겠다. DesignPatterns 가 한서도 나온다고 하며 또하나의 기술장벽이 내려간다고 하더라도, 접해보지 않은 사람에겐 또하나의 외국어일것이니. 그리고 영어가 모국어가 아닌 이상. 뭐. (암튼 오늘 내일 되는대로 Documentation 마저 남기겠음. 글쓰는 도중 치열하게 Documentation을 진행하지도 않은 사람이 말만 앞섰다란 생각이 그치질 않는지라. 물론 작업중 Doc 이 아닌 작업 후 Doc 라는 점에서 점수 깎인다는 점은 인지중;) --석천
         주석이 실행될 수 있는 코드가 아니기 때문에, 반드시 코드가 주석대로 수행된다고 볼 수는 없지만 없는것 보다는 낳은 경우도 많다. 코드 자체는 언어의 subset 이기 때문에 아무리 ''코드가 이야기한다(code tells)''라 할지라도 우리가 쓰는 언어의 이해도에 미치기가 어렵다. 이는 마치, 어떤 일을 함에 있어서 메뉴얼이 존재함에도 불구하고 경험자에게 이야기를 듣고 메뉴얼을 볼 경우, 그 이해가 쉽고 빠르게 되는것과 비슷하다.
         // Default Parameter
         // Constraint
         See Also Seminar:CommentOrNot , NoSmok:DonaldKnuth 's comment on programs as works of literature
  • 함수포인터 . . . . 2 matches
         [http://blog.naver.com/isubiramie/20024368885 1. 함수포인터]
         [http://www.codeproject.com/atl/atl_underthehood_.asp 2. 함수포인터]
         [http://www.codeproject.com/atl/atl_underthehood_.asp 3. thunk]
  • 1002/Journal . . . . 1 match
          * 규영이형이 Working Effectivly With Legacy Code 발표할때를 보면서 그 격에 있어 현격함을 느낌.
         읽기 준비 전 Seminar:ThePsychologyOfComputerProgramming 이 어려울 것이라는 생각이 먼저 들어서, 일단 영어에 익숙해져야겠다는 생각이 들어서 Alice in wonderland 의 chapter 3,4 를 들었다. 단어들이 하나하나 들리는 정도. 아직 전체의 문장이 머릿속으로 만들어지진 않는 것 같다. 단어 단위 받아쓰기는 가능하지만, 문장단위 받아쓰기는 힘든중.
          * Seminar:ReadershipTraining
          * Seminar:ReadershipTraining Afterwords
         그림을 보고 나니, Inheritance 나 Delegation 이 필요없이 이루어진 부분이 있다는 점 (KeywordGenerator 클래스나 BookSearcher, HttpSpider 등) Information Hiding 이 제대로 지켜지지 않은것 같다는 점, (Book 과 관련된 데이터를 얻고, 검색하여 리스트를 만들어내는 것은 BookMapper 에서 통일되게 이루어져야 한다.) 레이어를 침범한것 (각각의 Service 클래스들이 해당 로직객체를 직접 이용하는것은 그리 보기 좋은 모양새가 아닌듯 하다. 클래스 관계가 복잡해지니까. 그리고 지금 Service 가 서블릿에 비종속적인 Command Pattern 은 아니다. 그리고 AdvancedSearchService 와 SimpleSearchService 가 BookMapper 에 촛점을 맞추지 않고 Searcher 클래스들을 이용한 것은 현명한 선택이 아니다.)
         구조를 살피면서 리팩토링, KeywordGenerator 클래스와 HttpSpider 등의 클래스들을 삭제했다. 테스트 96개는 아직 잘 돌아가는중. 리팩토링중 inline class 나 inline method , extract method 나 extract class 를 할때, 일단 해당 소스를 복사해서 새 클래스를 만들거나 메소드를 만들고, 이를 이용한뒤, 기존의 메소드들은 Find Usage 기능을 이용하면서 이용하는 부분이 없을때까지 replace 하는 식으로 했는데, 테스트 코드도 계속 녹색바를 유지하면서, 작은 리듬을 유지할 수 있어서 기분이 좋았다.
         7 (토): Prometheus Test Code 추가 대장정
         이번에 리팩토링을 하려고 할때 Legacy Code Refactoring 이라고 상정해서 그럴까. Coverage Test를 완벽하게 작성하는 것에 대해 부담감을 느꼈다. 예전에 유용했었던 '아아. 이미 다 되어있어요.~' 를 다시 적용해볼까.
         Refactoring Catalog 정독. 왜 리팩토링 책의 절반이 리팩토링의 절차인지에 대해 혼자서 감동중.; 왜 Extract Method 를 할때 '메소드를 새로 만든다' 가 먼저인지. Extract Class 를 할때 '새 클래스를 정의한다'가 먼저인지. (절대로 '소스 일부를 잘라낸다'나 '소스 일부를 comment out 한다' 가 먼저가 아니라는 것.)
         Refactoring 을 하기전 Todo 리스트를 정리하는데만 1시간정도를 쓰고 실제 작업을 들어가지 못했다. 왜 오래걸렸을까 생각해보면 Refactoring 을 하기에 충분히 Coverage Test 코드가 없다 라는 점이다. 현재의 UnitTest 85개들은 제대로 돌아가지만, AcceptanceTest 의 경우 함부로 돌릴 수가 없다. 왜냐하면 현재 Release 되어있는 이전 버전에 영향을 끼치기 때문이다. 이 부분을 보면서 왜 JuNe 이 DB 에 대해 세 부분으로 관리가 필요하다고 이야기했는지 깨닫게 되었다. 즉, DB 와 관련하여 개인 UnitTest 를 위한 개발자 컴퓨터 내 로컬 DB, 그리고 Integration Test 를 위한 DB, 그리고 릴리즈 된 제품을 위한 DB 가 필요하다. ("버전업을 위해 기존에 작성한 데이터들을 날립니다" 라고 서비스 업체가 이야기 한다면 얼마나 황당한가.; 버전 패치를 위한, 통합 테스트를 위한 DB 는 따로 필요하다.)
         이전에 TDD 할때 초기 Library 클래스에 대해 Mock 클래스 만들었다가 없애버렸는데, 다시 Library Mock 클래스를 만들어야 할 것 같다. 리팩토링 할때 Fail 난 테스트로 리팩토링을 할 수는 없을테니.
          Library library = new Library();
          Book book = library.view(aBookId);
          public BookMapper(ILibrary library) {
          this.library = library;
          Book book = library.view(aBookId);
         해당 클래스 내에서 생성하는 디자인은 그 클래스를 교체해줄 수가 없으니 유연한 디자인이 아니다. 그렇다고 setter 를 두는 것도 좋은 디자인은 아닌것 같고. (프로그래밍 실행 중간에 Delegation 하는 객체를 교체할 일은 드물다. State Pattern 이나 Strategy Pattern 이 아닌이상.) 아마 처음에 Mock Object 를 이용하여 BookMapper 를 만들었었다면 Connection 을 직접 이용하거나, Library 객체를 내부적으로 직접 인스턴스를 생성하여 이용하는 디자인은 하지 않았을 것이란 생각이 든다.
         사실 {{{~cpp LoD}}} 관점에서 보면 자기가 만든 객체에는 메세지를 보내도 된다. 하지만 세밀한 테스트를 하려면 좀더 엄격한 룰을 적용해야할 필요를 느끼기도 한다. 니가 말하는 걸 Inversion of Control이라고 한다. 그런데 그렇게 Constructor에 parameter로 계속 전달해 주기를 하다보면 parameter list가 길어지기도 하고, 각 parameter간에 cohesion과 consistency가 떨어지기도 한다. 별 상관없어 보이는 리스트가 되는 것이지.
          Book book=getLibrary().view(aBookId);
          protected Library getLibrary() {
  • 2dInDirect3d/Chapter1 . . . . 1 match
          == Enumeration Display Mode ==
          RefreshRate : 주사율
  • 3DGraphicsFoundationSummary . . . . 1 match
          * 어떤 물체를 직선과 곡선의 집합체로 표현한 다음 투영을 통해 테두리를 표시하는 'Wire frame 모델'
          * 평행투영 (Parallel projection, orthogonal projection) : 물체의 모든 점을 화면상에 투영. 깊이감...은 별루다.
          * 광원 모델 사용(Ray-Tracing법 많이 사용)
         || GL_SRC_ALPHA_SATURATE || 원본 색상에 원본알파 값과 (1-대상 알파값)중 작은 것을 곱한다 ||
         || GL_SRC_ALPHA_SATURATE || 대상 색상에 원본알파 값과 (1-대상 알파값)중 작은 것을 곱한다 ||
         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR);
         glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
          DrawQuad(1,1,1,normal);
         ["3DGraphicsFoundation"]
  • 3D프로그래밍시작하기 . . . . 1 match
         3D Programming 을 시작하는 사람은 상당히 막막한 상태에서 시작하게 되기 마련인데, 실질적으로 거치면 좋을 것이라고 생각되는 몇가지 스텝을 적어 보았습니다
         retained는 정점지정시에 속도가 떨어지고.. immediate는 어렵지만 여러방식으로 지정이 가능하고.. 빠르고.. 그랬던거 같습니당.. 요즘엔 direct graphics라 해서 인터페이스가 바꼈는데.. 어떻게 됬는지 몰겠네용..
         ["Direct3D"] 같은데에 봐도 예제로 들어있는 벡터나 행렬관련 루틴들이 있는데 곱하는 방식이 좀 골때리게 되어있어서 아마 크나큰 혼동을 가져올 확률이 높습니다. 3D 를 배우는 목적이 단지 화면에 사각형 몇개 돌리는 것이 아니라 게임이나 에디터를 만들기 위해서라면 벡터나 행렬 연산 라이브러리정도는 자기가 직접 만든 것으로 쓰고 DirectX 는 하드웨어 초기화나 모드세팅 처리랑 삼각형 그리는 부분 (DrawPrimitive) 만 쓰는 것이 좋을 것입니다.
         그래도 옛날보다는 훨씬 일이 쉬운 것이, 화면에 텍스춰매핑된 삼각형을 그려주는 부분인 Rasterization 관련 부분은 가속기가 모두 알아서 처리해 주기 때문이죠. 옛날에는 어떻게 하면 어셈블리로 최적화를 해서 화면에 그림을 빨리 찍느냐를 궁리하느라 사람들이 시간을 많이 보냈지만.. 요즘은 그런 일에 별로 신경을 쓰지 않고 다른 쪽.. (물리학이나 자료구조 최적화) 에
          * STL 은 standard template library 입니다.
          * 최근에는 rasterinzing (transform, lighiting 이 끝나고 난후 화면 주사선에 맞추어서 찍어주는 부분.. 일꺼에여)이외에 trasform과 lighiting도 가속기로 처리할 수 있다고 합니다.
  • 5인용C++스터디/메뉴와단축키 . . . . 1 match
          * 메뉴 상태(Grayed, Checked) 처리는 어떻게 하나?
         void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)
          // TODO: Add your message handler code here
          cmenu->TrackPopupMenu(0, point.x, point.y, this, NULL);
         cmenu->TrackPopupMenu(0, point.x, point.y, this, NULL);
  • ACM2008 . . . . 1 match
         [http://acm.pku.edu.cn/JudgeOnline/ POJ] Peking university Judge Online 이란 시스템이 있는데 온라인으로 프로그래밍 문제를 제공하고, 온라인으로 소스를 보내면 서버에서 컴파일해서 결과를 알려주는 시스템이다. 책에서는 code 의 길이를 이용한 코드 골프쪽에 초점을 맞추고 있었지만 이 프로젝트의 목표상 그럴 필요는 없을거 같다. 다만 온라인으로 제공되는 문제가 꽤 있고 평가하는 시스템이 있으므로 보다 즐겁게 놀 수 있는 '꺼리' 일 것 같다.
  • ACM_ICPC/2012년스터디 . . . . 1 match
          * 문제를 지정해서, 풀어오고, 분석. (Programming Challenges와 더블릿 홈페이지 사용)
          * Programming Challenge에서 알고리즘 당 두문제 정도 풀기.
          * Programming Challenge 문제에 더욱 높은 우선순위를 둠. - [http://uva.onlinejudge.org/]
          * koi_spra - [http://211.228.163.31/pool/koi_spra/koi_spra.php?pname=koi_spra] (dovelet)
          * 코드포스 http://codeforces.com/
          * Codeforce 3시간으로 문제 set풀기.
          * Codeforce 3시간으로 문제 set풀기.
          * Programming Challenges에서 기하 파트 맘에 드는 문제 하나 풀어오기.
          - Dijkstra (다익스트라)
          - Kosaraju , Tarjan의 방법
         A - accelerator
         dynamic programming을 할 때 두 state로 들어오지 않도록만 하면 됨.
          * BackTracking 문제(25) - [http://211.228.163.31/30stair/eating_puzzle/eating_puzzle.php?pname=eating_puzzle eating_puzzle], [http://211.228.163.31/30stair/scales/scales.php?pname=scales scales]
          * Dynamic Programming 문제(25) - [http://211.228.163.31/30stair/partition/partition.php?pname=partition partition], [http://211.228.163.31/30stair/inflate/inflate.php?pname=inflate inflate]
          * Graph, Dfs 문제(16) - [http://211.228.163.31/30stair/dfs/dfs.php?pname=dfs dfs], [http://211.228.163.31/30stair/virus1/virus1.php?pname=virus1 virus1], [http://211.228.163.31/30stair/euler/euler.php?pname=euler euler]
          * 드디어 Histogram문제를 해결
          * [http://211.228.163.31/30stair/rectangle/rectangle.php?pname=rectangle Histogram]
          * [권영기] - 드디어 Histogram을 풀었습니다. 기분이 너무너무 좋네여 ㅎㅎ
  • AcceleratedC++/Chapter13 . . . . 1 match
         || ["AcceleratedC++/Chapter12"] || ["AcceleratedC++/Chapter14"] ||
          double grade() const;
         '''대학원생에 관련된 점을 추가한 Grad class'''
         class Grad:public Core { // 구현(implementation)의 일부가 아닌 인터페이스(interface)의 일부로서 상속받는다는 것을 나타냄.
          Grad();
          Grad(std::istream&);
          double grade() const;
         Grad 클래스는 Core로 부터 파생되었다(Derived from), 상속받았다(inherits from), 혹은 Core는 Grad의 base class 이다 라는 표현을 사용한다.
          double grade() const;
          Core, Grad의 생성자 4가지. 각기의 클래스에 따라 다르게 행동하게 되는 read, grade 함수. Core 클래스의 name, read-common 함수.
         double Core::grade() const {
          return ::grade(midterm. final, homework);
          '''Grad::read 함수의 오버로딩'''
         istream& Grad::read(istream& in) {
          상기의 클래스는 Grad의 멤버 함수로 부모 클래스의 read_common, read_hw의 함수를 그대로 상속받았다는 것을 가정한다.
         istream& Grad::read(istream& in) {
          in >> thesis; // thesis는 Core가 아니라 Grad의 멤버 변수이므로 범위 지정 연산자를 사용해서는 안된다.
          '''thesis가 적용된 점수를 리턴하는 Grad::grade() 함수'''
         double Grad::grade() const {
          return min(Core::grade(), thesis); // min()은 <algorithm>에 정의된 함수이다.
  • AcceleratedC++/Chapter5 . . . . 1 match
         || ["AcceleratedC++/Chapter4"] || ["AcceleratedC++/Chapter6"] ||
          == 5.1 Separating students into categories ==
         bool fgrade(const Student_info& s)
          return grade(s) < 60;
         vector<Student_info> extract_fails(vector<Student_info>& students)
          if(fgrade(students[i]))
          === 5.1.1 Erasing elements in place ===
         vector<Student_info> extract_fails(vector<Student_info>& students)
          if(fgrade(students[i])) {
          students.erase(students.begin() + i);
          * 왜 students.erase(students[i]) 하지 않는가? 모든 컨테이너에 일관성을 제공하기 위해서라고 한다. 바로 반복자라 불리우는 것을 이용해, (포인터보다 반복자가 먼저 나오네요.) 동일한 방법으로 제어를 할수 있는 것이다.
         vector<Student_info> extract_fails(vector<Student_info>& students)
          if(fgrade(students[i])) {
          students.erase(students.begin() + i);
          === 5.1.2 Sequential versus random access ===
          == 5.2 Iterators ==
          * 여태껏 잘쓰던 벡터형 변수[n]은 벡터의 n번째 요소를 말한다. 지금까지 하던거 보면 루프 안에서 ++i 이거밖에 없다. 즉 순차적으로만 놀았다는 뜻이다. 우리는 알지만 컴파일러는 알길이 없다. 여기서 반복자(Iterators)라는 것을 알아보자.
         for(vector<Student_info>::const_iterator i = students.begin() ; i != students.end() ; ++i)
          === 5.2.1 Iterator types ===
          * const_iterator : 값을 변경시키지 않고 순회할때
  • Adapter . . . . 1 match
         자 그럼 Adapter를 적용시키는 시나리오를 시작해 본다. ''Design Patterns''(DP139)에서 DrawingEditor는 그래픽 객체들과 Shape의 상속도상의 클래스 인스턴스들을 모아 관리하였다. DrawingEditor는 이런 그래픽 객체들과의 소통을 위하여 Shape 프로토콜을 만들어 이 규칙에 맞는 메세지를 이용한다. 하지만 text인자의 경우 우리는 이미 존재하고 있는 TextView상에서 이미 구현된 기능을 사용한다. 우리는 DrawEditior가 TextView와 일반적으로 쓰이는 Shape와 같이 상호작용 하기를 원한다. 그렇지만 TextView는 Shape의 프로토콜을 따르지 않는 다는 점이 문제이다. 그래서 우리는 TextShap의 Adapter class를 Shape의 자식(subclass)로 정의 한다. TextShape는 인스턴스로 TextView의 참조(reference)를 가지고 있으며, Shape프로토콜상에서의 메세지를 사용한다.; 이들 각각의 메세지는 간단히 다른 메세지로 캡슐화된 TextView에게 전달되어 질수 있다. 우리는 그때 TextShape를 DrawingEditor와 TextView사이에 붙인다.
         TextShape는 Shape에 translator같은 특별한 일을 위한 기능을 직접 추가한 것으로 Shape의 메세지를 TextView Adaptee가 이해 할수 있는 메세지로 변환 시킨다.:하지만 DrawingEditor가 TextSape에 대한 메세지를 보낼때 TextShape는 다르지만 문법적으로 동일한 메세지를 TextView 인스턴스에게 보낸다. [[BR]]
         여기에 TextShape Adapter가 그것의 Adaptee를 위해 메세지를 해석하는 모습의 interaction diagram이 있다.
         우리는 Tailored Adapter안에서 메세지를 해석을 위하여 해당 전용 메소드를 만들수 있다. 왜냐하면 디자인 시간에 Adapter와 Adaptee의 프로토콜을 알고 있기 때문이다. The Adapter class는 유일한 상황의 해석을 위해서 만들어 진다. 그리고 각각의 Adapter의 메소드는 Adaptee에 대한 알맞은 메세지들에 대하여 hard-codes(전용 함수 정도의 의미로 생각) 이다
         자 그럼 여기에 예제를 보자. 우리는 employee관리 application을 가지고 있다고 가정한다.어플리케이션 모델은 하나의 인자인, employee의 사회 보장(비밀) 번호(social security number)의 포함하고 application의 사용자 인터페이스는 employee의 사회 보장 번호를 화면상에 뿌려주는 '입력 박스 뷰'를 포함한다.모델의 엑세스하고 초기화 시키기 위한 메소드는 'socialSecurity'와 'socialSecurity:'로 이름 지어져 있다. 입력 박스는 단지 현재의 사회 보장 번호를 뿌리기만 한지만 모델의 값을 요청하는 방법만을 알고있다.( DeleteMe 수정 필요 ) 그래서 우리는 value mesage를 socialSecurity로 변환 해야 한다.우리는 Pluggable Adapter 객체를 이런 목적을 위해서 사용할수 있다.자 우리의 예제를 위한 interaction 다이어 그램을 보자
         이 다이어 그램은 단순화 시킨것이다.;그것은 개념적으로 Pluggable Adpter의 수행 방식을 묘사한다.그러나, Adaptee에게 보내지는 메세지는 상징적으로 표현되는 메세지든, 우회해서 가는 메세지든 이런것들을 허가하는 perform:을 이용하여 실제로 사용된다.|Pluggable Adpater는 Symbol로서 메세지 수집자를 가질수 있고, 그것의 Adaptee에서 만약 그것이 평범한 메세지라면 수집자인 perform에게 어떠한 시간에도 이야기 할수 있다.|예를 들어서 selector 가 Symbol #socialSecurity를 참조할때 전달되는 메세지인 'anObject socialSecurity'는 'anObject perform: selector' 과 동일하다. |이것은 Pluggable Adapter나 Message-Based Pluggable Adapter에서 메세지-전달(message-forwading) 구현되는 키이다.| Adapter의 client는 Pluggable Adapter에게 메세지 수집자의 value와 value: 간에 통신을 하는걸 알린다,그리고 Adapter는 이런 내부적 수집자를 보관한다.|우리의 예제에서 이것은 client가 'Symbol #socialSecurity와 value 그리고 '#socialSecurity:'와 'value:' 이렇게 관계 지어진 Adapter와 이야기 한는걸 의미한다.|양쪽중 아무 메세지나 도착할때 Adapter는 관련있는 메세지 선택자를 그것의 'perform:'.을 사용하는 중인 Adaptee 에게 보낸다.|우리는 Sample Code부분에서 그것의 정확한 수행 방법을 볼것이다.
         === Parameterized Adapter ===
         == Sambple Code ==
  • AirSpeedTemplateLibrary . . . . 1 match
         특별한 녀석은 아니나, 다음의 용도를 위해 만들어진 TemplateLibrary
         However, in making Airspeed's syntax identical to that of Velocity, our goal is to allow Python programmers to prototype, replace or extend Java code that relies on Velocity.
         소스는 subversion 을 이용해서 다운받으면 됨. (해당 위키 페이지 참조. [Trac] 으로 관리되고 있음)
  • Ant/TaskOne . . . . 1 match
          <!-- Compile the java code from ${src} into ${build} -->
  • Applet포함HTML/진영 . . . . 1 match
         <APPLET CODE=" NotHelloWorldApplet.class" WIDTH=300 HEIGHT=300>
          codebase = "http://java.sun.com/products/plugin/autodl/jinstall-1_4_1_01-windows-i586.cab#Version=1,4,1,1"
          <PARAM NAME = CODE VALUE = " NotHelloWorldApplet.class" >
          <PARAM NAME = "type" VALUE = "application/x-java-applet;jpi-version=1.4.1_01">
          <PARAM NAME = "scriptable" VALUE = "false">
          CODE = " NotHelloWorldApplet.class"
         <APPLET CODE = " NotHelloWorldApplet.class" WIDTH = 300 HEIGHT = 300>
  • AstroAngel . . . . 1 match
          * 이영록 : ["ricoder"]
          * 임영동 : ["Yggdrasil"]
  • Athena . . . . 1 match
          * Object Programming 수업의 숙제를 위한 페이지입니다
          * 첫 회의 - 프로젝트 이름 결정, 기본 코딩 스타일 결정, 첫 ["PairProgramming"] 호흡
          * Contrast Stretching 작성(20분) - 명훈
          * Histogram Equlisation (30분) - 명훈
          * contrast stretching할때 입력값 받지않는 것으로 수정(20분) - 명훈
          * 5.4 Contrast Stretched
          * 5.9 Range- highlighting
          * 5.11 Parabola
          * 5.11.1 First Parabola
          * 5.11.2 Second Parabola
          * 7.1 Contrast Stretching
          * 7.2 Histogram Equlisation
  • BasicJAVA2005/실습2/허아영 . . . . 1 match
         public class GridLayoutDemo extends JFrame implements ActionListener{
          super("Random numbers ver.1");
          application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • BlueZ . . . . 1 match
         The overall goal of this project is to make an implementation of the Bluetooth™ wireless standards specifications for Linux. The code is licensed under the GNU General Public License (GPL) and is now included in the Linux 2.4 and Linux 2.6 kernel series.
         = Sample Code =
          // set the connection parameters (who to connect to)
          // set the connection parameters (who to connect to)
  • C++3DGame . . . . 1 match
         하나의 code[] 절대 "세계"좌표를 구하려면 다음과 같은 코드를 사용한다.
  • C/C++어려운선언문해석하기 . . . . 1 match
         CodeProject에서 최근에 아주 흥미로운 글을 읽었습니다. 글의 내용이 별로 길지도 않고 워낙 유용한 정보라 생각되서 날림으로 번역해봤습니다. 영어와 한글의 어순이 반대라서 매끄럽지 못한 부분이 많은데 이런 경우 원문도 같이 볼 수 있도록 같이 올렸습니다.
         원문 : How to interpret complex C/C++ declarations (http://www.codeproject.com/cpp/complex_declarations.asp)
         변수 p는 int형을 요소로 하는 크기가 4인 배열을 가리키는 포인터(a pointer to an array of 4 ints)이며, 변수 q는 int형 포인터를 요
         소로 하는 크기가 5인 배열(an array of 5 pointer to integers) 입니다.
         e var[10]; // var is an array of 10 pointers to
         (an array of 5 pointers to functions that receive two const pointers to chars and return void pointer)은 어떻게 선언하면 될까요
         "Start reading the declaration from the innermost parentheses, go right, and then go left. When you encounter parentheses, the
         declaration has been parsed."
         5. Jump put of parentheses, go right and hit [10] -------- to an array of 10
         2. Go right, find array subscript --------------------- is an array of 5
         // pointer to an array of pointers
         // two parameters:
         // parameters and returns
         // two parameters:
         // to a function that takes two parameters:
         (int &) ) [5]; // e is an array of 10 pointers to
         // an array of 5 floats.
  • CC2호 . . . . 1 match
         [http://www.zikimi.co.kr/new_zikimi/z002/002_01.htm?code=37 프로그래머 열린 공간 지킴이]
         [http://www.its.strath.ac.uk/courses/c/ University of Strathclyde Computer Centre]
         [PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
  • CPPStudy_2005_1/STL성적처리_1 . . . . 1 match
         = code =
          double average;
         double average(Student_info &s);
         void totalAverage(vector<Student_info> &students);
          totalAverage(students);
          transform(students.begin(),students.end(),back_inserter(sum),Sum);
         double average(Student_info &s)
          return s.average=Sum(s)/SUBJECT_SIZE;
         void totalAverage(vector<Student_info> &students)
          vector<double> averageScore;
          transform(students.begin(),students.end(),back_inserter(averageScore),average);
          for(vector<Student_info>::const_iterator it = students.begin() ; it!=students.end();++it)
          out<<it->name<<" - totalSum : "<<it->total<<" average : "<<it->average<<"\n";
          for(vector<string>::const_iterator it = subject.begin() ;
  • CPPStudy_2005_1/STL성적처리_1_class . . . . 1 match
         = code =
          double m_average;
          double getAverage() {return m_average;};
          double average();
          m_average=0.0;
         double Student::average()
          return m_average=m_total/m_subjects.size();
          average();
          for(vector<string>::const_iterator it = subject.begin() ;
          for(vector<Student>::iterator it = m_students.begin() ; it!=m_students.end();++it)
          for(vector<int>::const_iterator it2 = scores.begin();it2!=scores.end();++it2)
          out<<it->getTotal()<<"\t"<<it->getAverage()<<endl;
  • CPPStudy_2005_1/STL성적처리_2_class . . . . 1 match
         = Code =
         [[NewWindow("http://www.zeropage.org/viewcvs/www/cgi/viewcvs.cgi/accelerated_cpp_stl_grade/?root=sapius", "source code")]]
         Upload:result_stl_grade_sapius.jpg
  • CProgramming . . . . 1 match
         [http://www.zikimi.co.kr/new_zikimi/z002/002_01.htm?code=37 프로그래머 열린 공간 지킴이]
         [http://www.its.strath.ac.uk/courses/c/ University of Strathclyde Computer Centre]
         [PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
  • CVS . . . . 1 match
          * http://network.hanbitbook.co.kr/view_news.htm?serial=299 - CVS 관리. tag, branch 등에 대한 간단한 소개.
          * http://www.chonga.pe.kr/document/programming/cvs/index.php 해당 사이트에서 제작한 한글 Reference
         A very helpful soul, Robert Cragie, helped me out with this one. Here's his reply to my question above.. :
         Robert Cragie Design Engineer, Jennic Ltd. Sheffield UK
         marcus.berglund@entra.se
         버전 관리 프로그램 몇가지 : IBM의 CLEAR/CASTER, AT&T의 SCCS, CMU(카네기 멜론 대학)의 SDC, DEC의 CMS, IBM Rational의 {{{~cpp ClearCase}}}, MS의 {{{~cpp Visual SourceSafe}}}, [Perforce], SubVersion, AlianBrain
         돈이 남아 도는 프로젝트 경우 {{{~cpp ClearCase}}}를 추천하고, 오픈 소스는 돈안드는 CVS,SubVersion 을 추천하고, 게임업체들은 적절한 가격과 성능인 AlianBrain을 추천한다. Visual SourceSafe는 쓰지 말라, MS와 함께 개발한 적이 있는데 MS내에서도 자체 버전관리 툴을 이용한다.
  • CVS/길동씨의CVS사용기ForRemote . . . . 1 match
         SET PATH=%PATH%;"C:\Program Files\GNU\WinCvs 1.3"
         branch:
          * 수많은 엔터프라이즈 툴들이 CVS를 지원합니다. (Rational Rose, JBuilder, Ecilpse, IntelliJ, Delphi etc) 이들 툴로서 gui의 접근도 가능하고, 컴퓨터에 설치하신 WinCVS로도 가능합니다. 하지만 그런 툴들도 모두 이러한 과정을 거치는것을 단축하고 편의성을 제공합니다. (WinCVS 역시) Visual Studio는 자사의 Source Safe외에는 기본 지원을 하지 않는데, 플러그인을 찾게되면, 링크 혹은 아시면 링크 걸어 주세요. --["상민"]
  • CanvasBreaker . . . . 1 match
          * 2002학년도 2학기 ObjectProgramming 3번째 프로젝트
          1. Contrast Stretching
          2. Histogram Equalization
          8. Contrast Stretched , Compression - 1시간
          * Clipping ,Iso-intensity, Range-Highlighting, Solarize - 40분
          * FirstParabola, SecondParabola - 30분
  • Chapter II - Real-Time Systems Concepts . . . . 1 match
         Food processing, Chemical plants, Engine controls, Antilock braking systems, Fax machines, ETC
         === Critical Section of Code ===
         === Reentrancy ===
          * Rate Monotonic Scheduling (RMS)
  • CivaProject . . . . 1 match
         template<typename ElementType> class Array;
         //#define Array_Handle(ElementType) boost::shared_ptr< civa::lang::Array<ElementType> >
         //template<typename ElementType> typedef shared_ptr< Array<ElementType> > Array_Handle;
         typedef shared_ptr< Array<char> > charArray_Handle;
         class Comparable;
         typedef shared_ptr<Comparable> Comparable_Handle;
          * 파라메터라이즈 typedef 은 컴파일이 안되네.. 으으 Array 쓸땐 길게 다 써줘야하나..
         == civa.lang.Array ==
         #ifndef CIVA_LANG_ARRAY_INCLUDED
         #define CIVA_LANG_ARRAY_INCLUDED
         class Array : public Object {
          Array(int length) throw() : length(length) {
          Array(ElementType newValues[]) {
          ElementType operator[] (int index) throw() {
          const ElementType operator[] (int index) const throw() {
          ~Array() {
         #endif // CIVA_LANG_ARRAY_INCLUDED
          virtual char charAt(int index) = NULL;
         == civa.lang.Comparable ==
         #ifndef CIVA_LANG_COMPARABLE_INCLUDED
  • CodeConvention . . . . 1 match
          * [http://java.sun.com/docs/codeconv/ Java Code Convention] : ["Java"] Platform
          * [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsgen/html/hunganotat.asp Hungarian Notation] : MFC, VisualBasic
          * [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp?frame=true .Net Frameworks Design Guidelines] : C#, VisualBasic.Net
          * [http://msdn.microsoft.com/library/techart/cfr.htm Coding Technique and Programming Practices]
          * [http://www.python.org/peps/pep-0007.html Style Guide for C Code]
          * [http://www.python.org/peps/pep-0008.html Style Guide for Python Code]
          * 1980년대 charles simonyi 논문 Meta-programming : A Software Prodution Method
          * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsgen/html/hunganotat.asp
          * 각 언어마다, Code Convention or Style, Notation, Naming 제각각이지만 일단은 Convention으로 해두었음 --["neocoin"]
  • CodeRace/20060105/민경선호재선 . . . . 1 match
          e.printStackTrace();
          e.printStackTrace();
          ArrayList<Data> list = alice.sort();
          private void print(ArrayList<Data> list) {
          count = count + temp.toCharArray()[j];
          private ArrayList<Data> sort() {
          Iterator it = set.iterator();
          ArrayList<Data> list = new ArrayList<Data>();
          Collections.sort(list, new DataComparator());
         class DataComparator implements Comparator<Data> {
         [CodeRace/20060105]
  • CodeRace/20060105/아영보창 . . . . 1 match
         = CodeRace 아영 보창 =
          bool operator() (const Word* a, const Word* b)
  • 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.
         = Migration from COM to .NET =
         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.
         RCW를 구현하고 있는 .Net 하에서는 COM 객체는 아마도 제한적으로 호환성의 측면에서 사용될 것이다. 또한 .NET 객체들은 아마도 COM callable wrapper를 호출하는 것 때문에 COM 객체들안에서 사용될 것이다. 덧붙여서 COM+가 제공하는 일부분의 서비스들(transaction, queued components)은 여전히 .NET 응용프로그램에서도 중요한 부분이다.
         COM is a planned feature of the coming version of Windows, code-named "Longhorn".
  • ComputerGraphicsClass . . . . 1 match
         수업내용: Computer Graphics 에 대한 전반적인 이해. 주로 3D 관련 내용과 프로젝트.
         [ComputerGraphicsClass/Report2004_1]
         [ComputerGraphicsClass/Report2004_2]
         [ComputerGraphicsClass/Exam2004_1]
         [ComputerGraphicsClass/Exam2004_2]
         실제 수업의 경우는 OpenGL 자체가 주는 아니다. 3DViewingSystem 이나 Flat, Gouraud, Phong Shading 등에 대해서도 대부분 GDI 로 구현하게 한다.(Flat,Gouraud 는 OpenGL 에서 기본으로 제공해주는 관계로 별 의미가 없다)
         Project 에 걸리는 시간이 꽤 크므로, 미리미리 스케줄링을 잘 할 필요가 있다. Viewing System 이나 Ray Tracing 은 일주일 이상 조금씩 꾸준하게 진척하기를 권함.
  • ComputerGraphicsClass/Exam2004_2 . . . . 1 match
         === Ray Tracing ===
  • ComputerNetworkClass/2006 . . . . 1 match
          * http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project1
          * http://zerowiki.dnip.net/~namsangboy/program/ethereal.exe
          * http://zerowiki.dnip.net/~namsangboy/program/WinPcap_3_1.exe
  • ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 1 match
          * http://orchid.cse.cau.ac.kr/course/cn/index.php?code=project4
         [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/PacketAnalyzer . . . . 1 match
         2. IP 헤더의 graphical한 표시
         자세한 사항은 MSDN 혹은 Network Programming For Microsoft Windows 를 참조하기 바란다.
         = Sample Code =
          // Create a raw socket for receiving IP datagrams
          s = WSASocket(AF_INET, SOCK_RAW, IPPROTO_IP, NULL, 0, WSA_FLAG_OVERLAPPED);
          printf("WSAIotcl(%d) failed; %d\n", dwIoControlCode,
          // Start receiving IP datagrams until interrupted
          // Decode the IP header
  • ContestScoreBoard/허아영 . . . . 1 match
         = source code =
  • CppStudy_2002_2 . . . . 1 match
          * 참여자 - 이영록(["ricoder"]) ,김영준(["k7y8j2"]), 박세연(["세여니"]), 장재니(["E=mc²"])
         C++을 공부하는 모든 이들에게 Seminar:AcceleratedCPlusPlus 의 일독을 권합니다. --JuNe
  • CppUnit . . . . 1 match
         C++ 에서 UnitTest를 하기 위한 UnitTestFramework. http://sourceforge.net/projects/cppunit/ 에서 다운 받을 수 있다.
         C++ 의 또다른 형태의 UnitTestFramework 로 CxxTest 가 있다.
         === Library 화일 생성하기 ===
         처음 압축화일을 받고 풀면 lib 폴더에 Library 관련 화일들이 없다. 이것을 만드는 방법
          * Library 화일 생성 : {{{~cpp ...cppunitexamplesexamples.dsw }}} 을 연뒤 {{{~cpp WorkSpace }}}의 {{{~cpp FileView }}}에서 {{{~cpp CppUnitTestApp files }}} 에 Set as Active Project로 맞춰준다.(기본값으로 되어 있다.) 그리고 컴파일 해주면 lib 폴더에 library 화일들이 생성될 것이다.
          http://zeropage.org/~reset/zb/data/TestHierarchy.jpg
          === include, library directory 맞춰주기 (둘중 하나를 선택한다.) ===
          Library : {{{~cpp ...cppunit-x.x.xlib }}} [[BR]]
          * Tools -> Options -> Directories -> Library files 에서 역시 lib
          a. Project -> Settings -> Link -> Input -> Additional Library directories
          * Project Setting - Link - General - object/library 에 cppunitd.lib, testrunnerd.lib 를 추가해준다.
          * Project Setting - Code Generation - Use Run-Time library 를 다음으로 맞춰준다.
         CPPUNIT_TEST_SUITE_REGISTRATION( ExampleTestCase ); // TestSuite 를 등록하기. TestRunner::addTest 가 필요없다.
         GUI Programming 을 하기 위해 winmain 이 시작인 코드의 경우(MFC GUI Programming 포함) 콘솔창이 뜨지 않는다. 이 경우 GUI Runner 를 실행해줘야 한다.
         Win API Programming 시에 Text Runner 를 이용하여 이용 가능. 다음과 같은 식으로 쓸 수도 있다.
         CPPUNIT_TEST_SUITE_REGISTRATION (SimpleTestCase);
         코드를 보면 알겠지만, ASSERT 문들에 대해서 전부 매크로를 이용한다. 만일 이를 다른 언어들의 UnitTest Framework 처럼 assertEqual 이나 assert 문으로 쓰고 싶다면, 다음의 문장을 cppunit library 를 include 하기전에 추가해준다.
         2.1) Why does my application crash when I use CppUnit?
          You probably forgot to enable RTTI in your project/configuration. RTTI are disabled by default.
          Enable RTTI in Projects/Settings.../C++/C++ Language. Make sure to do so for all configurations.
  • Cracking/ReverseEngineering/개발자/Software/ . . . . 1 match
         Software 개발자가 알아야 하는 것은 Language, Algorithm만이 아니다. (이 것만 알면 Coder일 뿐이 잖는가?)
         기존 배우고 있던 것들과는 별개로 Cracking에 대한 것들을 익혀야한다. (여기서 Cracking은 시스템 전반에 관한 지식을 익혀 그것을 악용 하는 것이다.)
         개발자들이 Coding을 할 때 약간의 신경만 써주면 Cracker들에 의해 exploit이 Programming되는 것을 막을 수 있다.
         (그렇지만, Cracker입장에서는 nProtector 보안 개발자들은 짜증난다. -_-++++)
         Jeffrey Richter의 Programming Applications for Microsoft Windows란 책을 추천한다. 현재 4th edition까지 나온 상태이다. 물론 한글판은 없다.
         Keyword : Cracking, Reverse Engineering, Packing, Encypher, Encrypt, Encode, Serial, Exploit, Hacking, Jeffrey Ritcher
  • CrackingProgram . . . . 1 match
         발표자료 : Upload:CrackingProgram.ppt
         00401362 call @ILT+370(std::operator<<) (00401177)
         00401373 call @ILT+55(std::operator>>) (0040103c)
         0040139F call @ILT+370(std::operator<<) (00401177)
         004013A9 call @ILT+295(std::basic_ostream<char,std::char_traits<char> >::operator<<) (0040112c)
         004013BF call @ILT+370(std::operator<<) (00401177)
         004013C9 call @ILT+295(std::basic_ostream<char,std::char_traits<char> >::operator<<) (0040112c)
         [http://family.sogang.ac.kr/~gundal79/ codeDiver]
  • CxImage 사용 . . . . 1 match
         6. link-> object/library modules 에 Debug/CxImages.lib
          // TODO: Add your specialized creation code here
         == Drop and Drag 실행 가능 ==
  • DataCommunicationSummaryProject/Chapter5 . . . . 1 match
          * extra spectrum과 새로운 modulation techniques으로써 가능. CDMA 선호(증가된 스펙트럼의 효율성과 자연스러운 handoff 메카니즘)
          * 두개의 표준 - federal standards
          * 2000kbps의 data rates
          * Data rates
          * Interactive(서킷) High Multimedia
          * Extra Spectrum 필요성 제안.
          * Direct Upgrades : 이미 존재하고 있는 셀크기와, 채널 구조를 지키면서, 패킷 스위칭과 더 나은 모듈레이션을 추가한다. 대부분의 2G는 TDMA이기에 direct upgrades는 2.5G로 간주된다.
          * Roaming : operation의 multiple modes - 각기 다른 3G System.
          * Gold codes라 불리우는, 약간 다른 코딩 테크닉 사용. QPSK
          === Upgrading to 3.5G ===
          * 불행하게도 W-CDMA와 비호환. chip rate때문이다.
          * 새 하드웨어가 필요하지만, 새로운 라디오 인터페이스가 필요없으며, Walsh Codes를 두번 사용해서 두배의 용량을 지원한다.
          * cdmaOne을 물려받음 - chip rate와 GPS 타이밍
  • DataCommunicationSummaryProject/Chapter8 . . . . 1 match
          * 에어 링크가 동작하기 위해서는 두가지 수신기가 필요한데 사용자에 의해서 작동하는게 MSU(핸드폰) 운영자에 의해서 동작하는게 BTS(Base Transceiver Station) 이다.
          * Base Transceiver Stations (BTS)
         = Voice Infrastructure =
          * 2G 핸드폰은 핸드폰만 검증 하지만 3G 폰과 PMR(Private Mobile Radio)는 네트워크도 검증한다.
         = Data Infrastructure =
          * Serving GPRS Support Node (SGSN)은 data infrastructure 에서 MSC와 비슷한 것이다.
         == Optional GPRS Infrastructure ==
  • Debugging/Seminar_2005 . . . . 1 match
          * ask the code
  • DevelopmentinWindows/APIExample . . . . 1 match
         LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
         LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
          TranslateMessage(&msg);
          return msg.wParam;
          wcex.style = CS_HREDRAW | CS_VREDRAW;
          wcex.cbClsExtra = 0;
          wcex.cbWndExtra = 0;
         LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
          wmId = LOWORD(wParam);
          wmEvent = HIWORD(wParam);
          return DefWindowProc(hWnd, message, wParam, lParam);
          return DefWindowProc(hWnd, message, wParam, lParam);
         LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
          if (LOWORD(wParam) == IDOK)
          EndDialog(hDlg, LOWORD(wParam));
         //Microsoft Developer Studio generated resource script.
         // Generated from the TEXTINCLUDE 2 resource.
         #pragma code_page(949)
          MENUITEM SEPARATOR
         STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
  • DirectDraw . . . . 1 match
         DirectX 8.1을 이용한 DirectDraw로 무언가를 만들어 보자.[[BR]]
         Library Files 에는 C:\DXSDK\LIB를 추가해야한다.
         그리고 Project Setting -> Link -> Object/Library modules에는
         ddraw.lib와 dxguid.lib를 추가해야한다.
         #include <ddraw.h>
         = DirectDraw의 과정(?) =
         DirectDraw객체의 생성 -> 표면의 생성(Front, Back, OffScreen) -> 그리고.. 표면 뒤집기..
         === DirectDraw객체의 생성 ===
         LPDIRECTDRAW7 lpDD;
         hr = DirectDrawCreateEx(NULL, (void **)&lpDD, IID_IDirectDraw7, NULL); // DirectDraw객체를 생성
         hr = lpDD->SetCooperativeLevel(hWnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN); // 화면의 레벨을 설정
          1. SetCooperativeLevel의 인자.
          * 0 : Refresh Rate, 0은 디바이스 기본값 (대개 0으로 놓는다.)
         === DirectDraw Front 표면의 생성 ===
         LPDIRECTDRAWSURFACE7 lpDDSFront;
         === DirectDraw Back 표면의 생성 ===
         LPDIRECTDRAWSURFACE7 lpDDSBack;
         === DirectDraw OffScreen의 생성 ===
         LPDIRECTDRAWSURFACE7 lpDDSOff;
         LPDIRECTDRAWSURFACE7 lpDDS = NULL;
  • Dubble_Buffering . . . . 1 match
         == Source Code ==
          // to do : add draw code with memDC
  • Eclipse . . . . 1 match
          * [http://www7b.software.ibm.com/wsdd/library/techarticles/0203_searle/searle1.html Eclipse + Ant]
          1. 참고 [http://openframework.or.kr/JSPWiki/Wiki.jsp?page=EclipseCVS Eclipse에서의CVS연동설명_그림]
         ||F3 || Open Declaration, 해당 인자의 선언 부분을 보여준다.||
         ||F4 || Open Type Hierarchy , 해당 인자의 상속 관계를 표로 보여준다.||
         ||Ctrl+Shift+F|| code의 정렬해준다. 한라인의 소스가 길어지면(100이상) 포멧팅에 한계 보이기도 한다. ||
         Eclipse is an open platform for tool integration built by an open community of tool providers. ...
          * Eclipse 2.2 Draft 에서 Java like file 의 지원이 있다. JSP 따위. 그런데 완료 시점은 03 November .. JDT 공식 지원은 너무 느리네.. -- NeoCoin
  • EffectiveSTL/ProgrammingWithSTL . . . . 1 match
         typedef set<int>::iterator SIIT;
          * find메소드의 average case는 20, worst case는 40.
          * find알고리즘의 average case는 5십만, worst case는 백만.
         = Item45. Distinguish among count, find, binary_search, lower_bound, upper_bound, and equal_range. =
         = Item46. Consider function objects instead of functions as algorithm parameters. =
         = Item47. Avoid producing write-only code. =
  • EightQueenProblem/임인택 . . . . 1 match
          recursive-call 을 이용하겠다는 생각이 퍼뜩 들었다. 역시 가장 문제가 되는 부분은 backtrack 하는 부분이었다.
         === source code ===
  • EightQueenProblem2 . . . . 1 match
         ||강석천|| 2m || 131 lines (+ 82 line for testcode. total 213 lines) || python ||
  • EightQueenProblemDiscussion . . . . 1 match
         만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
         Eight Queens program written by Marcel van Kervinck
         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.
          * TFD로 시도하였는데. test와 code간 이동이 빠르지 못하였다. 즉, test부분이 충분히 작아지지 못한 것 같다.
         [이승한]과 PairProgramming을 하며 문제를 풀었습니다. TDD를 하지 않고 30분을 작성했고 나머지 1시간30분을 TDD로 했습니다.
  • EightQueenProblemSecondTry . . . . 1 match
         || 이선우 ||1h:05m||1h:52m||52m|| 114 lines || 147 lines(+ test code 28 lines) || 304 lines || java || java || java ||
          * LOC - ''Lines of Code. 보통 SLOC(Source Lines of Code)이라고도 함.''
  • Emacs . . . . 1 match
         === Tramp ===
          * emacs 는 dired mode 는 파일을 관리하고 browse 할 수 있는데, tramp 를 활용하여 remote 를 local 처럼 사용할 수 있습니다.
          * tramp 로 sudo 사용하기 : M-x-f {{{/sudo::/etc/}}}
          * tramp 로 ssh 사용하기 : M-x-f {{{/ssh:you@remotehost|sudo:remotehost:/path/to/file}}}
         ;; 'warning: cedet-called-interactively-p called with 0 arguments, but requires 1' error repairing
         ;; See cedet/common/cedet.info for configuration
          emacs code browser의 약자로서, 프로젝트 파일 management나, 디렉토리 management등을 도와주는 확장 기능이다.
         [http://www.skybert.nu/cgi-bin/viewpage.py.cgi?computers+emacs+python_configuration emacs python configuration] - DeadLink
  • EnglishSpeaking/2012년스터디 . . . . 1 match
          * Goal : To talk naturally about technical subject in English!
          * [http://www.youtube.com/watch?v=sZWvzRaEqfw Learn English Vocabulary]
          * 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
          * Mike and Jen's conversation is little harder than AJ Hoge's video. But I like that audio because that is very practical conversation.
          * 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.'''''
  • FortuneMacro . . . . 1 match
         Fortune 매크로는 fortune파일의 인덱스를 직접 읽어들여 사용하므로 FortuneCookies를 읽어들이는 RandomQuoteMacro보다 매우 빠릅니다. :)
  • Genie . . . . 1 match
         [SpiralArray/세연&재니]
         [RandomWalk/재니]
  • Gof/Adapter . . . . 1 match
         Wrapper (오히려 이 단어가 더 친숙할 것이다.)
          * Client (DrawingEditor)
         == Collaborations ==
          * 해당 클래스를 이용하는 Client들은 Adapter 인스턴스의 operation들을 호출한다. adapter는 해당 Client의 요청을 수행하기 위해 Adaptee 의 operation을 호출한다.
          createGraphicNodeBlock:
          [:node | node createGraphicNode].
         == Sample Code ==
         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.
         A class adapter uses multiple inheritance to adapt interfaces. The key to class dapters is to use one inheritance branch to inherit the interface and another branch to inherit the implementation. The usual way to make this distinction in C++ is to inherit the interface publicly and inherit the implementation privately. We'll use this convention to define the TextShape adapter.
         The BoundingBox operation converts TextView's interface to conform to Shape's.
         The IsEmpty operations demonstrates the direct forwarding of requests common in adapter implementations:
         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.
         TextShape must initialize the pointer to the TextView instance, and it does so in the constructor. It must also call operations on its TextView object whenever its own operations are called. In this example, assume that the client creates the TextView object and passes it to the TextShape constructor.
         CreateManipulator's implementation doesn't change from the class adapter version, since it's implemented from scratch and doesn't reuse any existing TextView functionality.
         Compare this code the class adapter case. The object adapter requires a little more effort to write, but it's more flexible. For example, the object adapter version of TextShape will work equally well with subclasses of TextView -- the client simply passes an instance of a TextView subclass to the TextShape constructor.
         DecoratorPattern은 객체에 대한 인터페이스의 변화없이 객체를 확장시킨다. Decorator 는 adapter보다 더 application에 대해 투명적이다. 결론적으로 DecoratorPattern은 재귀적인 composition을 제공한다. 이것은 순수한 adapter로서는 불가능하다.
  • Gof/Command . . . . 1 match
         Action, Transaction
         때때로 요청받은 명령이나 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.
         Menu는 쉽게 Command Object로 구현될 수 있다. Menu 의 각각의 선택은 각각 MenuItem 클래스의 인스턴스이다. Application 클래스는 이 메뉴들과 나머지 유저 인터페이스에 따라서 메뉴아이템을 구성한다. Application 클래스는 유저가 열 Document 객체의 track을 유지한다.
         어플리케이션은 각각의 구체적인 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 한다.
         OpenCommand의 Execute operation은 다르다. OpenCommand는 사용자에게 문서 이름을 물은뒤, 대응하는 Document 객체를 만들고, 해당 문서를 여는 어플리케이션에 문서를 추가한 뒤 (MDI를 생각할것) 문서를 연다.
          * MenuItem 객체가 하려는 일을 넘어서 수행하려는 action에 의해 객체를을 인자화시킬때. 프로그래머는 procedural language에서의 callback 함수처럼 인자화시킬 수 있다. Command는 callback함수에 대한 객체지향적인 대안이다.
          * 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을 재실행하는 것은 중요한 부분이다.
          * 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
          - 수행할 operation을 위한 인터페이스를 선언한다.
         == Collaborations ==
          * ConcreteCommand 객체는 request를 처리하기 위해 receiver에서 operation을 invoke한다.
         == Sample Code ==
         여기 보여지는 C++ code는 Motivation 섹션의 Command 크래스에 대한 대강의 구현이다. 우리는 OpenCommand, PasteCommand 와 MacroCommand를 정의할 것이다. 먼저 추상 Commmand class 는 이렇다.
         PasteCommand 는 receiver로서 Document객체를 넘겨받아야 한다. receiver는 PasteCommand의 constructor의 parameter로서 받는다.
         undo 할 필요가 없고, 인자를 요구하지 않는 단순한 명령어에 대해서 우리는 command의 receiver를 parameterize하기 위해 class template를 사용할 수 있다. 우리는 그러한 명령들을 위해 template subclass인 SimpleCommand를 정의할 것이다. SimpleCommand는 Receiver type에 의해 parameterize 되고
         이 방법은 단지 단순한 명령어에대한 해결책일 뿐임을 명심하라. track을 유지하거나, receiver와 undo state를 argument 로 필요로 하는 좀더 복잡한 명령들은 Command의 subclass를 요구한다.
         MacroCommand는 부명령어들의 sequence를 관리하고 부명령어들을 추가하거나 삭제하는 operation을 제공한다. subcommand들은 이미 그들의 receiver를 정의하므로 MacroCommand는 명시적인 receiver를 요구하지 않는다.
  • Gof/Strategy . . . . 1 match
         = Strategy =
         비슷한 문제들을 해결할 수 있는 알고리즘의 군들을 정의하고, 각각의 알고리즘을 캡슐화하고, 그 알고리즘들을 교환할 수 있도록 한다. Strategy는 알고리즘들로 하여금 해당 알고리즘을 이용하는 클라이언트로부터 독립적일수 있도록 해준다.
         http://zeropage.org/~reset/zb/data/strat011.gif
         Composition 클래스는 text viewer에 표시될 텍스틀 유지하고 갱신할 책임을 가진다고 가정하자. Linebreaking strategy들은 Composition 클래스에 구현되지 않는다. 대신, 각각의 Linebreaking strategy들은 Compositor 추상클래스의 subclass로서 따로 구현된다. Compositor subclass들은 다른 streategy들을 구현한다.
          * ArrayCompositor - 각각의 줄에 특정 수의 단어가 들어가도록 줄나눔을 하는 알고리즘을 가진 클래스.
         StrategyPattern 은 다음과 같은 경우에 이용할 수 있다.
          * 많은 관련 클래스들이 오직 그들의 행동들에 의해 구분된다. Strategy들은 많은 행위중에 한가지로 상황에 따라 클래스을 설정해주는 방법을 제공해준다.
          * 당신은 알고리즘의 다양함을 필요로 한다. 예를 들어, 당신이 알고리즘을 정의하는 것은 사용메모리/수행시간에 대한 trade-off (메모리를 아끼기 위해 수행시간을 희생해야 하거나, 수행시간을 위해 메모리공간을 더 사용하는 것 등의 상관관계)이다. Strategy 는 이러한 다양한 알고리즘의 계층 클래스를 구현할때 이용될 수 있다.
          * StrategyPattern을 이용함으로써 복잡함이 노출되는 것과 알고리즘 구체적인 데이터 구조로 가는 것을 피할 수 있다.
          * 클래스가 많은 행위들을 정의한다. 이는 다중조건문들에 의해서 구현되곤 한다. 이러한 많은 조건문들 대신, 각각 관련된 조건들을 Strategy 클래스들에게로 이동시킬 수 있다.
         http://zeropage.org/~reset/zb/data/strategy.gif
          * Strategy (Compositor)
          * 모든 제공된 알고리즘에 대한 일반적인 인터페이스를 선언한다. Context는 ConcreteStrategy에 의해 구현된 알고리즘들을 호출하기 위해 이 인터페이스를 이용한다.
          * ConcreteStrategy (SimpleCompositor, TeXCompositor, ArrayCompositor)
          * Strategy 인터페이스를 이용하여 알고리즘을 구현한다.
          * ConcreteStrategy 객체로 설정되어진다.
          * Strategy 객체의 참조를 가진다.
          * Strategy 가 context의 데이터를 접근할 수 있도록 인터페이스를 정의할 수 있다.
         StrategyPattern 은 다음과 같은 장점과 단점을 가진다.
          * 조건문을 제거하기 위한 Strategy
  • GofStructureDiagramConsideredHarmful . . . . 1 match
         Each GoF pattern has a section called "Structure" that contains an OMT (or for more recent works, UML) diagram. This "Structure" section title is misleading because it suggests that there is only one Structure of a Pattern, while in fact there are many structures and ways to implement each Pattern.
         사실은 각 Pattern을 구현하기 위한 여러가지 방법이 있는데, GoF의 OMT diagram을 보노라면 마치 각 Pattern에 대한 단 한가지 구현만이 있는 것으로 잘못 이해될 수 있다.
         But inexperienced Patterns students and users don't know this. They read the Patterns literature too quickly, often thinking that they understand a Pattern merely by understanding it's single "Structure" diagram. This is a shortcoming of the GoF Form, one which I believe is harmful to readers.
         하지만, Pattern에 대한 경험이 부족한 학생들이나 사용자들은 이 사실을 모르고 있다. 그들은 Pattern에 대한 저술들을 너무 빨리 읽는다. 단지 한 개의 Diagram만을 이해하는 것으로 Pattern을 이해했다고 착각하는 경우도 잦다. 이게 바로 필자가 생각하기에는 독자들에게 해로워보이는 GoF 방식의 단점이다.
         What about all those important and subtle Implementation notes that are included with each GoF Pattern? Don't those notes make it clear that a Pattern can be implemented in many ways? Answer: No, because many folks never even read the Implementation notes. They much prefer the nice, neat Structure diagrams, because they usually only take up a third of a page, and you don't have to read and think a lot to understand them.
         GoF 책의 각 Pattern 마다 첨부되어 있는 구현에 대한 매우 중요하고 민감한 해설들은 어떠한가? 이 해설들을 통해서 Pattern이 여러 방법으로 구현될 수 있다는 사실을 알 수는 없을까? 알 수 없을 것이다. 왜냐하면 많은 독자들이 아예 구현에 대한 해설 부분을 읽지도 않고 넘어가기 때문이다. 그들은 보통 간략하고 훌륭하게 그려진 Structure diagram을 더 선호하는데, 그 이유는 보통 Diagram에 대한 내용이 세 페이지 정도 분량 밖에 되지 않을 뿐더러 이것을 이해하기 위해 많은 시간동안 고민을 할 필요도 없기 때문이다.
         Diagrams are seductive, especially to engineers. Diagrams communicate a great deal in a small amount of space. But in the case of the GoF Structure Diagrams, the picture doesn't say enough. It is far more important to convey to readers that a Pattern has numerous Structures, and can be implemented in numerous ways.
         엔지니어들에게 있어서 Diagram은 정말 뿌리치기 힘든 유혹이다. 하지만 Gof의 Structure diagram의 경우엔 충분히 많은 내용을 말해줄 수 없다. Pattern들이 다양한 Structure를 가질 수 있으며, 다양하게 구현될 수 있다는 것을 독자들에게 알려주기엔 턱없이 부족하다.
         I routinely ask folks to add the word "SAMPLE" to each GoF Structure diagram in the Design Patterns book. In the future, I'd much prefer to see sketches of numerous structures for each Pattern, so readers can quickly understand that there isn't just one way to implement a Pattern. But if an author will take that step, I'd suggest going even further: loose the GoF style altogether and communicate via a pattern language, rich with diagrams, strong language, code and stories.
  • GoodMusic . . . . 1 match
         || 박혜경 - Rain || :D || 1 ||
  • HangulProcess . . . . 1 match
         [Unicode] : 유니코드
  • HanoiProblem/영동 . . . . 1 match
         .code
         작성자: ["Yggdrasil"]
  • HardcoreCppStudy/첫숙제 . . . . 1 match
          RandomWalk <-역시 참조할 것
  • HeadFirstDesignPatterns . . . . 1 match
         - 2005 jolt award in general book
         sourcecode
         - [http://www.zeropage.org/pds/2005101782425/headfirst_designpatterns.rar 다운받기]
  • HelpMiscellaneous . . . . 1 match
         UpgradeScript는 업그레이드를 위해서 기존에 자신이 고친 파일을 보존해주고, 새로 갱신된 파일로 바꿔주는 스크립트입니다. 유닉스 계열만 지원하며, 쉘 스크립트이며 `diff, patch, GNU tar` 등등의 실행파일이 필요합니다.
         === ScrapPlugin ===
         === RatingPlugin ===
  • HowToBuildConceptMap . . . . 1 match
          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.
          * 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.
          * 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.
  • HowToStudyDataStructureAndAlgorithms . . . . 1 match
         자료구조는 일단 1. 각각의 자료구조들의 특징을 이해하고. 2. 실제의 구현법을 익히며 (뭐.요새는 collection library들을 제공하므로 직접구현할 일이 줄어들었긴 했지만. 그래도 여전히 기초가 됨) 3. 해당 문제상황에 적절한 자료구조를 선택할 수 있는 눈을 다듬어야 함. --석천
         제가 생각컨데, 교육적인 목적에서는, 자료구조나 알고리즘을 처음 공부할 때는 우선은 특정 언어로 구현된 것을 보지 않는 것이 좋은 경우가 많습니다 -- 대신 pseudo-code 등으로 그 개념까지만 이해하는 것이죠. 그 아이디어를 Procedural(C, 어셈블리어)이나 Functional(LISP,Scheme,Haskel), OOP(Java,Smalltalk) 언어 등으로 직접 구현해 보는 겁니다. 이 다음에는 다른 사람(책)의 코드와 비교를 합니다. 이 경험을 애초에 박탈 당한 사람은 귀중한 배움과 깨달음의 기회를 잃은 셈입니다. 참고로 알고리즘 교재로는 10년에 한 번 나올까 말까한 CLR(''Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest'')을 적극 추천합니다(이와 함께 혹은 이전에 Jon Bentley의 ''Programming Pearls''도 강력 추천합니다. 전세계의 짱짱한 프로그래머/전산학자들이 함께 꼽은 "위대한 책" 리스트에서 몇 손가락 안에 드는 책입니다. 아마 우리 학교 도서관에 있을 것인데, 아직 이 책을 본 적 없는 사람은 축하드립니다. 아마 몇 주 간은 감동 속에 하루하루를 보내게 될 겁니다.). 만약 함께 스터디를 한다면, 각자 동일한 아이디어를 (같은 언어로 혹은 다른 언어로) 어떻게 다르게 표현했는지를 서로 비교해 보면 또 배우는 것이 매우 많습니다. 우리가 자료구조나 알고리즘을 공부하는 이유는, 특정 "실세계의 문제"를 어떠한 "수학적 아이디어"로 매핑을 시켜서 해결하는 것이 가능하고 또 효율적이고, 또 이를 컴퓨터에 어떻게 구현하는 것이 가능하고 효율적인지를 따지기 위해서이며, 이 과정에 있어 수학적 개념을 프로그래밍 언어로 표현해 내는 것은 아주 중요한 능력이 됩니다. 개별 알고리즘의 카탈로그를 이해, 암기하며 익히는 것도 중요하지만 더 중요한 것은 알고리즘을 생각해 낼 수 있는 능력과 이 알고리즘의 효율을 비교할 수 있는 능력, 그리고 이를 표현할 수 있는 능력입니다.
         그리고 마지막으로, 자료구조/알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 됩니다. 모든 학습에 있어 이는 똑같이 적용됩니다. 인류의 지성사를 봐도, 구상(concrete) 다음에 추상(abstract)가 오고, 인간 개체 하나의 성장을 봐도 그러합니다. be 동사 더하기 to 부정사가 예정으로 해석될 수 있다는 룰만 외우는 것보다, 그러한 다양한 예문을 실제 문맥 속에서 여러번 보는 것이 훨씬 나은 것은 자명합니다. 알고리즘/자료구조 공부를 할 때 여러 친구들과 함께 연습문제(특히 실세계의 대상들과 관련이 있는 것)를 풀어보기도 하고, ACM의 ICPC 등의 프로그래밍 경진 대회의 문제 중 해당 알고리즘/자료구조가 사용되는 문제를 -- 이게 가능하려면 "이 알고리즘이 쓰이는 문제는 이거다"라는 가이드를 해줄 사람이 있으면 좋겠죠 -- 같이 풀어보는 것도 아주 좋습니다.
          * transform-and-conquer
  • HowToStudyXp . . . . 1 match
         ExtremeProgramming을 어떻게 공부할 것인가
          * XP in Practice (Robert C. Martin et al) : 두 세 사람이 짧은 기간 동안 간단한 프로젝트를 XP로 진행한 것을 기록. Java 사용. (중요한 문헌은 아님)
          * The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
          * ["SoftwareCraftsmanship"] (Pete McBreen) : 새로운 프로그래머상
          * 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]
          *Ralph Johnson
         이게 힘들면 같이 스터디를 하는 방법이 있습니다(스터디 그룹에 관한 패턴 KH도 참고하시길. http://www.industriallogic.com/papers/khdraft.pdf). 이 때 같이 책을 공부하거나 하는 것은 시간 낭비가 많습니다. 차라리 공부는 미리 다 해오고 만나서 토론을 하거나 아니면 직접 실험을 해보는 것이 훨씬 좋습니다 -- 두사람 당 한대의 컴퓨터와 커대란 화이트 보드를 옆에 두고 말이죠. 제 경우 스터디 팀과 함께 저녁 시간마다 가상 XP 프로젝트를 많이 진행했고, 짤막짤막하게 프로그래밍 세션도 많이 가졌습니다.
         '''A Practical Guide to eXtreme Programming''' by David Astels et al.
         '''Extreme Programming in Action''' by Martin Lippert et al.
  • IndexingScheme . . . . 1 match
          * RandomPage
  • IsDesignDead . . . . 1 match
          * http://jstorm.pe.kr/BBS/view.php3?id=106&code=Tip&start=0 - JStorm 진호선배 편역.
  • JTD 야구게임 짜던 코드. . . . . 1 match
         {{{~java code
          a = (int)(random() % 1000);
          a = (int)(random() % 1000);
          a = (int)(random() % 1000);
          char character = null;
  • JTDStudy/첫번째과제/영준 . . . . 1 match
         {{{~cpp code
          num[0] = (int)(Math.random()*10);
          num[1] = (int)(Math.random()*10);
          num[2] = (int)(Math.random()*10);
  • JTDStudy/첫번째과제/원명 . . . . 1 match
         {{{~cpp code
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
          setNumber = (int) (Math.random() * 10);
  • JTDStudy/첫번째과제/원희 . . . . 1 match
         {{{~cpp code
          comNum[0] = (int)(Math.random() * 10 +1);
          comNum[1] = (int)(Math.random() * 10 +1);
          comNum[2] = (int)(Math.random() * 10 +1);
  • JTDStudy/첫번째과제/장길 . . . . 1 match
          return (int) (Math.random()*1000);
         == testcode ==
         import junit.framework.TestCase;
  • Java Study2003/첫번째과제/노수민 . . . . 1 match
         자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
         아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높다:
          * 자바 Applat 에서 - 자바 Bytescode는 소스를 자바 컴파일러로 컴파일한 결과물로서 HTML 문서에 비해 크기가 매우 크며 웹 서버에서 브라우저로 전송되기까지가 많은 시간이 걸린다. 일단 전송된 애플릿은 브라우저가 수행시키므로 그 속도는 클라이언트의 시스템 환경과 브라우저가 내장하고 있는 JVM의 성능에 따라 좌우된다. 28.8K 정도의 모뎀 환경이라면 그럴듯한 애플릿을 다운 받아서 수행하는데는 많은 인내심이 필요하게 된다. 그러나, 점차 인터넷 통신 환경이 좋아지고 있으며 가정집을 제외한 대부분의 사무실과 학교 등에서는 전용 회선이 깔려 있고, 넉넉한 환경의 전용선이라면 애플릿을 구동하는데 무리가 없다. 근래에는 가정에서도 초고속 통신 환경을 싼 값에 구축할 수 있으므로 점차적으로 인터넷 환경에서 애플릿의 전송은 부담이 되지 않을 것이다. JVM도 기술적으로 많이 향상되었고, Sun뿐 아니라, IBM과 같은 매머드급 회사들이 뛰어들어 개발하고 있어 초기 지적받았던 JVM의 구동 속도는 점차 문제가 되지 않는 상황이다.
  • JavaScript/2011년스터디/3월이전 . . . . 1 match
          * [http://www.yes24.com/24/goods/2943930?scode=032&OzSrank=1 자바스크립트 완벽 가이드]의 목차를 참고하여 진행한다.
          * var a = new Array(3);
          * 익명함수를 사용한 Dynamic programming
         Object.prototpye.toString.apply(o); // [Object Array]
          * 과제 : Toy Program 짜오기
  • JavaStudy2003/두번째과제/곽세환 . . . . 1 match
         RandomWalk
          private int array[][]; //판의 배열
          array = new int[max_y][max_x];
          array[i][j] = 0;
          if (array[i][j] == 0)
          array[y][x]++;
          output += array[i][j] + " ";
          int dir = (int)(Math.random() * 8);
  • JavaStudy2003/두번째과제/노수민 . . . . 1 match
          * 원래 RandomWork 짜던게 있는데 eclipse가 Run이 안되더군요;
  • JosephYoder방한번개모임 . . . . 1 match
         일단 코드 컨스트럭트를 할때는 Facade and Wrapper Pattern을 이용해서 방을 청소하고 시작하라고하는것도 보았다. 하긴 이렇게하면 다른것에 상관 없이 쓸수 있겠군? 이라고 생각했다.
          * facade, wrapper 패턴등을 이용해 지저분한 구현을 숨길 수 있다!
          * throwaway code. 정말 한번만 쓰고 버린다. 다시는 돌아보지 말아야한다.
          1. CHANGE METHOD or STRATEGY : MEDIUM
  • JumpJump/김태진 . . . . 1 match
         // codersHigh2013
  • KDPProject . . . . 1 match
          *["DPSCChapter3"] - Creational Patterns - Abstract factory 진행.
          *["DPSCChapter4"] - Structural Patterns - catalog 까지 진행.
          *["DPSCChapter5"] - Behavioral Patterns - 진행된것 아직 없음.
          * http://www.rational.com/ - 원조들의 모임 Rational 시리즈
  • KIV봉사활동/예산 . . . . 1 match
          * [http://item.gmarket.co.kr/challenge/neo_goods/goods.asp?goodscode=129914186 모기장] : 20500 원
  • LUA_1 . . . . 1 match
         루아의 공식 사이트는 http://www.lua.org/ 입니다. 하지막 MS-Windows 환경에서 루아를 시작하고 싶으시다면 http://code.google.com/p/luaforwindows/ 에서 루아 프로그램을 다운 받으실 수 있습니다. 우선 MS-Windows 환경이라고 가정하고 앞서 말한 사이트의 Download 페이지에서 LuaForWindows_v5.1.4-45.exe 를 다운 받습니다. 나중에는 버전명이 바뀐 바이너리 파일이겠죠. 이 파일을 다운로드 받아서 설치하면 시작>Programs>Lua>Lua (Command Line) 를 찾아 보실 수 있습니다. 해당 프로그램을 실행하면 Command 화면에 ">" 와 같은 입력 프롬프트를 확인하실 수 있습니다. 그럼 간단히 Hello world를 출력해 볼까요?
          그리고 세번째는 많은 게임의 스크립트 언어로 검증이 되었다는 점입니다. 대표적으로 World of Warcraft(WOW)가 있겠죠. 많은 사람들이 루아를 WOW을 통해서 알게 되었죠. 간략하게 루아의 특징에 대해서 알아 보았습니다. 좀 더 자세한 루아의 역사는 http://en.wikipedia.org/wiki/Lua_(programming_language) 에서 확인할 수 있습니다. 한글 위키 페이지가 내용이 좀 부족하네요.
  • LightMoreLight/허아영 . . . . 1 match
         How do I code this contents??
  • Linux/MakingLinuxDaemon . . . . 1 match
         = sample code =
  • LinuxProgramming/QueryDomainname . . . . 1 match
         = sample code =
  • LinuxSystemClass/Exam_2004_1 . . . . 1 match
          Rate Scheduling 란?
  • ListCtrl . . . . 1 match
          // TODO: Add your control notification handler code here
  • MFC/AddIn . . . . 1 match
         참고) http://www.programmersheaven.com/zone3/cat826/
          * Codewiz (http://www.sohva.org/CodeWiz2/)
         CrashReport 라는 것도 있다는데... code project 에서 참조하라고함. StarDock 이 이걸 이용했나본데;; dll이 있네;; - [eternalbleu]
  • MFC/RasterOperation . . . . 1 match
          {{{~cpp CDC::SetROP2()}}} 라는 함수로 제공하며 RasterOPerationTo의 약자이다.
         = CDC Drawing Modes =
  • MFCStudy_2002_2 . . . . 1 match
          * 아마.. 내가 이정도 때 했구나.. -_-;; 그때 딱 도움 되었던게.. 남의 source 훔쳐 보기. -_-+ www.codeguru.com 가서 많이 받아서 봤지.. -_-;; MFC 잘쓰는데는 꽤나 도움이 될거구만.. 뭐.. 거 가보면 mfc 내에서 엄청나게 상속받아서 지들이 만들어 놓은게 많아서 왠만한건 분석도 못하는게 많이 있지만. --; 그래도 도움 짱이지... 지금 쓰질 않아서.. -_-; 기억이 하나도 안나는구만. 에또.. 제프 아저씨와 찰스 아저씨의 책을 읽어 보도록 해요. --; 세미나 하는 사람들한테 물어봐 그건.. --;; 그럼.. 휘릭~ -- guts
  • MedusaCppStudy/석우 . . . . 1 match
          * Randomwalk
          srand((unsigned)time(NULL));
          int direction = rand() % 8;
         void draw(const int& won);
          else if (command == "draw")
          draw(won);
         void draw(const int& won)
  • Metaphor . . . . 1 match
         원문 : http://www.extremeprogramming.org/rules/metaphor.html
         Choose a system metaphor to keep the team on the same page by naming classes and methods consistently. What you name your objects is very important for understanding the overall design of the system and code reuse as well. Being able to guess at what something might be named if it already existed and being right is a real time saver. Choose a system of names for your objects that everyone can relate to without specific, hard to earn knowledge about the system. For example the Chrysler payroll system was built as a production line. At Ford car sales were structured as a bill of materials. There is also a metaphor known as the naive metaphor which is based on your domain itself. But don't choose the naive metaphor unless it is simple enough.
  • MineSweeper/황재선 . . . . 1 match
          * TODO To change the template for this generated file go to
          * Window - Preferences - Java - Code Style - Code Templates
          String [] array = input.split(" ");
          int len = array.length;
          int [] intArray = new int[len];
          intArray[i] = Integer.parseInt(array[i]);
          return intArray;
          public String[][] inputChar(int []array) {
          int row = array[0];
          int col = array[1];
          e.printStackTrace();
          int [] array = m.inputSize();
          if (array[0] == 0 && array[1] == 0) {
          m.inputChar(array);
         import junit.framework.TestCase;
          * TODO To change the template for this generated file go to
          * Window - Preferences - Java - Code Style - Code Templates
          int [] array = m.inputSize();
          assertEquals(4, array[0]);
          assertEquals(4, array[1]);
  • MoinMoinDiscussion . . . . 1 match
          * '''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
  • MoinMoinDone . . . . 1 match
          * 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.
          * Check for a (configurable) max size in bytes of the RecentChanges page while building it
          * Inline code sections (triple-brace open and close on the same line, {{{~cpp like this}}} or {{{~cpp ThisFunctionWhichIsNotaWikiName()}}})
  • MoinMoinNotBugs . . . . 1 match
          A temporary, pop-up window created by the application, where the user can
         '''The HTML being produced is invalid:''' ''Error: start tag for "LI" omitted, but its declaration does not permit this.'' That is, UL on its lonesome isn't permitted: it must contain LI elements.
         Also worth noting that ''Error: Missing DOCTYPE declaration at start of document'' comes up at the HEAD tag; and ''Error: document type does not allow element "FONT" here'' for a FONT tag that's being used inside a PRE element.
         Please note also that to be "identical," the second P tag should ''follow'' the /UL, not precede it. The implication as-is is that the P belongs to the UL block, when it doesn't. It may be worth using closing paragraph tags, as an aide to future XHTML compatibility, and to make paragraph enclosures wholly explicit.
         This is not an Opera bug. The HTML is invalid. '''The blocks are overlapping, when they are not allowed to:''' P UL P /UL UL P /UL is not a sensible code sequence. (It should be P UL /UL P UL /UL P... giddyupgiddyup?)
  • MySQL . . . . 1 match
         jdbc:mysql://localhost/database?user=user&password=xxx&useUnicode=true&characterEncoding=KSC5601
         GRANT all on jeppy.* to jeppy@'localhost';
         GRANT all on jeppy.* to jeppy@'%';
         Client characterset: latin1
         Server characterset: latin1
         | Field | Type | Null | Key | Default | Extra |
         === MySQL & Transaction ===
         [http://network.hanbitbook.co.kr/view_news.htm?serial=131 MySQL과 Transaction] 테이블 생성시 InnoDB 나 BSDDB 를 사용하면 Transaction 을 이용할 수 있다. (InnoDB 추천)
  • MythicalManMonth . . . . 1 match
         number of software projects that delivered production code.
  • NSIS . . . . 1 match
         보통 프로그램을 개발하고 나서 '만들었다' 로 끝나는 경우가 많다. 하지만, 정작 배포때에는 할일이 많다. 특히 제어판 프로그램 등록/삭제 에 등록되는 방식이라던지, 레지스트리를 건드린다던지, Program Files 폴더에 복사한다던지. 이 경우에는 보통 전용 Installer 프로그램을 쓰게 되지만, 아직 제대로 써본 적이 없었던 것 같다.
          * http://www.nullsoft.com/free/nsis/makensitemplate.phtml - .nsi code generator
          ["/XCommand parameter" ...] [Script.nsi | - [...]]
          * /NOCONFIG - nsisconfi.nsi 을 포함하지 않는다. 이 파라메터가 없는 경우, 인스톨러는 기본적으로 nsisconf.nsi 로부터 기본설정이 세팅된다. (NSIS Configuration File 참조)
          * 주석이 아닌 행들은 'command [parameter]' 의 형태를 띤다.
          * parameter 의 숫자들은 10진수, 16진수, 8진수들을 이용할 수 있다. (일반 숫자, 0x__, 0124 식으로..)
          CreateShortCut "$SMPROGRAMS\NSIS\ZIP2EXE project workspace.lnk" \
          Delete "$SMPROGRAMS\${MUI_PRODUCT}\*.*"
          RmDir "$SMPROGRAMS\${MUI_PRODUCT}"
  • NSIS/Reference . . . . 1 match
         === General ===
         || attribute || parameter example || 설명 ||
         || BrandingText || "ZeroPage Installer System v1.0" || 인스톨러 하단부에 보여지는 텍스트 ||
         || BGGradient || 000000 308030 FFFFFF || 그라데이션 배경화면의 이용. 16진수 RGB값으로 표현 ||
         || attribute || parameter example || 설명 ||
         || InstallDir || $PROGRAMFILES\example || 기본 설치 디렉토리 ||
         || attribute || parameter example || 설명 ||
         || attribute || parameter example || 설명 ||
         || attribute || parameter example || 설명 ||
         || attribute || parameter example || 설명 ||
         || attribute || parameter || 설명 ||
         || attribute || parameter example || 설명 ||
         || Instruction || parameter || 설명 ||
         || Exec || command || 특정 프로그램을 실행하고 계속 다음진행을 한다. $OUTDIR 은 작업디렉토리로 이용된다. ex) Exec '"$INSTDIR\command.exe" parameters'||
         || ExecWait || command [user_var(exit code)] || 특정 프로그램을 실행시키고, 종료될 때까지 기다린다. ||
         || ExecShell || action command [parameters] [SW_SHOWNORMAL | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED]|| ShellExecute를 이용, 프로그램을 실행시킨다. action은 보통 'open', 'print' 등을 말한다. $OUTDIR 은 작업디렉토리로 이용된다.||
         === Branching/etc ===
          * $PROGRAMFILES - program files 디렉토리. (보통 C:\Program Files) 실행시 탐색된다.
          * $SMPROGRAMS - 시작메뉴 programs folder (보통 $STARTMENU\Programs 대신 이용)
          * $SMSTARTUP - 시작메뉴 programs/startup folder. 즉, '시작프로그램'
  • OOP . . . . 1 match
         '''Object Oriented Programming''' : 객체 지향 프로그래밍. ~~객체를 지향하는 프로그래밍입니다.~~이 이전에 Object Based Progamming 것이 있었다.이 다음 세대의 프로그래밍 기법은 GenericProgramming이라고 이야기된다.
         Object-oriented programming is based in the principle of recursive design.
         It’s a natural way for people to ”think in objects”.
         Program consists of objects interacting with eachother Objects provide services.
         Code is more easily reusable
          * [Operation]
          * [Generic programming]
         Keep responsibily areas as general as possible to garantie reuse.
         [http://www.codeproject.com/cpp/oopuml.asp UML&OOP]
  • ObjectProgrammingInC . . . . 1 match
         = Object Programming In C =
         = sample code =
         void Operator1(int x) {
          instanceClass.method1= &Operator1;
          instanceClass.method1(3); // or Operator1(3);
  • OperatingSystemClass/Exam2006_2 . . . . 1 match
         그 외에.. raid문제. 01학번 김모군이 "이거 내면 짐승이다"라고 했는 정말로 나왔음-_-; 그 말에 덧붙여 01학번 강모군이 "모니터 내면 짐승이다"라고 했는데 역시 나왔음. 말이 씨가 된다더니 옛말 틀린거 하나도 없다.
         5. Raid의 정의와, 사용하는 이유, 각 레벨 별 특징을 약술하시오.
         [OperatingSystemClass]
  • OurMajorLangIsCAndCPlusPlus/errno.h . . . . 1 match
         = Erro code =
         ||34||int ERANGE||범위 에러; 결과 값이 오버플로우나 언더플로우로 인해 표현되지 않을 때 수학적 함수에 의해 사 용된다.||
         || ||int EGRATUITOUS||이 에러 코드는 목적이 없다. ||
  • OurMajorLangIsCAndCPlusPlus/setjmp.c . . . . 1 match
         // 1. Redistributions of source code must retain the above copyright
         // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
         // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
         // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  • OutlineProcessorMarkupLanguage . . . . 1 match
         현재 RSS 리더에서 피드를 공유하는 목적으로 주로 이용되는 포맷으로, Radio UserLand 의 DaveWiner 가 개발했다.
  • PNGFileFormat/ImageData . . . . 1 match
          * Compression method/flags code : 1 byte
          * 자세한 내용은 [PNGFileFotmat/FilterAlgorithms] 참조.
  • PPProject/20041001FM . . . . 1 match
         첫 모임이라 스터디 방식을 정하는데 시간이 오래 걸렸다. 회영이와 PairProgramming 을 하는데 너무 여유가 없었다.
          알고리즘을 알아도 코드로 바로 풀어쓰기가 안 된다. 그럴 때는 가짜 코드(psuedo code)를 적어보는 것이 도움이 된다.
  • ParserMarket . . . . 1 match
         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.
  • Perforce . . . . 1 match
         비슷한 소프트웨어로 Rational ClearCase, MS Team Foundation, Borland StarTeam 급을 들 수 있다.
  • ProgrammingPearls/Column5 . . . . 1 match
         == A Small Matter of Programming ==
         === From Pseudocode to C ===
          * 참고서적 : Writing Solid Code
         === The Complete Program ===
         ["ProgrammingPearls"]
  • ProjectEazy/Source . . . . 1 match
         u = lambda x: unicode(x, "euc-kr")
          def removeMark(self, aPhrase):
          if mark in aPhrase:
          aPhrase = aPhrase.replace(mark,'')
          return aPhrase
  • ProjectGaia . . . . 1 match
          * [http://camellia.cse.cau.ac.kr/fs/FSBBS/board.asp?tb=fs_table&code=05484 수업 게시판]
  • ProjectPrometheus/EngineeringTask . . . . 1 match
         || Search Keyword Generator || ○ ||
         || Iteration 2 AcceptanceTest 작성 || ○ ||
          * Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
  • ProjectSemiPhotoshop/기록 . . . . 1 match
          |||||| 알카노이드 PairProgramming ||
          * 1차 integration - histogram, sampling
          * 2차 integragion - 추가기능 + 새로운 라이브러리(하지만 추가기능에 대한 대응 미흡으로 철수)
          * 흑백에 대한 명암 처리 - Null, Negative, Gamma Correction, Contrast Stretched Compression, Posterizing, Clipping, Iso-intensity Contouring Range-hilighting
          *Solarize using a Threshold, Parabola, First Parabola, Second Parabola 구현
          * Contrast Stretching, Histogram Equalisation, 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용
          * 3차 Integration : 11월 29일에 작성한 기능들 하나로 합침.
  • ProjectSemiPhotoshop/요구사항 . . . . 1 match
          * Contrast Stretched (O 흑백)
          * Range-highlighting(범위-강조) (O 흑백)
          * Parabola
          * First Parabola (O 흑백)
          * Second Parabola (O 흑백)
          * Contrast Stretching (O)
          * Histogram Equalisation(O)
  • ProjectWMB . . . . 1 match
          * Analysis code(Code reading)
  • ProjectZephyrus/ClientJourney . . . . 1 match
          * 학교에서의 작업의 단점중 하나는 고정된 장소와 고정된 스케줄을 만들기가 쉽지 않다는 점이다. 학교시간표 보고 빈 시간대를 맞춰야 하고, 그 사람은 또 그 사람 나름대로의 스케줄이 따로 존재한다. 시험이라던지, 동아리 활동이라던지 등등. 이 경우 팀원별 스케줄을 보고 팀내 기여도를 예상한다음 그 기여도를 줄여주도록 해야 서로가 부담이 적을 것이다. 단, 위에서 언급한대로 개발중 지속적인 학습과정이 있는 이상, 중간 참여는 그만큼 어렵게 된다. CVS가 있을 경우 해당 코드의 변화를 지속적으로 관찰해나가야 하며, 외부에 있는 사람은 내부 작업자에게 필요에 따라 해당 문서를 요구해야 한다. (내부 작업자가 어떤 욕을 하건 -_-; 나중에 다시 참여시의 리스크를 줄이려면) 내부 작업자는 그 변화과정을 계속 기록을 남겨야 할 것이다. (Configuration Management 가 되겠지.)
          * 이전에 wiki:NoSmok:InformationRadiator 를 붙일 수 있는 벽과 화이트보드가 그립다; 방학중엔 피시실 문짝에라도 붙여보던지 궁리를;
          * 이번 프로젝트의 목적은 Java Study + Team Project 경험이라고 보아야 할 것이다. 아쉽게도 처음에 공부할 것을 목적으로 이 팀을 제안한 사람들은 자신의 목적과 팀의 목적을 일치시키지 못했고, 이는 개인의 스케줄관리의 우선순위 정의 실패 (라고 생각한다. 팀 입장에선. 개인의 경우야 우선순위들이 다를테니 할말없지만, 그로 인한 손실에 대해서 아쉬워할정도라면 개인의 실패와도 연결을 시켜야겠지)로 이어졌다고 본다. (왜 초반 제안자들보다 후반 참여자들이 더 열심히 뛰었을까) 한편, 선배의 입장으로선 팀의 목적인 개개인의 실력향상부분을 간과하고 혼자서 너무 많이 진행했다는 점에선 또 개인의 목적과 팀의 목적의 불일치로서 이 또한 실패이다. 완성된 프로그램만이 중요한건 아닐것이다. (하지만, 나의 경우 Java Study 와 Team Project 경험 향상도 내 목적중 하나가 되므로, 내 기여도를 올리는 것은 나에게 이익이다. Team Project 경험을 위해 PairProgramming를 했고, 대화를 위한 모델링을 했으며, CVS에 commit 을 했고, 중간에 바쁜 사람들의 스케줄을 뺐다.) 암튼, 스스로 한 만큼 얻어간다. Good Pattern 이건 Anti Pattern 이건.
          * 중간 중간 테스트를 위해 서버쪽 소스를 다운받았다. 상민이가 준비를 철저하게 한 것이 확실히 느껴지는 건 빌드용/실행용 배치화일, 도큐먼트에 있다. 배치화일은 실행한번만 해주면 서버쪽 컴파일을 알아서 해주고 한번에 실행할 수 있다. (실행을 위한 Interface 메소드를 정의해놓은것이나 다름없군.) 어떤 소스에서든지 Javadoc 이 다 달려있다. (Coding Standard로 결정한 사항이긴 하지만, 개인적으로 코드의 Javadoc 이 많이 달려있는걸 싫어하긴 하지만; 코드 읽는데 방해되어서; 하지만 javadoc generator 로 document 만들고 나면 그 이야기가 달라지긴 하다.)
          * PairProgramming 을 할때 가장 답답해지는 상황은 잘 이해 안가면서 넋놓고 있을때랑, 둘이 같이 있어도 Solo Programming 하느 사람 마냥 혼자서 문제를 끙끙거리며 풀려고 하는 모습이다. 꼭 문제를 스스로 삽질해서 풀어야만 자기실력이 향상되는것일까? 다른 사람에게 올바른 질문을 할 수 없는 사람은 혼자서 문제 푸는데에도 오래걸리게 된다고 생각한다. 상대방에게 질문을 하면서 자신이 모르는 것 자체를 구체화하고 (문제 자체가 모호한상태 자체가 문제다. 무엇이 문제인지, 자신이 모르는 것이 구체적으로 무엇인지 모르면서 어떻게 문제를 해결할까? 자신이 모르는게 버클리소켓 전체 사용과정인지 소켓 API의 인자들을 모르면서 네트웍 프로그래밍을 할 수 있을까. 그런사람들에게 '지금 모르겠는게 뭐지?' 라고 물으면 80-90%는 '다 몰라요' 이다. 모르겠는 부분에 대해서 하나하나 구체화시켜나가라. 구체화시킨 예로서 생각을 해봐도 좋을것이다. 시나리오를 만들어보면서, 그림을 그려보면서, 아니면 자기 자신이 그 시스템의 일부가 되어 보면서.) 다른 사람의 아이디어를 자신의 사고에 붙여나가면서 '더 좋은 방법' 을생각해낼 수는 없을까? 언제나 문제의 답을 내는 방법은 '이사람의 방식' 아니면 '저사람의 방식' 뿐일까.
          * PairProgramming 의 교대시간을 5분으로 해봤다. 한 사람이 5분동안 해당 부분을 플밍하다가 다 못짜면 다음사람이 다시 5분의 시간을 가지고 이어서 짜고 하며 교대로 프로그래밍을 이어나가는 (마치 릴레이경주와도 같다) 방법이다. 사람들에게 제안했을때 그 표정들이 심상치 않다;; 그래 너희들은 실험용 모르모트다;; 흐흐.
          * 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 --석천''
          처음에는 영서와 GUI Programming을 했다. Main Frame class 의 메뉴붙이고 리스너 연결하는 것부터 시작, 입력 다이얼로그를 노가다 코딩해서 만드는데 서로 교대해서 1시간이 걸렸다. 코딩 속도도 저번에 비해 더욱 빨랐고, 대화할때도 그 질문이 간단했다. (5분간격이니 아무리 플밍이 익숙한 사람이 진행해도 그 진행양이 많지가 않다. 그리고 자신이 그 사람의 미완성 코드를 완성해야 하기에 모르면 바로 질문을 하게 된다.)
         (그 이후 창섭이가 와서 영서에게 JTree관련 Solo Programming 을 시켰는데, 말이 안되는 프로그래밍을 했다. -_-; 아직 영서가 Swing 에 익숙하지 않아서 그런데, 앞의 프로그램은 어떻게 만들어졌을까 의문이 들 정도였다; 아마 5분 간격 플밍시에는 서로 앞 사람 소스작성을 한 것을 기준으로 붙여나가는 방식이기에 그 흐름을 잡고 프로그래밍을 해서 Pair 가 성립이 가능했던것 같다는 생각도 해본다. 이는 처음 프로그래밍을 하는 사람과의 PairProgramming 시 궁리해봐야 할 사항인듯)
         다음번에 창섭이와 Socket Programming 을 같은 방법으로 했는데, 앞에서와 같은 효과가 나오지 않았다. 중간에 왜그럴까 생각해봤더니, 아까 GUI Programming 을 하기 전에 영서와 UI Diagram 을 그렸었다. 그러므로, 전체적으로 어디까지 해야 하는지 눈으로 확실히 보이는 것이였다. 하지만, Socket Programming 때는 일종의 Library를 만드는 스타일이 되어서 창섭이가 전체적으로 무엇을 작성해야하는지 자체를 모르는 것이였다. 그래서 중반쯤에 Socket관련 구체적인 시나리오 (UserConnection Class 를 이용하는 main 의 입장과 관련하여 서버 접속 & 결과 받아오는 것에 대한 간단한 sequence 를 그렸다) 를 만들고, 진행해 나가니까 진행이 좀 더 원할했다. 시간관계상 1시간정도밖에 작업을 하지 못한게 좀 아쉽긴 하다.
          * PairProgramming를 하면서 SpikeSolution 으로 한번 구성했던 소스를 다시 만들어보고, 여러번 말로 설명해보고, 더 쉬운 방법으로 설명해보려고 하는 동안 알고있는것에 대해 생각이 빨리 정리된다.
          * 다른 MFC나 ["wxPython"] 등의 다른 GUI Framework와 ["디자인패턴"] 에 익숙하면 이러한 Swing 에 익숙해지는데에도 도움이 되었다. 대부분의 GUI 에선 ["CompositePattern"] 으로 윈도우들을 구성하기에. 그리고 Java API를 공부하는 동안 ["IteratorPattern"] 이나 ["DecoratorPattern"], MVC 등에 대해서도 이해하기 용이했다.
         1002의 경우 UML을 공부한 관계로, 좀 더 구조적으로 서술 할 수 있었던 것 같다. 설명을 위해 Conceptual Model 수준의 Class Diagram 과 Sequence, 그리고 거기에 Agile Modeling 에서 잠깐 봤었던 UI 에 따른 페이지 전환 관계에 대한 그림을 하나 더 그려서 설명했다. 하나의 프로그램에 대해 여러 각도에서 바라보는 것이 프로그램을 이해하는데 더 편했던 것 같다. [[BR]]
         후배들과의 PairProgramming 이다. 여태껏의 경험에 의하면 언제나 애매한 것이 Junior : Expert 문제이다. 이번에는 어차피 SpikeSolution 이므로, 내가 아는 한도에서 약간의 예를 보이고, 후배들로 하여금 해보도록 하는 식으로 했는데, 그 덕에 둘이 Pair 를 해보는 기회가 없었던 것 같다. 중간에 내가 화장실 갔다올때 잠시 둘이서 Pair 를 하는 모습을 봤었는데, 이 선은 내가 적절하게 지켜나가야겠다. 너무 멀리도, 너무 가까이도 아니도록. --1002
  • PyIde . . . . 1 match
          * Xper:ExtremeProgramming 을 지원해줄 도구들 만들어나가보기.
          * 기타 - CyberFomulaSin의 아스라다와 오우거, Sarah Brightman 의 Harem 앨범, NoSmok:시간관리인생관리
          ''그렇다면 Eclipse PDE 도 좋은 선택일 것 같은 생각. exploration 기간때 탐색해볼 거리가 하나 더 늘었군요. --[1002]''
          * [PyIde/Exploration]
          * BicycleRepairMan - idlefork, gvim 과의 integration 관계 관련 코드 분석.
          * http://st-www.cs.uiuc.edu/users/brant/Refactory/RefactoringBrowser.html - Smalltalk refactoring browser
          * http://codespeak.net/pypy/ - 순수 파이썬으로 구현하는 python 이라고 한다. 관심이 가는중.
  • PythonForStatement . . . . 1 match
         {{|There are six sequence types: strings, Unicode strings, lists, tuples, buffers, and xrange objects|}}
  • RUR-PLE . . . . 1 match
          * [http://prdownloads.sourceforge.net/wxpython/wxPython2.6-win32-unicode-2.6.1.0-py24.exe wxPython다운로드]
  • Random Walk2/곽세환 . . . . 1 match
          int **array = new int*[m];
          array[i] = new int[n];
          array[i][j] = 0;
          array[y][x] = 1;
          array[cy][cx]++;
          if (array[i][j] == 0)
          fout << array[i][j] << " ";
         [RandomWalk2] [데블스캠프2003/셋째날]
  • RandomWalk/대근 . . . . 1 match
          srand ( (unsigned int) time (NULL) );
          int ** rands = new int *[line+2];
          rands[i] = new int [line+2];
          rands[i][j] = 0;
          rands[i][line+1] = -1;
          rands[i][0] = -1;
          rands[line+1][i] = -1;
          rands[0][i] = -1;
          int x = rand() % line + 1;
          int y = rand() % line + 1;
          rands[x][y]++;
          bang = rand() % 8;
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
          if(rands[x][y]==-1)
  • RandomWalk/문원명 . . . . 1 match
          srand(time(0));
          int setX = rand() %5;
          int setY = rand() %5;
          go = rand() % 8;
         [RandomWalk]
  • RandomWalk/신진영 . . . . 1 match
          srand((time(0))); // 랜덤
          row = rand() % 10 + 1;
          col = rand() % 10 + 1;
          direction = rand() % 8 + 1;
         ["RandomWalk"]
  • RandomWalk/유상욱 . . . . 1 match
          int count, question, random, x = 0 , y = 0;
          srand((time(0)));
          random = rand() % 4;
          cout << random << endl;
          switch ( random )
         ["RandomWalk"]
  • RandomWalk/은지 . . . . 1 match
          cout << "=random walk problem= \n";
          srand(time(0));
          row = (rand() % size)+1;
          col = (rand() % size)+1;
          direct = rand() % 8; //방향 결정
         ["RandomWalk"]
  • RandomWalk/임민수 . . . . 1 match
          srand(0);
          temp = rand()%8;
          way = rand()%8;
         == RandomWalk.cpp ==
          srand((unsigned)time(NULL));
          srand((unsigned)time(NULL));
          srand((unsigned)time(NULL));
  • RandomWalk/종찬 . . . . 1 match
          srand((unsigned)time(NULL));
          int x=rand()%size;
          int y=rand()%size;
          int x_move = rand()%3;
          int y_move = rand()%3; // 이부분을 루프안에 안 넣어서 고생..
         ["RandomWalk"]
  • RandomWalk/창재 . . . . 1 match
         int array[5][5];
          srand(time(0));
          start_h = rand()%5;
          start_y = rand()%5;
          array[i][j] = 0;
          array[start_h][start_y] ++;
          place_h = rand()%5;
          place_h = rand()%5;
          place_y = rand()%5;
          place_y = rand()%5;
          array[place_h][place_y] ++;
          cout << array[l][j] << "\t";
          if (array[j][p] == 0)
         ["장창재"] ["RandomWalk"]
  • RandomWalk/현민 . . . . 1 match
          srand(time(0));
          line = rand() % num ;
          col = rand() % num ;
          int direction = rand() % 8;
          direction = rand() % 8; // 랜덤으로 점이 움직이는 방향
         ["RandomWalk"]
  • RandomWalk/황재선 . . . . 1 match
          srand(time(0));
          int index = rand() % 8;
         // 벌레가 random으로 결정된 방향으로 이동
          int dir = rand() % 8;
          cout << "\n(2)The final count array:" << endl;
          // 시드 설정 for random function
          srand(time(0));
         RandomWalk
  • RandomWalk2/ExtremePair . . . . 1 match
          self.board = [[0 for c in range(self.col)] for r in range(self.row)]
          for r in range(self.row):
          for c in range(self.col):
          for r in range(self.row):
          for c in range(self.col):
          row = int(raw_input())
          col = int(raw_input())
          startRow = int(raw_input())
          startCol = int(raw_input())
          journeyString = raw_input()
          for i in range(len(journeyString)):
         ["RandomWalk2"]
  • RandomWalk2/Leonardong . . . . 1 match
          srand(time(0));
          int x = rand() % Asize;
          int y = rand() % Asize;
         [RandomWalk2] [데블스캠프2003/셋째날]
  • RandomWalk2/TestCase . . . . 1 match
         ["RandomWalk2"]
  • RandomWalk2/Vector로2차원동적배열만들기 . . . . 1 match
         ''DeleteMe 페이지 이름으로 MultidimensionalArray가 더 좋지 않을까요?''
         void SetArrayAsZero(int nRow, int 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]
          * array보다 vector를 먼저 가르치는 대표적인 책으로 "진정한 C++"을 가르친다는 평가를 받고 있는Seminar:AcceleratedCPlusPlus
         ["RandomWalk2"]
  • RandomWalk2/상규 . . . . 1 match
         ["RandomWalk2"]
  • RandomWalk2/서상현 . . . . 1 match
         파이썬으로 개발함. 7/1 밤 11시부터 1시까지 3시간. 중간에 ["RandomWalk2/질문"]. 7/2 다시 30분간 수정. 다시 질문. 답변을 받고 몇군데를 다시 고쳐서 업로드함.
  • RandomWalk2/조현태 . . . . 1 match
         [RandomWalk2]
  • ReadySet 번역처음화면 . . . . 1 match
         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.
          * Several design templates
         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.
         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.
         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.
          *Use a text editor or an HTML editor. Please see our list of recommended tools. (You can use Word, but that is strongly discouraged.)
          *Add text, diagrams, or links as needed
  • Refactoring/BigRefactorings . . . . 1 match
          * 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.''
         == Convert Procedural Design to Objects ==
          * 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 ==
          * You have GUI classes that contain domain logic.[[BR]]''Separate the domain logic into separate domain classes.''
         http://zeropage.org/~reset/zb/data/SeparateDomainFromPresentation.gif
         == Extract Hierarchy ==
          * 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
  • ReverseAndAdd/김회영 . . . . 1 match
         == C code ==
          int arrayOfDigit[10];
          arrayOfDigit[++count]=num%10;
          returnValue+=arrayOfDigit[i]*pow(10,count-i);
          int arrayOfDigit[10];
          arrayOfDigit[++count]=num%10;
          while(arrayOfDigit[i]==arrayOfDigit[j])
  • ReverseAndAdd/신재동 . . . . 1 match
          for i in range(len(numberStr)):
          for i in range(len(numberStr)):
          for i in range(1000):
          raa = ReverseAndAdder()
          self.assertEquals(1234, raa.reverse(4321))
          self.assertEquals(12321, raa.reverse(12321))
          raa = ReverseAndAdder()
          self.assertEquals(False, raa.isPalindrome(4321))
          self.assertEquals(True, raa.isPalindrome(12321))
          self.assertEquals(True, raa.isPalindrome(1221))
          raa = ReverseAndAdder()
          self.assertEquals((4, 9339), raa.reverseAndAdd(195))
          self.assertEquals((5, 45254), raa.reverseAndAdd(265))
          self.assertEquals((3, 6666), raa.reverseAndAdd(750))
          raa = ReverseAndAdder()
          result = raa.reverseAndAdd(int(input()))
         ''all tests data will be computable with less than 1000 iterations (additions)''를 고려한다면 명시적인 회수 체크는 없어도 될 듯.
          마치 ''pseudo code''를 보는 것 같네요. --재동
  • ReverseAndAdd/임인택 . . . . 1 match
         === code ===
  • Ruby/2011년스터디 . . . . 1 match
          * [http://www.yes24.com/24/Goods/2314079?Acode=101 프로그래밍 루비]의 목차를 참고하여 진행
  • RubyLanguage/ExceptionHandling . . . . 1 match
         = Exception Raise =
          * Kernal.raise(또는 Kernal.fail)로 예외를 발생시킨다
  • RubyLanguage/Expression . . . . 1 match
         # a -> [1, 2, 3] (array)
         # a -> 1, b -> [2, 3] (array)
          when 1890..1909 then "Ragtime"
  • RubyOnRails . . . . 1 match
         = Ruby On Rails 는 ? =
          * [http://www.rubyonrails.org/]
          * Ruby 로 웹 개발을 손쉽게 해주는 Framework
          * [http://beyond.daesan.com/articles/2006/07/28/learning-rails-1 대안언어축제황대산씨튜토리얼]
  • SLOC . . . . 1 match
         #Redirect Source_lines_of_code
  • STL/sort . . . . 1 match
         typedef vector<int>::iterator VIIT;
          * 한가지 주의할점. 이 sort알고리즘은 컨테이너가 임의 접근(Random Access)을 허용한다는 가정하에 만든것이다. vector나 deque처럼 임의 접근을 허용하는 컨테이너는 이걸 쓸수 있지만. list는 임의 접근이 불가능해서 사용할수 없다. -l[5] 이런 접근이 안된다는 의미 - 따라서 list에서는 컨테이너 내부에서 sort메소드를 제공해 준다.
  • STL/vector/CookBook . . . . 1 match
         typedef vector<int>::iterator VIIT; // Object형이라면 typedef vector<Object>::iterator VOIT;
          * typedef으로 시작하는 부분부터 보자. 일단 반복자라는 개념을 알아야 되는데, 사실은 나도 잘 모른다.--; 처음 배울땐 그냥 일종의 포인터라는 개념으로 보면 된다. vector<int>::iterator 하면 int형 vector에 저장되어 있는 값을 순회하기 위한 반복자이다. 비슷하게 vector<Object>>::iterator 하면 Object형 vector에 저장되어 있는 값을 순회하기 위한 반복자겠지 뭐--; 간단하게 줄여쓸라고 typedef해주는 것이다. 하기 싫으면 안해줘도 된다.--;
          * vector로 간단히 해결이 가능하다. See also ["RandomWalk2/Vector로2차원동적배열만들기"]
          * 여기서 잡담 하나. 객체를 parameter로 넘길때도 복사가 수행되지 않는 참조를 사용하자.
         typedef vector<Obj*>::iterator VOIT;
  • STL/참고사이트 . . . . 1 match
         C++ Programming HOW-TO 에서 발췌
         [http://dmoz.org/Computers/Programming/Languages/C++/Class_Libraries/STL C++ STL site ODP for STL] 와 [http://dir.lycos.com/Computers/Programming/Languages/C%2B%2B/Class_Libraries/STL 미러]
         [http://userwww.econ.hvu.nl/~ammeraal/stlcpp.html STL for C++ Programmers]
         [http://www.halpernwightsoftware.com/stdlib-scratch/quickref.html C++ STL from halper]
         The Code Project, C++/STL/MFC 에 대한 소개 http://www.codeproject.com/cpp/stlintroduction.asp
         C++ Standard Template Library, another great tutorial, by Mark Sebern http://www.msoe.edu/eecs/cese/resources/stl/index.htm
         iterator에 대한 매우 좋은 설명 http://www.cs.trinity.edu/~joldham/1321/lectures/iterators/
         Mumits STL 초보 가이드 (약간 오래된 것) http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html
         Marian Corcoran's STL FAQ. ftp://butler.hpl.hp.com/stl/stl.faq
  • SVN 사용법 . . . . 1 match
         4. 다운-> code 수정 후 commit
  • ScheduledWalk . . . . 1 match
         #redirect RandomWalk2
  • ScheduledWalk/재니&영동 . . . . 1 match
         02 임영동 [Yggdrasil]
          int* BoardArray;
          BoardArray = new int[row * col + row];
          BoardArray[i * row + j] = 0;
          BoardArray[y * maxRow + x]++;
          if (BoardArray[j] != 0)
          cout << BoardArray[i * maxRow + j];
          count += BoardArray[i * maxRow + j];
         ["RandomWalk2"]
  • ScheduledWalk/창섭&상규 . . . . 1 match
          * 전체 여정이 있다.(JourneyArray, Length)
          * 자취를 남길 수 있다.(BoardArray, TraceCount, LeaveTrace)
          int *JourneyArray;
          JourneyArray=new int[Length];
          JourneyArray[i]=str[i]-'0';
          delete[] JourneyArray;
          return JourneyArray[CurrentPosition++];
          int **BoardArray;
          int TraceCount;
          TraceCount = 0;
          BoardArray = new int* [size.height];
          BoardArray[i] = new int [size.width];
          BoardArray[i][j] = 0;
          delete[] BoardArray[i];
          delete[] BoardArray;
          void LeaveTrace(Location location)
          BoardArray[location.y][location.x]++;
          TraceCount++;
          if (BoardArray[i][j] == 0)
          MyBoard->LeaveTrace(startlocation);
  • SeminarHowToProgramIt . . . . 1 match
         see also SeminarHowToProgramItAfterwords
          * ["CrcCard"] (Index Card -- The finalist of Jolt Award for "design tools" along with Rational Rose Enterprise Edition)
          * Paper Shell Programming -- Becoming a Pseudo-Turing Machine Yourself
          * Stepwise Refinement -- 진부한 미래, 신선한 과거 (see also NoSmok:ProgrammingOnPurpose )
          * PairProgramming -- 1+1 > 2
          * Managing To Do List -- How to Become More Productive Only With a To-do List While Programming
          * Programmer's Journal -- Keeping a Diary (see also NoSmok:KeepaJournalToLiveBetter )
          * Lifelong Learning as a Programmer -- Teach Yourself Programming in Ten Years (http://www.norvig.com/21-days.html )
          * 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)
         ||Paper Shell Programming ||1 ||
         ||PairProgramming ||6 ||
         ||Programmer's Journal, Lifelong Learning & What to Read||2 ||
         '''Orange Team''' 이정직, 강인수, 이선호, 이덕준
         이 때, OOP가 가능한 언어를 추천하고, 해당 언어의 xUnit 사용법을 미리 익혀오기 바랍니다. (반나절 정도가 필요할 겁니다) http://www.xprogramming.com/software.htm 에서 다운 받을 수 있습니다.
  • SeminarHowToProgramItAfterwords . . . . 1 match
         SeminarHowToProgramIt에 대한 감상, 후기, 각종 질답, 논의, ThreeFs.
          * [창섭]:PairProgramming 자체가 인상적이었습니다. 음악을 아마추어로 하는 저로써는 음악외에도 이렇게 멋지게 콤비를 결성할 수 있다는 것에 놀라울 따름입니다. ^^;; 그리고 변수명을 고치는 것 자체가 Refactoring 에 들어가고 매우 중요하다는 사실도 감명이었습니다. ^^;
          * ["1002"] : 어제 Test Code : Product Code 간 중복 (return 0 !) 을 OAOO로 풀어서 Refactoring 을 해야 할 상황으로 규정짓는다는 말이 뒤통수를 한대 때리는 기분이였습니다;;
          * TDD를 어설프게나마 시도하면서 느낀점이 'TDD 에서의 Product Code 는 오직 테스트 까지만 만족하는 코드인가' 였었는데. 한편으로는 이렇게 해석할 수 있겠더군요. '해당 스케일에 대해 더욱더 정확하게 작동하는 프로그램을 만들고 싶다면 그만큼 테스트 코드 양을 늘려라.' 테스트코드 자체가 일종의 Quality Assurance 를 위한 도큐먼트 역할도 된다는 점을 다시 생각하게 되었습니다.
          * 아까 발표때에도 이야기했지만, Code Review 를 위한 reverse-TDD (정도로 해둘까요? 이것도 관련 문서가 있을텐데. ) 를 해보는 것도 좋을 것 같네요. 코드 분석을 위한 test-code 작성이요. 즉, 이미 만들어져있는 코드를 테스트 코드라고 상정하고, 자신이 제대로 이해했는가에 대한 검증과정을 Test-Code 로 만드는 것이죠. 시간 있었으면 오늘 마저 시도해봤을텐데, 시간에 마음 쫓긴게 아쉽네요.
          * ["Refactoring"] 책에서는 ''Refactor As You Do Code Review'' 에 Code Review 를 위한 Refactoring을 이야기 하는데, Refactoring 을 위해서는 기본적으로 Test Code 가 필요하다고 할때 여기에 Test Code를 붙일테니까 상통하는 면이 있긴 하겠군요.
          * 흥미로운 것은 시끄러운 프로그래밍이였다는 것이였습니다. 혼자서 하는 프로그래밍(PairProgramming을 알고나니 새로운 개념이 생기는군요. 원래 Programming이라는 것은 혼자하는 거였는데, 이제 프로그래밍하면 pair인지 single인지 구분을 해주어야겠군요)을 하는 경우에는 팀원들이 소란스럽게 떠들면 ''아 지금 설계하고 있구나''하고 생각하고, 조용해지면 ''아 지금 코딩하고 있구나..''하는 생각이 들었는데, PP는 끝까지 시끄럽게 하는거라는 느낌이 들더군요. 그렇게 대화가 많아지는 것은 코딩에 대한 이해도의 증가와 서로간의 협력 등 많은 상승효과를 가져올 수 있다는 생각을 했습니다.
          * 그리고 관찰하던 중 PairProgramming에서 Leading에 관한 사항을 언급하고 싶습입니다. 사용하는 언어와 도구에 대한 이해는 확실하다는 전제하에서는 서로가 Pair에 대한 배려가 있으면 좀더 효율을 낼 수 있을꺼라 생각합니다. 배려라는 것은 자신의 상대가 좀 적극적이지 못하다면 더 적극적인 활동을 이끌어 내려는 노력을 기울어야 할 것 같습니다. 실습을 하던 두팀에서 제 느낌에 지도형식으로 이끄는 팀과 PP를 하고 있다는 생각이 드는 팀이 있었는데. 지도형식으로 이끄는 팀은 한 명이 너무 주도적으로 이끌다 보니 다른 pair들은 주의가 집중되지 못하는 모습을 보인 반면, PP를 수행하고 있는 듯한 팀은 두 명 모두 집중도가 매우 훌륭한 것 같아서 이런 것이 정말 장점이 아닌가 하는 생각이 들었습니다. 결국 PP라는 것도 혼자가 아닌 둘이다 보니 프로그래밍 실력 못지 않게 개인의 ''사회성''이 얼마나 뛰어냐는 점도 중요한 점으로 작용한다는 생각을 했습니다. (제가 서로 프로그래밍중에 촬영을 한 것은 PP를 전혀 모르는 사람들에게 이런 형식으로 하는 것이 PP라는 것을 보여주고 싶어서였습니다. 촬영이 너무 오래 비추었는지 .. 죄송합니다.)
  • Slurpys/김회영 . . . . 1 match
         == Source code ==
         bool isSlurpy(char* string,int* nowPointer,int arraySize);
         bool isSlimpy(char* string,int* nowPointer,int arraySize);
         bool isSlumpy(char* string,int* nowPointer,int arraySize);
         bool isFollowF(char* string,int* nowPointer,int arraySize);
         bool isNextCharacter(char* string,int* nowPointer,int arraySize,char checker);
          int arraySize;
          arraySize=strlen(string);
          result[i]=isSlurpy(string,&nowPointer,arraySize);
         bool isSlurpy(char* string,int* nowPointer,int arraySize)
          if(isSlimpy(string,nowPointer,arraySize))
          if(isSlumpy(string,nowPointer,arraySize))
          if((*nowPointer)+1==arraySize)
         bool isSlimpy(char* string,int* nowPointer,int arraySize)
          if(isNextCharacter(string,nowPointer,arraySize,'A'))
          if(isNextCharacter(string,nowPointer,arraySize,'H'))
          else if(isNextCharacter(string,nowPointer,arraySize,'B')
          && isSlimpy(string,nowPointer,arraySize)
          && isNextCharacter(string,nowPointer,arraySize,'C'))
          else if(isSlumpy(string,nowPointer,arraySize)
  • Slurpys/박응용 . . . . 1 match
          raise NotImplementedError
          for count, t in enumerate(target):
         ### test code ##########################################################
  • SmallTalk/강좌FromHitel/소개 . . . . 1 match
         않게 사용되고 있는 점으로 이루어진 그림(bitmap graphic)과 그래픽 사용자 환
          Data: array[1 .. 2000000] of Integer;
         data := Array new: 2000000.
         더욱이 Smalltalk 언어의 바탕글(source code)을 보면 다른 언어들과 그 모양이
         는 방대하면서도 확장성이 뛰어난 갈래 다발(class library)때문이 아닐까 합니
         (Visual Component Library)을 공부해야 하며, Java의 경우네는 JavaBeans나 여
         ANSI X3J20표준에 의해 규정된 갈래 씻줄(class hierarchy)은 흔히 볼 수 있는
          application framework)은 프로그램을 매우 융통성있게 만들어 줍니다.
  • SmallTalk_Introduce . . . . 1 match
         않게 사용되고 있는 점으로 이루어진 그림(bitmap graphic)과 그래픽 사용자 환
          Data: array[1 .. 2000000] of Integer;
         data := Array new: 2000000.
         더욱이 Smalltalk 언어의 바탕글(source code)을 보면 다른 언어들과 그 모양이
         는 방대하면서도 확장성이 뛰어난 갈래 다발(class library)때문이 아닐까 합니
         (Visual Component Library)을 공부해야 하며, Java의 경우네는 JavaBeans나 여
         ANSI X3J20표준에 의해 규정된 갈래 씻줄(class hierarchy)은 흔히 볼 수 있는
          application framework)은 프로그램을 매우 융통성있게 만들어 줍니다.
  • SolarSystem/상협 . . . . 1 match
         LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
          // Calculate The Aspect Ratio Of The Window
          glTranslatef(-distance*cosin*cosin,-distance*sin*cosin,0.0f);
         int DrawGLScene(GLvoid)
          glTranslatef(0.0f,0.0f,-22.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          gluQuadricDrawStyle(obj,GLU_LINE);
          glTranslatef(distance1,0.0f,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance2,0,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance3,0.0f,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance4,0.0f,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance5,0.0f,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance6,0.0f,0.0f);
          gluQuadricDrawStyle(obj,GLU_FILL);
          glTranslatef(distance7,0.0f,0.0f);
  • StepwiseRefinement . . . . 1 match
         구조적 프로그래밍에서 상위 모듈을 먼저 개발하고 여기서 사용하는 하?모듈들을 개발해 나가는 방법. EdsgerDijkstra와 Niklaus Wirth가 이 방법을 대중화시킨 것으로 유명하다.
          * ["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의 단점은 무엇이고, 이를 극복하는 방법은 무엇일까요? --김창준.
  • SubVersionPractice . . . . 1 match
         [http://zeropage.org/trac/project/browser/ Zeropage SVN 소스 둘러보기]
         svn checkout svn://zeropage.org/home/SVN/project/SVN_Practice MyProjectFolder
         = Practice =
         [CodeRace/20060105]을 checkout해서 자신이 작성한 코드를 올리기
  • SystemPages . . . . 1 match
          * RandomPage - 무작위 검색. ^^
  • TCP/IP . . . . 1 match
         개발자를 위해서 제공되는 API(Application Programming Interface)의 가장 대표적인 형태가 TCP/IP 이다.
         == TCP(Transmission Control Protocol)? UDP(User Datagram Protocol)? ==
          * http://cs.ecs.baylor.edu/~donahoo/practical/CSockets/textcode.html <Socket Programming for C>
          * http://kldp.org/KoreanDoc/Thread_Programming-KLDP <using thread>
          * http://www.paradise.caltech.edu/slide <sliding window project>
          * Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP 프로그래밍 팁 모음
          * Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
  • TFP예제/WikiPageGather . . . . 1 match
          * '생각할 수 있는 가장 단순한 것부터 생각하라.' 디자인은 TFP 와 Refactoring의 과정만으로 어느정도 보장이 된다. TFP을 추구하는 이상 기능와 의도에 의한 모듈화가 기본적으로 이루어진다. (여태껏의 경험 -- 그래봤자 3번째지만 -- 에 의하면, TFP를 하면서 LongMethod 냄새가 난 적이 없었다. (LongMethod와 Bad Smell 에 대해서는 BadSmellsInCode를 참조하라.) 만일 중복코드 등의 문제가 발생하더라도 기존의 막무가내식 방식에 비해 그 빈도가 적다. 만일 Bad Smell 이 난다면 ["Refactoring"] 을 하면 된다. (참고로 밑의 소스는 ["Refactoring"]의 과정은 거치지 않았다.)
          * Python 이라는 툴이 참 재미있는 녀석이라 생각한다. 방식이야 basic에서의 그것이겠지만, '인터프리터언어라는 것이 쉽고 편하다' 의 이유를 다시 생각하게 해준 계기가 되었다. 일반적으로 우리가 프로그래밍을 할 때는 (여기서는 C++이라 하자) Visual C++ 을 하나만 띄어놓고 프로그래밍 하는 경우가 별로 없다. 보통 product code 를 위한 하나, 해당 함수 기능의 부분구현 (임시코드 구현)을 위한 하나. 서버-클라이언트 프로그래밍인 경우에는 3개를 띄우는 경우도 다반사이다. Python 의 shell 은 임시코드를 구현하는데 매우 편리한 도구이다. (한편 이쯤되면 검문이 필요하다. VS 2-3개 띄우는 거랑 python IDLE을 2-3개 띄우는 거랑 다를바가 뭐냐.. --; 내가 말하고 싶은 것은 C++이나 PHP에 파이썬처럼 공통 인터프리터 쉘이 있었으면 하는 것. -_a 흐흐..) 암튼. 나는 모인모인소스를 보면서 제목 검색 관련 일부 코드를 짤라서 쉘에서 간단히 실행해보고 검토하고 실제 소스에 적용해볼 수 있었다.
          self.assertEquals (self.pageGather.GetPageNamesFromPage (), ["LearningHowToLearn", "ActiveX", "Python", "XPInstalled", "TestFirstProgramming", "한글테스트", "PrevFrontPage"])
          strings = '''["Testing"] ["Testing The Program"] higu TestFirst twet'''
          self.assertEquals (self.pageGather.GetPageNamesFromString (strings), ["Testing", "Testing The Program", "TestFirst"])
          strings = '''=== ExtremeProgramming ===\ntesting.. -_-a\n== TestFirst Programmin ==\nfwe\n'''
          '=== ExtremeProgramming ===\n * ["XPInstalled"]\n * TestFirstProgramming\n'+
          for i in range(len(res)):
         pagename : TestFirstProgramming
         filename : TestFirstProgramming
         ["TestFirstProgramming"]
  • TeachYourselfProgrammingInTenYears . . . . 1 match
         == Teach Yourself Programming in Ten Years ==
         프로그램을 쓰는 것.학습하는 최고의 방법은,실천에 의한 학습이다.보다 기술적으로 표현한다면, 「특정 영역에 있어 개인이 최대한의 퍼포먼스를 발휘하는 것은, 장기에 걸치는 경험이 있으면 자동적으로 실현된다고 하는 것이 아니고, 매우 경험을 쌓은 사람이어도, 향상하자고 하는 진지한 노력이 있기 때문에, 퍼포먼스는 늘어날 수 있다」(p. 366) 것이며, 「가장 효과적인 학습에 필요한 것은, 그 특정의 개인에게 있어 적당히 어렵고, 유익한 피드백이 있어, 게다가 반복하거나 잘못을 정정하거나 할 기회가 있는, 명확한 작업이다」(p. 20-21)의다(역주3).Cambridge University Press 로부터 나와 있는 J. Lave 의「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(역주4)라고 하는 책은, 이 관점에 대한 흥미로운 참고 문헌이다.
         만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
         Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
  • TemplateLibrary . . . . 1 match
         text 나 code generation 을 위한 라이브러리들을 일컫는 말.
  • Thor . . . . 1 match
          * 이영록 : ["ricoder"]
          * 임영동 : ["Yggdrasil"]
  • UDK/2012년스터디/소스 . . . . 1 match
         // EmeraldStage/ESGameInfo.uc
         // Event occured when character logged in(or creation). There are existing function PreLogin, PostLogin functions.
         // EmeraldStage/ESPlayerController.uc
         simulated function bool CalcCamera( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV )
          local float DesiredCameraZOffset;
          DesiredCameraZOffset = (Health > 0) ? - 1.2 * GetCollisionHeight() + Mesh.Translation.Z : 0.f;
          CameraZOffset = (fDeltaTime < 0.2) ? - DesiredCameraZOffset * 5 * fDeltaTime + (1 - 5*fDeltaTime) * CameraZOffset : DesiredCameraZOffset;
          CurrentCamOffset.X = GetCollisionRadius();
          CamStart.Z += CameraZOffset;
          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);
          if (Trace(HitLocation, HitNormal, out_CamLoc, CamStart, false, vect(12,12,12)) != None) {
  • UnitTestFramework . . . . 1 match
         UnitTest code 작성을 위한 Framework
          * http://xprogramming.com
  • UnityStudy . . . . 1 match
          * Cube와 Sphere에다가 중력(Use Gravity)을 등록하고, New Physics 설정을 작성하고, Cube와 Sphere에 추가해서 Bounce 수치를 조절해서 통통 튀는 효과를 줄 수 있다.
          transform.rotation *= Quaternion.AngleAxis(Input.GetAxis("Horizontal") *30.0 * Time.deltaTime, Vector3(0, 0, 1));
          transform.rotation *= Quaternion.AngleAxis(Input.GetAxis("Vertical") *30.0 * Time.deltaTime, Vector3(1, 0, 0));
          - Camera의 포지션을 이동하고, Point Light를 등록한 뒤, Cube에 빛을 쪼인다. 빛의 범위는 Range로 조정 가능하다.
  • User Stories . . . . 1 match
         원문 : http://www.extremeprogramming.org/rules/userstories.html
         One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications. The biggest
         Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. Longer than 3 weeks means you need to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. About 80 user stories plus or minus 20 is a perfect number to create a release plan during release planning.
  • VonNeumannAirport/1002 . . . . 1 match
         configuration 1,1 로 셋팅
         이럴 때, traffic 을 구하면 1명이 나온다.
          Configuration* conf = new Configuration (1,1);
          CPPUNIT_ASSERT_EQUAL (1, conf->getTraffic ());
         class Configuration {
          Configuration (int startCity, int endCity) {
          int getTraffic () {
          Configuration* conf = new Configuration (1,1);
          CPPUNIT_ASSERT_EQUAL (1, conf->getTraffic ());
          CPPUNIT_ASSERT_EQUAL (2, conf->getTraffic ());
          traffic += people;
          int getTraffic () {
          return traffic;
          CPPUNIT_ASSERT_EQUAL (102, conf->getTraffic ());
         여기까진 통과..~ test code 를 Refactoring 해봅니다.
          Configuration* conf = new Configuration (1,1);
          CPPUNIT_ASSERT_EQUAL (expectedSet[i], conf->getTraffic ());
         configuration 1,1 로 셋팅
         1->1 로 1명 가기 : traffic 1.
         1->1 로 1명 더 가기 : traffic 2.
  • WikiWikiWeb . . . . 1 match
         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.
          * [http://news.mpr.org/programs/futuretense/daily_rafiles/20011220.ram Ward Cunningham Radio Interview]
  • WinampPluginProgramming/DSP . . . . 1 match
         // Winamp test dsp library 0.9 for Winamp 2
         // Copyright (C) 1997, Justin Frankel/Nullsoft
         // Feel free to base any plugins on this "framework"...
         int modify_samples1(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
         int modify_samples2(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
         int modify_samples3(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
         int modify_samples4(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
         int modify_samples5(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
         static BOOL CALLBACK pitchProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
         // configuration. Passed this_mod, as a "this" parameter. Allows you to make one configuration
         // function that shares code for all your modules (you don't HAVE to use it though, you can make
          MessageBox(this_mod->hwndParent,"This module is Copyright(C) 1997, Justin Frankel/Nullsoft\n"
          "Configuration",MB_OK);
         int modify_samples1(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate)
         int modify_samples3(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate)
         int modify_samples4(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate)
         int modify_samples5(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate)
         int modify_samples2(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate)
         static BOOL CALLBACK pitchProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam)
          SendDlgItemMessage(hwndDlg,IDC_SLIDER1,TBM_SETRANGEMAX,0,18);
  • ZIM . . . . 1 match
          * ["ZIM/SystemSequenceDiagram"] (by 시스템 아키텍트)
          * Class Diagram & Interaction Diagram ( by 시스템 아키텍트)
          * Architecture package Diagram (by 시스템 아키텍트)
          * Deployment Diagram (by 시스템 아키텍트)
          * Component Diagram (by 시스템 아키텍트)
          * Source Code (by 패키지 개발팀)
          * Byte Code (by 패키지 개발팀)
          * CASE 도구 : Together 5.5, Rational Rose, Plastic
          * 1월 2일 만나서 Conceptual Diagram 그리고 놉시다.
  • ZPBoard/APM . . . . 1 match
          * http://www.codelib.co.kr
  • ZP도서관 . . . . 1 match
         || Essential System Administration || AEeen Frisch ||O'Reilly || ["혀뉘"], ["ddori"] || 원서 ||
         || Java Network Programming 2nd Ed. ||.|| O'Reilly ||["nautes"]||원서||
         || Oracle Bible ver8.x ||.||영진||["혀뉘"]||한서||
         || Programming Python || Mark Lutz || O'REILLY || ddori || 원서 ||
         || The C Programming Language 2nd Ed. || Kernighan, Ritchie || Prentice Hall || ["zennith"] || 원서 ||
         || The Standard ANSI C Library || . || . || ["혀뉘"],["nautes"]|| 원서 ||
         || Writing Solid Code||.||.||류상민||한서||
         || 컴퓨터 소프트웨어의 창시자들(Programmers At Works) || . || 마이크로소프트프레스 || ["1002"] || 창섭 대여중 ||
         || Operating Systems Design and Implemenation || TANENBAUM ||.|| ["fnwinter"] || 원서 ||
         || PHP Web-DB Program' Guide || 정진호 || 동일출판사 || 류상민 || 현재 보솨네에 있음 ||
         || PocketPC Game Programming || Jonathan S.Harbour || Prima Tech || 정해성 || 원서 ||
         || 3D Computer Graphics || Alan Watt || A.Wesley || 정해성 || 원서 ||
         || C언어 프로그래밍(원서명: The C Programming Language) || Brian W.Kernighan, Dennis M.Ritchie || Prentice-Hall || 도서관 소장(대영사 번역판본) || 프로그래밍언어 ||
         || The Art of Assembly 2nd Edition || Randall Hyde || Not printed yet || http://webster.cs.ucr.edu/ || 프로그래밍언어 ||
         || ExtremeProgramming Installed || Ron Jeffries, Ann Anderson, Chet Hendrickson || Addison-Wesley || 도서관 소장 || 개발방법론 ||
  • ZeroPageEvents . . . . 1 match
         || 4.11. 2002 || ["SeminarHowToProgramIt"] || . || 세미나 & 진행 : ["JuNe"][[BR]] 참가 : 이선우, ["woodpage"], ["물푸"], ["1002"], ["상협"], ["[Lovely]boy^_^"], ["neocoin"], ["구근"], ["comein2"], ["zennith"], ["fnwinter"], ["신재동"], ["창섭"], ["snowflower"], ["이덕준"], 채희상, 임차섭, 김형용, 김승범, 서지원, 홍성두 [[BR]] 참관: ["최태호"], ["nautes"], ["JihwanPark"], 최유환, 이한주, 김정준, 김용기 ||
         || 5.19. 2002 || ["프로그래밍파티"] || 서강대 ["MentorOfArts"] 팀과의 ["ProgrammingContest"] || ZeroPagers : ["1002"], ["이덕준"], ["nautes"], ["구근"], ["[Lovely]boy^_^"], ["창섭"], ["상협"] [[BR]] 외부 : ["JuNe"], ["MentorOfArts"] Team ||
         || 7.15. 2002 ~ 7. 16. 2002 || ["2002년MT"] || ZeroPage MT~ || 김정훈(["정훈(K)의 페이지~"]), 신성재(["teruteruboz"]), 유상욱(["whiteblue"]), 이영록(["ricoder"]), 장재니(["E=mc²"]), 정재민(["Thor"]), ["창섭"], ["상협"], ["신재동"], 김남훈(["zennith"]), 강석천(["1002"], 류상민(["neocoin"]), 정해성(["phoenix_insky"]) ||
  • ZeroPageHistory . . . . 1 match
         ||여름방학 ||Advanced C 및 Pascal 강좌, 공동 참여로 DataBase 등 다수의 Program 개발 ||
         ||1학기 ||2기 회원모집. 1학년을 위한 각종 강좌 마련, 스터디 조직. 2학년 각종 스터디 조직(C++, Graphics, OS, System-Programming, 한글 구현). 첫돌 잔치. ||
         ||겨울방학 ||C++ for windows, X windows Programming, Object Oriented Analysis & Design 등의 Project 수행 ||
          * C++, Computer Graphics, OS, System-Programming
          * C++ for Windows, X Windows Programming, Object Oriented Analysis & Design
         ||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
          * Data Structure, Clipper, UNIX, Game, Computer Graphics
         ||여름방학 ||C 중급, C++, Network Programming 강좌. ||
          * C, C++, Network Programming
          * Delpya, OS, Graphics, Assembly, Coprocessor, UNIX, Network
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
          * 3D Graphics
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
          * 데블스캠프 : C, 파일 입출력, DOS, UNIX, Windows, Web Programming, Object-Oriented Programming, Network
          * Photoshop, Object-Oriented Programming
          * AOI, The Art Of Computer Programming
          * AOI, Extreme Programming, MFC, Java
          * 데블스캠프 : Solid Programming, Network
          * 데블스캠프 : Toy Programming, Visual Basic, MIDI, Emacs, Python, OOP, Pipe, Regular Expression, Logic Circuit, Java, Security
          * 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
  • ZeroPageServer/IRC . . . . 1 match
          * 예전에 계획만 세워놓고 때려친 Jirconium을 다시 시작하면 될 듯합니다: http://code.google.com/p/jirconium
  • ZeroPage성년식/거의모든ZP의역사 . . . . 1 match
         ||여름방학 ||Advanced C 및 Pascal 강좌, 공동 참여로 DataBase 등 다수의 Program 개발 ||
         ||1학기 ||2기 회원모집. 1학년을 위한 각종 강좌 마련, 스터디 조직. 2학년 각종 스터디 조직(C++, Graphics, OS, System-Programming, 한글 구현). 첫돌 잔치. ||
         ||겨울방학 ||C++ for windows, X windows Programming, Object Oriented Analysis & Design 등의 Project 수행 ||
          * C++, Computer Graphics, OS, System-Programming
          * C++ for Windows, X Windows Programming, Object Oriented Analysis & Design
         ||겨울방학 ||Data Structure, Clipper, UNIX, Game, Graphic 세미나 개최. ||
          * Data Structure, Clipper, UNIX, Game, Computer Graphics
         ||여름방학 ||C 중급, C++, Network Programming 강좌. ||
          * C, C++, Network Programming
          * Delpya, OS, Graphics, Assembly, Coprocessor, UNIX, Network
         ||1학기 ||7기 회원모집. 3D Graphic Programming. (긁어 놓은 게시물: Protect Mode, Functions Pointer, Compression Algorithm, About 3D, PSP의 구조, DMA, 3D Display, Tcl/Tk, C++Builder와 델파이, Lisp 강좌) ||
          * 3D Graphics
         ||2학기 ||Extreme Programming 진행 (TDD, [Pair Programming]) ||
          * 데블스캠프 : C, 파일 입출력, DOS, UNIX, Windows, Web Programming, Object-Oriented Programming, Network
          * Photoshop, Object-Oriented Programming
          * AOI, The Art Of Computer Programming
          * AOI, Extreme Programming, MFC, Java
          * 데블스캠프 : Solid Programming, Network
          * 데블스캠프 : Toy Programming, Visual Basic, MIDI, Emacs, Python, OOP, Pipe, Regular Expression, Logic Circuit, Java, Security
          * 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
  • ZeroWikian . . . . 1 match
          * [radeon256]
          * [ricoder]
          * [sakurats]
          * [travelsky]
  • [Lovely]boy^_^/Diary/12Rest . . . . 1 match
          * I studied a Grammar In Use Chapter 44,45,46
          * I read a Programming Pearls Chapter 6 a little, because I can't understand very well--;. So I read Chapter 7,8,9,10 roughly. In my opinion, there is no very serious contents.
          * I code directX examples all day.--;
          * I saw a very good sentence in 'The Fighting'. It's "Although you try very hard, It's no gurantee that you'll be success. But All succecssfull man have tried."
  • [Lovely]boy^_^/Diary/2-2-2 . . . . 1 match
          * 우리나라에 사람 무는 바퀴벌레가 들어온 기념으로.. TDD를 이용한 RandomWalk2를 해보았다.(Python) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
  • aekae/code . . . . 1 match
         == RandomWalk ==
          srand(time(0)); // 그냥 쓴다.
          int a = rand() % 3 - 1;
          int b = rand() % 3 - 1;
          srand(time(0)); // 그냥 쓴다.
          int delta = rand() % 3 - 1;
  • callusedHand/projects/algorithms . . . . 1 match
          * http://www.topcoder.com
  • callusedHand/projects/messenger . . . . 1 match
         '''Raccon'''
          * Java Network Programming
  • ddori . . . . 1 match
          * Brian Crain - Betterfly waltz
          * Rage Against Machine
          * Foo Fighters - I wanna be your monkey wranch babe..
  • eXtensibleStylesheetLanguageTransformations . . . . 1 match
         = eXtensible Stylesheet Language Transformations =
         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.
         http://www.codeguru.com/Cpp/data/data-misc/xml/article.php/c4565
  • erunc0/OOP_UML . . . . 1 match
         http://www.codeproject.com/cpp/oopuml.asp
  • erunc0/RoboCode . . . . 1 match
         == What is RoboCode? ==
          * [http://www-903.ibm.com/developerworks/kr/robocode/ Korean IBM RoboCode site]
  • html5/VA . . . . 1 match
          * duration - 미디어 데이터의 길이
          * playbackRate - 재생 속도(기본값 1.0)
  • html5/video&audio . . . . 1 match
          * duration - 미디어 데이터의 길이
          * playbackRate - 재생 속도(기본값 1.0)
  • randomwalk/홍선 . . . . 1 match
         === Randomwalk Problem ===
          t=rand()%Direction; // 랜덤으로 바퀴벌레가 움직일 방향을 정한다
          srand((unsigned)time(NULL)); // 시간을 이용해 랜덤을 설정
  • ricoder . . . . 1 match
         Thanks to 영동["Yggdrasil"]
          int array[5] = {0,};
          cin >> array[i];
          cout << array[i] <<"을 입력했습니다.\n";
          cout << array[i-1] << "를 뺐습니다.\n";
          cout << array[k]<<"\n";
          int array[5] = {0,};
          cin >> array[k];
          cout << array[k] << "을 추가 하셨습니다.\n";
          cout<<array[0]<<"를 삭제합니다.\n";
          array[i]=array[i+1];
          array[k]=0;
          cout << array[i] << '\n';
          * 이영록 : ["ricoder"]
          * 임영동 : ["Yggdrasil"]
  • zennith/dummyfile . . . . 1 match
         == source code ==
          unsigned long request, extractMask;
          int i, j, fragSize;
          char * frag;
          for (i = 0, extractMask = 0x0000000F; i < 6; i++, extractMask <<= 4)
          divTable[i] = (request & extractMask) >> (i * 4);
          fragSize = 0x00000001 << (i * 4);
          frag = (char *)malloc(fragSize);
          if (!frag) {
          memset(frag, 0, fragSize);
          fwrite(frag, sizeof(char), fragSize, fileHandle);
          free(frag);
  • 간단한C언어문제 . . . . 1 match
         char *b, msg[]="test code";
  • 강성현 . . . . 1 match
          * Honorable Mention ㅠㅠ
          * Crank 팀 (강성현 / [유정석] / [이진훈]) 으로 참가, 2위
          * [:데블스캠프2011 2011] (월/화 참여. 화요일 [:데블스캠프2011/둘째날/Scratch Scratch 강의])
         == [정모/2013.5.6/CodeRace] ==
         var array = text.replace(/\r\n|\r|\n/, ' ').split(' ').sort();
         for (var i in array) {
          if (count[array[i]] == undefined) count[array[i]] = 0;
          count[array[i]]++;
  • 경시대회준비반 . . . . 1 match
         || [TheGrandDinner] ||
         || [IsThisIntegration?] ||
         [http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=dynProg Dynamic Programming: From novice to advanced] 읽어보세요.
  • 고한종/on-off를조절할수있는코드 . . . . 1 match
          //put your code in here.
  • 권영기/web crawler . . . . 1 match
         Python을 이용해서 Web Crawler를 제작하면서 Python의 사용법을 익히고, 원하는 웹 페이지를 긁기 위한 Web Crawler를 제작한다. (네이버웹툰(돌아온 럭키짱, 신의 탑...), 네이버 캐스트, 그 외의 각종 웹페이지..)
          * http://coreapython.hosting.paran.com/howto/HOWTO%20Fetch%20Internet%20Resources%20Using%20urllib2.htm
          for c in range(pos+1, len(line)) :
          http://docs.python.org/library/urllib.html
          * os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
          http://docs.python.org/library/os.html
          http://docs.python.org/library/os.path.html#module-os.path
          http://snowbora.com/343
         for i in range(1, 21):
          prepare.extractwt(str(i) + '.html', str(i) + 'file.html')
         5. New Folder > /usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode
          * http://wiki.kldp.org/wiki.php/SubversionBook/BranchingAndMerging
  • 김수경/LaytonReturns . . . . 1 match
         [김수경], [정모/2011.4.4/CodeRace/김수경]
  • 김해천 . . . . 1 match
          * code.bug.station@gmail.com
  • 김희성 . . . . 1 match
          * Google code jam korea 2012 : 예선 25점
  • 논문번역/2012년스터디/서민관 . . . . 1 match
         abstract
         특히, 선형 판별 해석(linear discriminant analysis)과 allograph 문자 모델, 통계적 언어 지식을 결합한 방법을 살펴볼 것이다.
         전처리와 특징 추출을 위한 방법들을 기술할 것인데, 추가적으로 선형 판별 해석, allograph 문자 모델, 통계적 언어 지식 등의 더 정교한 방법도 살펴볼 것이다.
         이 시스템들은 주로 특징 추출(feature extract) 타입이나 인식 단계 전 또는 후에 텍스트 라인을 분리하거나 하는 점에서 차이가 있다.
         [1, 18]과 [15]에 HMMs 방법을 사용하는 텍스트 분리에 기반을 둔 방법과 recurrent neural network와 HMMs를 혼합한 방법의 각 예시가 있다.
         추가적으로, 각 문자 종류에 따라 HMMs나 통계적 언어 모델을 사용하는 등의 allograph 문자 모델을 사용하는 것 뿐 아니라 특징 벡터들에 대해 선형 판별 해석을 적용한 효과에 대해서도 살펴보았다.
         필기 텍스트 인식 작업을 위한 설정, 학습, HMMs의 해독 작업은 ESMERALDA 개발 환경[5]에서 제공되는 방법들과 도구들에 의해 수행된다.
         HMMs의 일반적인 구성을 위해 우리는 512개의 Gaussian mixtures with diagonal covariance matrices를 담고 있는 공유 codebook과 반-연속적인 시스템들을 이용하였다.
         전처리 동안 보완할 수 없었던 다양한 필기 방식의 차이를 고려해서 우리는 [13]에 기술된 접근방식과 유사하게 복수 작성자와 작성자에 독립적인 인식을 위한 문자 allograph 모델을 적용하였다.
         Allograph는 특정 문자의 다른 샘플(realization)과 같은 문자의 하위 항목을 나타낸다.
         따라서 문자 당 하위 항목의 수와 allograph HMMs의 수는 발견적으로(heuristically) 결정된다. 예를 들어 복수 작성자 시스템일 경우 allograph의 수가 주어진 작성자의 수와 같음을 추정할 수 있다.
         초기화를 위해서, 훈련 데이터는 무작위로 선택된 allograph HMMs로 분류된다.
         모든 문자 샘플을 훈련하는 동안, 병렬적으로 모든 해당하는 allograph 모델들에게 매개변수 재추정이 적용된다.
         따라서 allograph 분류는 고유하게 결정되는 것이 아니라 단지 이 과정이 soft vector 양자화와 유사한지에 따라 확률적으로 결정된다.
         우리의 경우에는 absolute discounting 을 이용한 bi-gram언어 모델과 backing-off for smoothing of probability distributions가 적용되었다.
         이 실험들의 문자 오류율은 table 1에 나타나있다. 실험의 타입은 첫 두 열에 나와 있고, 언어 모델을 적용하지 않은 에러율은 세 번째 열에, bi-gram 언어 모델을 문자 수준에서 사용한 결과는 네 번째 열에서 찾을 수 있다.
         단일 작성자인 경우의 실험은 노인(Senior) 데이터베이스에서 학습을 위해 282줄의 텍스트를 사용했고 테스트를 위해 141줄의 텍스트를 사용했다. 문자 수준의 bi-gram perplexity는 15.3이었다.
         bi-gram 언어 모델을 도입하는 것으로 13.3%인 기준선 시스템의 오류율은 12.1%까지 감소하는 결과를 이루었다.
         이 결과들은 우리가 찾아낸 같은 데이터베이스를 쓰는 결과(literature ......)와 비교했을 때 쓸만하다. 훈련용과 테스트용 셋의 크기가 다르기 때문에 비교하기는 어렵지만.
         이 작업을 위해서 LDA(수축된 차원수 12)를 이용한 14.2%의 오류율을 가진 문자들이 얻어졌다. 에러율은 allograph 모델(각 소문자마다 6개의 allograph)을 이용하는 것으로 13.3%까지 감소한다.
  • 니젤프림/BuilderPattern . . . . 1 match
         === Class Diagram ===
         Product 를 생성하는 템플릿. Abstract Interface 라고도 할 수 있다.
         ==== Wikipedia 의 Java code ====
         /** "Abstract Builder" */
         abstract class PizzaBuilder {
          public abstract void buildDough();
          public abstract void buildSauce();
          public abstract void buildTopping();
          throw new UnsupportedOperationException();
          throw new UnsupportedOperationException();
          throw new UnsupportedOperationException();
          throw new UnsupportedOperationException();
          throw new UnsupportedOperationException();
          throw new UnsupportedOperationException();
         import java.util.ArrayList;
         import java.util.Iterator;
          planComponents = new ArrayList<PlanComponent>();
          Iterator iterator = planComponents.iterator();
          while (iterator.hasNext()) {
          PlanComponent planComponent = (PlanComponent) iterator.next();
  • 다이얼로그박스의 엔터키 막기 . . . . 1 match
         1. Add Virtual Function 클릭해서 PretranslateMessage 함수 추가
          BOOL CLogInDlg::PreTranslateMessage(MSG* pMsg)
          // TODO: Add your specialized code here and/or call the base class
          if((int)pMsg->wParam==VK_RETURN || (int)pMsg->wParam==VK_ESCAPE)
          return CDialog::PreTranslateMessage(pMsg);
  • 데블스캠프/2013 . . . . 1 match
          || 1 |||| [Opening] |||| [새내기의,새내기에의한,새내기를위한C언어] |||| [http://zeropage.org/seminar/91465#0, GUI 다뤄보기] |||| |||| [Clean Code with Pair Programming] |||| OOP || 8 ||
          || 2 |||| [http://zeropage.org/seminar/91479#0 페이스북 게임 기획] |||| [새내기의,새내기에의한,새내기를위한C언어] |||| [http://zeropage.org/seminar/91465#0, GUI 다뤄보기] |||| |||| [Clean Code with Pair Programming] |||| OOP || 9 ||
          || 3 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [새내기의,새내기에의한,새내기를위한C언어] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [Clean Code with Pair Programming] |||| [:WebKitGTK WebKitGTK+] || 10 ||
          || 4 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [http://zeropage.org/seminar/91448 로우레벨로 보는 Physical MAC Cross Layer] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [진격의안드로이드&Java] |||| [:WebKitGTK WebKitGTK+] || 11 ||
          || 5 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [http://zeropage.org/seminar/91448 로우레벨로 보는 Physical MAC Cross Layer] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [진격의안드로이드&Java] |||| 밥 or 야식시간! || 12 ||
          || 6 |||||||||||||||||||| 밥 or 야식시간! |||| [:ParadigmProgramming Paradigm Programming] || 1 ||
          || 7 |||| [:데블스캠프2013/첫째날/ns-3네트워크시뮬레이터소개 ns-3 네트워크 시뮬레이터 소개] |||| [:데블스캠프2013/둘째날/API PHP + MySQL] |||| [:아두이노장난감만드는법 아두이노 장난감 만드는 법] |||| |||| [:개발과법 개발과 법] |||| [:ParadigmProgramming Paradigm Programming] || 2 ||
         || 안혁준(18기) || [http://intra.zeropage.org:4000/DevilsCamp Git] ||
         || 송지원(16기) || [Clean Code with Pair Programming] ||
         || 서지혜(17기) || Paradigm Programming ||
          * 옙 답변달았습니다. 더 많은 정보는 [https://trello.com/board/cleancode-study/51abfa4ab9c762c62000158a 트렐로]에 있을지도 모릅니다. 아카이빙을 잘 안해서.. - [서지혜]
  • 데블스캠프2003/ToyProblems . . . . 1 match
         random walk
         FileInputOutput [파일입출력] RandomFunction
  • 데블스캠프2003/셋째날/후기 . . . . 1 match
          * 그동안 C언어에만 제한되어있던 사고의 범위를 다른 여러 언어를 접해보면서 넓히는 계기가 되었다...그 후에 짰던 ramdomwalk는 알고리즘에 확신이 섰는데도 불구하고 다 완성하지 못해 아쉬웠다...나중에 꼭 완성해야지.. --[문원명]
          * 여러가지 언어를 접하고 보니 사고를 넓혀야 겠다는 생각과 언어적 개념이 중요하다는 사실을 깨달았다. [RandomWalk]는 [마방진],[EightQueenProblem]에 이어 다시금 좌절을 안겨 주었다. 다음엔 무엇에 좌절할 것인가.. --황재선[aekae]
  • 데블스캠프2005/RUR-PLE/Harvest . . . . 1 match
         #main source code
  • 데블스캠프2005/RUR-PLE/Harvest/김태훈-zyint . . . . 1 match
          for i in range(no):
         # main source code #
  • 데블스캠프2005/RUR-PLE/Sorting . . . . 1 match
          for n in range(7):
         for n in range(8):
         # main source code #
         for i in range(5):
  • 데블스캠프2005/목요일후기 . . . . 1 match
         3. Vpython code 금방 넘어감!
  • 데블스캠프2005/월요일 . . . . 1 match
          RoboCode 80m
          === For ObjectOrientedProgrammingSeminar ===
          NoSmok:ObjectOrientedProgramming (NoSmok)
          Wiki:ObjectOrientedProgramming (OriginalWiki)
          [http://c2.com/doc/oopsla89/paper.html A Laboratory For Teaching Object-Oriented Thinking]
          Object-Oriented Programming with Squeak
          [RandomWalk2], [바퀴벌레에게생명을] - 시각적 효과를 곁들인 예제로 만들 수 있다면..
          [http://www.zib.de/Visual/people/mueller/Course/Tutorial/tutorial.html Introduction to Object-Oriented Programming Using C++]
  • 데블스캠프2006/금요일 . . . . 1 match
         [CodeRace/데스크탑검색]
  • 데블스캠프2009/화요일후기 . . . . 1 match
         == Robocode - 장혁수 ==
         == Abstractionism - 변형진 ==
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현 . . . . 1 match
          * train 데이터를 읽어들여서 일단 문자열과 빈도수를 csv 파일로 저장. 이를 Analyze 클래스에서 csv 파일을 읽어들여 test 데이터를 판별.
         == Source Code ==
         === Train File Analysis ===
         import java.util.ArrayList;
          FileData politics = new FileData("train/politics/index.politics.db");
          FileData economy = new FileData("train/economy/index.economy.db");
          ArrayList<String> wordsInArticle = new ArrayList<String>();
          ArrayList<String> wordsInArticle = new ArrayList<String>();
          e.printStackTrace();
          e.printStackTrace();
          String[] wordset = words.keySet().toArray(new String[0]);
          Int2[] intset = words.values().toArray(new Int2[0]);
         import java.util.ArrayList;
         import au.com.bytecode.opencsv.CSVReader;
          String[][] data = csv.readAll().toArray(new String[0][0]);
          ArrayList<String> wordsInArticle = new ArrayList<String>();
          ArrayList<String> wordsInArticle = new ArrayList<String>();
          // TODO Auto-generated catch block
          e.printStackTrace();
          // TODO Auto-generated catch block
  • 데블스캠프2011/셋째날/후기 . . . . 1 match
          * 감회가 새로웠습니다. 교환학생 파견갔을 당시 자료구조 첫시간 과제로 받아 C++을 다시 기억해내고 클래스에 대한 개념을 다시 생각해내고 &와 포인터, C++에서의 객체 선언을 알아내느라 고생했던 기억이 납니다. 이번에도 &와 객체 선언부에서 잠깐 해맸었어요.(역시 반복학습이 중요한..) = 를 하나 빼먹어서 charAt 테스트에 통과하지 못했던 것은 아쉬웠습니다.
          * 새내기가 없어서 hardCore coderace로 변해버린 C언어 코딩. String을 만드는건 너무 힘들었다. 하지만 이렇게 스피드하게 한건 너무 오랜만이라 재미있었다. C++ 스트링클래스는 정말 예외처리가 많고 하다가 중간 중간 완성된것이나 예외처리 테스트를 만들어놨으면 나중에 더 빨리했을까했는데 너무 오래걸렸다는것이 아쉬웠다. 여튼 수고한 당신에게 박수를. =
          * 실제로는 보기만 해도 이해가 안 갈 독특한 프로그래밍 언어를 모아서 설명하는 시간이었습니다. 뭐, 유명한 Brainf**k이나 Befunde 등의 언어가 어떤 식으로 되어 있는지 알아보고 직접 써보고. 더 괴상한 언어들도 보고. 보면서 느낀 것은 역시 세상은 넓고 Geek들은 많다는 점이었겠군요. 사실 Esolang 위키에 있는 언어들은 아무리 봐도 만든 사람들이 재미있어서 만든 것 같은 느낌이었으니까요. 그리고 다들 생각했을 평소에 쓰는 프로그래밍 언어에 대한 고마움도 새삼 느꼈습니다. 그런데 이번 경험이 나중에 어떻게 도움이 될 수 있을까는...... 잘 모르겠군요 -_-;;; 앞으로는 어떤 언어를 봐도 무섭지 않게 되는 건가...
          * Brainf**k의 특정 단어에 문제가 있어서 저장이 안 됐네요 -_- 뭐가 문제인가 한참 생각했네...
  • 데블스캠프2012/셋째날/앵그리버드만들기 . . . . 1 match
         //input your javascript code!
          drawBird();
         function drawBird()
          context.drawImage(ima,bird.x,bird.y,50,50);
          var onDrag = false;
          onDrag = true;
          if(onDrag)
          onDrag = false;
          this.drawScreen();
         Game.prototype.drawScreen = function()
          this.context.drawImage(this.currentBird.img, this.currentBird.x-13, this.currentBird.y-13, 25, 25);
  • 레밍즈프로젝트 . . . . 1 match
         [(zeropage)UML] : [AgoraPlastic]
         [http://www.codeproject.com]
  • 몸짱프로젝트/BinarySearchTree . . . . 1 match
          === After Rafactoring ===
  • 무엇을공부할것인가 . . . . 1 match
         SeparationOfConcerns로 유명한 데이비드 파르나스(David L. Parnas)는 FocusOnFundamentals를 말합니다. (see also ["컴퓨터고전스터디"]) 최근 작고한 다익스트라(NoSmok:EdsgerDijkstra )는 수학과 언어적 능력을 말합니다. ''Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. -- NoSmok:EdsgerDijkstra '' 참고로 다익스트라는 자기 밑에 학생을 받을 때에 전산학 전공자보다 수학 전공자에게 더 믿음이 간다고 합니다.
         ([http://groups.google.co.kr/groups?hl=ko&lr=&ie=UTF-8&inlang=ko&newwindow=1&frame=right&th=382f243e8edce15a&seekm=slrnam7pfh.ds.gerhard.haering%40haering.opus-gmbh.net#link1 관련 원문])
         - Object Oriented Programming (OOP)
         - Procedural Programming
         - Functional Programming
         more attractive to employers who have a clue about what's important in the
          blocking other team members who wait for you. Using a source code control
          concentration, unit tests, and always trying to improve on yourself help
  • 문자반대출력/임인택 . . . . 1 match
         code:
  • 문자반대출력/허아영 . . . . 1 match
          ascii code를 봐서 MSB ( most significant bit)가 1 이면 아마.. 2바이트문자일 겁니다.. - 임인택
  • 빵페이지/숫자야구 . . . . 1 match
         난수생성 참고자료 : RandomFunction , WindowsConsoleControl
          * 아 그리고 rand() 만 쓰면 똑같은 숫자만 된다고.. 뭐 다른것도 해야 되던데요.. - 정욱
          * ctime 를 include 하고 srane(time(0)); 을 선언해주면 바뀔걸~ - 민수
          srand(time(NULL));
          num[i] = rand()%9 +1;
          int rand_num[3]; //난수생성에 사용될 변수입니다.
          int player_num[3]; //사용자가 입력한 값을 각 자리 숫자로 나눠서 rand_num과 비교하기 쉽게 만듭니다.
          int ext,extra; //여분의 변수입니다.
          srand(time(NULL));
          rand_num[i] = rand()%10; //한 자리수 난수를 생성합니다.
          if (i == 1 && rand_num[i] == rand_num[0])
          else if (i == 2 && (rand_num[i] == rand_num[0] || rand_num[i] == rand_num[1]))
          extra = 1;
          extra = 0;
          if (extra == 0) break;
          if (extra == 0) break;
          if (extra == 0) continue;
          if (extra == 1) {
          if (rand_num[j] == player_num[k] && j==k) strike++;
          if (rand_num[j] == player_num[k] && j!=k) ball++;
  • 새싹교실/2011 . . . . 1 match
          각 파트의 역할, program의 실행원리, software(layer 활용), complier와 interpreter 역할
          프로그래밍 단계(code 작성->compile->link->generating .exe file)
         ||4||operator:
          arithmetic operator
          bitwise operator
          logical operator, relational operator
          shorthand operator, operator precedence
         ||9||array:
          declaration
          multi-dimension array||
          operator
         array와 pointer의 관계||
  • 새싹교실/2011/學高/4회차 . . . . 1 match
          * %c: character
          * escape character
         escape character
         Ascii code는 외울 필요가 없다..
  • 새싹교실/2011/學高/8회차 . . . . 1 match
          * array를 도식화해서 그려보세요
          // Input your code
          * random()
          * array
          * Memory 상에서의 array
          * declaration과 사용
  • 새싹교실/2011/씨언어발전/5회차 . . . . 1 match
          // put your code here
         오늘은 array에 관하여 배웠다.
         그리고 array를 이용하여 학생들 시험점수의 총합과, 평균, 모든학생의 총합과, 총평균을 구하는 코딩을 해보았다. 또한, 소수(prime number)를 구하는 함수를 배웠다.
  • 새싹교실/2011/앞반뒷반그리고App반 . . . . 1 match
          * [The C Programming Language]. 일단은.
          * 오늘은 포인터를 배웠어요. ********별-. 선언할 때 int *a;로 선언하게 되면 *a는 a의 주소에 있는 값을 나타내는거였지요. 음.. 하다가 현 형이 하던 프로젝트에 잠깐 지워놓고 예시를 들었다가 xcode를 끄는 바람에 소스가 날라가버렸지요.... 포인터가 있으면 지정된 크기보다 큰 용량의 자료도 불러오기 쉽다는 것도 배웠구요. 아무튼 유용하게 쓸 수 있을거 같아요 -[김태진]
  • 새싹교실/2012/AClass/2회차 . . . . 1 match
         2.srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
         - 난수(random number)를 생성할때 stdlib.h헤더파일을 코드에 포함시키고 srand()를 사용한다.rand()함수는 매번 그 값이 같은 반면에 매실행때마다 난수를 다르게 생성하기 위해서 srand()를 사용한다.
         srand역시 stdlib.h에 포함되어 있다. srand는 시드값을 주어 사용하는 것이고 그 시드값으로부터 특정한 법칙으로 난수를 생성하는 것이다.따라서 매번 다른 난수를 얻으려면 시드값을 계속 바꾸어주어야 한다.
          printf("rand()함수를 사용,1개의 random number 나타내기 \n");
          srand(time(NULL)); //시드값 = 시간
          printf("%d\n",rand());
         2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
         rand()%a+b : a부터 b까지 수 랜덤 출력
         #include <stdlib.h> //rand함수 사용
          srand(time(NULL));
          printf("%d\n",rand()%100+1); //1-100중 하나 출력
          - 배열명에 증감연산자(array++, array--)를 쓸 수 없다
          char grade;
         2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
         Void srand(unsigned int SEED);
         Rand가 생성하는 초기 난수를 변경함. SEED는 초기 난수를 변경하는데 사용되지만 SEED자체가 초기난수가 되는 것은 아님
         2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
         -srand함수는 여러 개의 난수표 중 하나를 선택하는 것이고, rand 함수는 선택된 난수표로부터 값을 꺼내오는 것이다. srand함수에는 인자가 하나 들어가는데, 그것을 seed값이라고 한다.
  • 새싹교실/2012/startLine . . . . 1 match
          * 0과 1으로 어떻게 글자를 표현하는가(ASCII code).
          * 추상화의 측면에서 보는 타입과 연산(operation).
         typedef struct AccountArray {
         } AccountArray;
         AccountArray *createAccountArray(int maxLength);
         void addAccount(AccountArray *accountArray, char *name);
         bool isFull(AccountArray *accountArray); // 배열이 다 차면 어떻게 하면 좋을까??????
         AccountArray *extendArray(AccountArray *before); // 다 찬 배열은 새로 확장을 해 주어야 합니다.
         void deleteAccount(AccountArray *accountArray, char *name); // 배열의 중간 원소 삭제? 중간에 구멍만 뻥 뚫어두면 되나?
         void deposit(AccountArray *accountArray, char *name, int money); // accountArray 내부에서 이름으로 비교할 필요가 있겠지.
         void withdraw(AccountArray *accountArray, char *name, int money);
         void withdrawMenu();
          withdrawMenu();
         // array[0] == *(array + 0) 배열이나 포인터나 해당 주소에 대한 접근이라는 점에서는 동일하게 접근할 수 있다.
          * AccountArray와 관련된 함수들 만들기.
          * extendArray 등의 함수 사용의 불편함.
          * ArrayList(Array)와 LinkedList의 연산 비교.
  • 새싹교실/2012/세싹 . . . . 1 match
          - transport : 데이터를 어떻게 보낼지 결정하는 계층입니다. 데이터를 어떻게 묶어서 보낼지, 오류처리는 어떻게 할지에 대해 결정합니다. TCP/UDP등이 있습니다.
          * http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/AdvancedComm/SocketOption
         #pragma once
         #pragma pack(push, 1)
          U16 SectorsPerTrack;
          U8 Code[0x1AE];
         #pragma pack(pop)
          - http://www.codeproject.com/Articles/24415/How-to-read-dump-compare-registry-hives
          - http://technet.microsoft.com/en-us/library/cc750583.aspx#XSLTsection124121120120
          printf("Offset to fixup array : 0x%02x%02x\n", *((unsigned char*)MFT+5),*((unsigned char*)MFT+4));
          printf("Offset to fixup array : 0x%02x%02x\n", *((unsigned char*)MFT+5),*((unsigned char*)MFT+4));
          * Code jam으로 불태웠더니 시간이... - [김희성]
          printf("Offset to fixup array : 0x%02x%02x\n", *((unsigned char*)MFT+5),*((unsigned char*)MFT+4));
  • 새싹교실/2012/우리반 . . . . 1 match
         #include ----- => source=code 소스
          * ASCII Code 아스키코드 => char 에서 쓰이는 코드
          * int main( void ) - main indicate that main is a program building block called a function
          * printf,\n,\t,\a,\\,\",return 0; in main,compile, link, scanf, int ==> variables, c=a+b;, %d, + => operator, %,if, ==, !=, >=, else, sequential execution, for, a?b:c, total variable, counter variable, garbage value, (int), 연산우선순위, ++a a++ pre/post in/decrement operator, math.h // pow,%21.2d, case switch, break, continue, logical operator || && ! 등.
          * Search, Sort, Array.
  • 새싹교실/2012/주먹밥 . . . . 1 match
         [http://www.flickr.com/photos/zealrant/ http://farm8.staticflickr.com/7245/6857196834_0c93f73f96_m.jpg] [http://farm8.staticflickr.com/7131/6857196764_23eea15ba2_m.jpg http://farm8.staticflickr.com/7131/6857196764_23eea15ba2_m.jpg] [http://farm8.staticflickr.com/7083/7003313019_18c6b87b6b_m.jpg http://farm8.staticflickr.com/7083/7003313019_18c6b87b6b_m.jpg] [http://farm8.staticflickr.com/7262/6857196800_ea1e29350f_m.jpg http://farm8.staticflickr.com/7262/6857196800_ea1e29350f_m.jpg]
          * 헤더 파일들에는 뭐가 들어가는지 한번 알아보았습니다. math.h에는 수학에 관련된 함수. time.h에는 시간 제어에 관련됨 함수를 사용했죠 .srand(time(NULL))이 왜 쓰이는 지는 아직 안알려주었답니다^.^
          * 배열(array)는 같은 타입을 한꺼번에 관리하게 해줍니다 {{{ int a[10];}}}이라하면 a는 int형 10개가 생겨있고 0~9까지의 인덱스(index)를 지니죠.
          float gram = 0;
          scanf("%f", & gram);
          totalcal += (pcal+i)->value * gram /100.0;
          * 답변 : 객체 지향 프로그래밍(Object Oriented Programming)입니다. 프로그래밍 설계 기법이죠. 전에도 얘기했듯이 프로그래밍 설계 기법은 프로그래머의 설계를 도와 코드의 반복을 줄이고 유지보수성을 늘리는데 있습니다. 하지만 생산성이 있는 프로그래머가 되고싶다면 API를 쓰고 알고리즘을 병행해서 공부해야 된다는것을 알리고 싶습니다. 그리고 단순히 Class를 쓰는것과는 다른기법입니다. 객체 지향적으로 설계된 C++이나 Java에서 Class를 쓰기때문에 Class를 쓰는것이 객체지향으로 알고있는 사람들이 많습니다. 그건... 아니죠. 절차지향 프로그래밍과 다른점은 차차 가르쳐 드리겠습니다. C에서 Class란 개념이 설계상으로 발전했는지 알려드렸습니다. 함수 포인터와 구조체였죠. 그게 원형입니다.
          document.write("<p>My first paragraph</p>");
          * Google Code : http://code.google.com/intl/ko-KR/
          srand(time(NULL));
          a[i] = rand()%10+1;
          temp = rand()%10+1;
          temp = rand()%10+1;
          * @param args
  • 서상현 . . . . 1 match
          * ["RandomWalk2/서상현"]
  • 서지혜/Calendar . . . . 1 match
          * 글쿤 많이 지원하는구나.. 사실 attribute accessor나 lambda가 이해되는건아닌데ㅜㅜ attribute accessor가 어떻게 필드를 public처럼 접근가능하게 하면서 encapsulation을 지원하는지 잘 몰게뜸ㅠㅠ code block을 넘긴다는 말도 그렇고.. - [서지혜]
          List<Month> months = new ArrayList();
  • 서지혜/단어장 . . . . 1 match
          1. 제조하다 : NAS(Network Attached Storage) is often manufactured as a computer appliance
         '''Imperative'''
          명령적인 : 1. imperative programming. 2. We use the Imperative for direct orders and suggestions and also for a variety of other purposes
         '''Wrangler'''
          The wrangler rounded the drove toward the tents.
          code wrangler(IT업계에서 관리자라는 말 처럼 쓰인다).
         '''Administration'''
          관리직 : administration officer
          1. I've decided to study full-time to finish my business administration degree
          2. I'm working on a master's degree in business administration.
         '''administer (= administrate)'''
          인용 : The forms of citations generally subscribe to one of the generally excepted citations systems, such as Oxford, Harvard, and other citations systems, as their syntactic conventions are widely known and easily interrupted by readers.
          Density is physical intrinsic property of any physical object, whereas weight is an extrinsic property that varies depending on the strength of the gravitational field in which the respective object is placed.
          식별하다 : The computer program was unable to discriminate between letters and numbers.
          practices that discriminate against women and in favour of men.
          It is illegal to discriminate on grounds of race, sex or religion.
          What is the difference between ethnicity and race?
          The traditional definition of race and ethnicity is related to biological and sociological factors respectively.
          밀도 : Moore's law has effectively predicted the density of transistors in silicon chips.
         '''constrain'''
  • 손동일 . . . . 1 match
          [8queen/손동일] [스택큐/손동일] [RandomWalk/손동일] [오목/재선,동일]
  • 스터디/Nand 2 Tetris . . . . 1 match
          * HDL Code
          // Put you code here:
          The instruction memory and the data memory are physically separate
          * Memory(RAM)
          out = RAM[k]
          RAM[k] = x
          Screen을 위한 RAM 어딘가를 할당해놓음. 이 공간은 Screen을 위한 공간. CPU는 그 공간을 읽거나 써서 Screen 출력
          Keyboard를 위한 RAM 어딘가를 할당해놓음. 이 공간은 Keyboard를 위한 공간. CPU는 그 공간을 읽어서 어떤 key가 들어왔는지 확인.
  • 신기호/중대생rpg(ver1.0) . . . . 1 match
          * Total lines of code: 760(스압 주의)
         inventory storage[3];
         void travel(town dest,int distance,int townNum);
         void setTravelDest();
          setTravelDest();
          srand((unsigned)time(NULL));
          num=(rand()%10)/10+rand()%2;
          strcpy(storage[0].name,"혁명의 구슬(오브)");
          storage[0].att=6;
          storage[0].def=2;
          storage[0].hp_plus=4;
          strcpy(storage[0].tooltip,"기분이 상쾌해진다.");
          strcpy(storage[0].name,"교수님의 노트(부적)");
          storage[0].att=10;
          storage[0].def=4;
          storage[0].hp_plus=20;
          strcpy(storage[0].tooltip,"지식이 깊어진다.\n");
          strcpy(storage[0].name,"절대 마우스(유니크)");
          storage[0].att=100;
          storage[0].def=100;
  • 쓰레드에관한잡담 . . . . 1 match
         1. real-time process - 1.hard real-time(산업용), 2.soft real-time(vedio decoder 등)
  • 안혁준 . . . . 1 match
          * play Framework
          * [http://intra.zeropage.org:3000 planetWar] - ZP MT 때 진행했던 AI경쟁 플랫폼. 코드 공개예정
          * [http://nforge.zeropage.org/projects/davinchicode 09년도 JAVA 프로젝트/다빈치 코드]
  • 영어학습방법론 . . . . 1 match
          * GSL : General Service List (http://jbauman.com/gsl.html) 2200여 단어. 일상영어속에 나오는 단어의 80% 커버
          * Topic 중심이나 또는 아예 random한 단어장이 괜찮음
          * The Longman Dictionary of Contemporary English (Addison Wesley Longman, 3rd Edition이상)
          * Practical English Usage (Author : Swan) 문법 index가 잘되어 있음. 글을 읽다가 모르는 문장, 문법일때 손쉽게 찾아서 볼 수 있음
          * Grammar in Use (Author : Raymond Murphy)
  • 오페라의유령 . . . . 1 match
         소설이 먼저였지만, 개인적으로 Webber 와 Sarah 의 노래를 엄청나게 좋아하는 관계로. 소설을 읽는 내내 머릿속에서 Think of Me, The Music of Night, Wishing you were somehow here again 가 배경음악으로 깔리었다.
         웨버아저씨에게 상상력을 선사해준 소설이란? 원작에 상관없이 자신스타일로 작품을 만들어내는 웨버아저씨여서 (그래봤자 본건 하나뿐이지만; 한편은 대본읽음). 개인적인 결론은 해당 소설로부터 자신의 주제의식을 뽑아낸 웨버아저씨 멋져요 이긴 하지만, 이 소설이 태어나지 않았더라면 Phantom of the opera 가 나타나지 않았을 것이란 생각이 들기에. (소설의 구성 등을 떠나서, Phantom 이라는 캐릭터를 볼때)
         뮤지컬의 이미지때문인지 (한번도 안본 뮤지컬에 대해 이미지를 떠올리는것도 우스운 일이다. OST와 Sarah 의 뮤직비디오는 많이 보긴 했지만) 크리스틴을 볼때마다 사라아주머니의 젊었을때의 사진을 떠올렸고, Phantom 이 등장할때엔 그 Main Theme (Phantom 의 그 멋진 웃음소리와도 같게 들리는...) 를 떠올렸다.
          * 암튼 Phantom of the opera 에서 가장 멋진 목소리는 Phantom 이라 생각. 그리고 당근 Sarah 아주머니; Phantom 이라는 캐릭터 이미지가 맘에 들어서. 그리고 노래도.
          * 소설에서의 Raoul 의 그 바보스러움이란;
  • 유선 . . . . 1 match
         [CodeRace/20060105/상협유선]
  • 유용한팁들 . . . . 1 match
          * 원본 글 : [http://www.codeproject.com/useritems/Text_Indexer.asp]
         아래 명령어 실행시에 Enter Passphrase 에서 그냥 Enter 만 칠것
         Generating public/private rsa key pair.
         Enter passphrase (empty for no passphrase):
         Enter same passphrase again:
  • 이민석 . . . . 1 match
          * jsfiddle: http://jsfiddle.net/user/codeonwort/
  • 이태양 . . . . 1 match
          * [CodeRace/20060403/이태양]
         === OldTrafford ===
  • 인상깊은영화 . . . . 1 match
         [쿠도 준(타베 미카코) http://movie.naver.com/movie/bi/pi/basic.nhn?code=102482] 진짜 남자같아ㅋ
  • 인수/Smalltalk . . . . 1 match
          Transcript cr; show: a; show: ' * '; show: b; show: ' = '; show: a*b; printString.
          Transcript cr.
          numsOfWalked := Array2D width:size height:size.
          newValue := num + 3 atRandom - 2.
         RWRoach>>traverse: aBoard
         r traverse:b.
  • 임시 . . . . 1 match
         [http://www.cse.buffalo.edu/~rapaport/howtostudy.html How to study]
         Arts & Photography: 1
         Biographies & Memoirs: 2
         Comics & Graphic Novels: 4366
         Literature & Fiction: 17
         Travel: 27
         http://www.dasomnetwork.com/~leedw/mywiki/moin.cgi/NetworkProgramming
         http://crab.chungbuk.ac.kr/%7Ejchern/ vi명령어, Windows Network Programming API, ..
         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.
         &Operation=ItemSearch &SearchIndex=SportingGoods
         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.
         1. Search Type, 관련 parameter 입력.
  • 임인택/Temp . . . . 1 match
         http://zeropage.org/~dduk/dcmp/wxPython2.6-win32-unicode-2.6.0.1-py24.exe
  • 정모/2002.11.13 . . . . 1 match
         Recoder : xxx
  • 정모/2006.5.1 . . . . 1 match
         Upload:robocode3.avi
  • 정모/2006.9.7 . . . . 1 match
          Ruby On Rails - 현태, 상협, 건영, 수생, 아영
  • 정모/2011.3.28 . . . . 1 match
          * [김수경]은 SpringFramework를 공부하는 봄싹 스웨--터--거 3월 스터디에 참가함.
          * 다음주 정모에서는 CodeRace를 합니다. 11학번도 참여할 수 있으니 주위 ZeroPage에 관심있는 새내기들에게 많이 홍보해주세요 :)
          * 새싹 돌아보기 도중 나왔던 윤종하 게임 세미나! 정확히 언제 하실지 궁금해졌습니다 ㅋㅋ 다음 주 부터 ZP에 관심 있는 새내기들도 참여한다던데, 이제 ICE BRAKING의 진가를 발휘할 때가 오지 않았나 싶습니다. 다른 사람들도 모두 알 수 있는 용어들로 채워졌으면 합니다. OMS에서 처음과 두번째 동영상은 TV 광고에서도 많이 봤던 류였지만, 세번째의 사람 전체 행동을 인식해서 컨트롤러 없이도 게임을 즐길 수 있는 것과 네번째 동영상에서 컨트롤러를 활용해 화이트보드에 글씨를 쓰거나 3D 형태로 보이게 하는 것이 신기했습니다. 특히, 로봇같은 경우는 오른쪽으로 가라고 하는 손가락질을 인식해서 이동하는게..정말 능력자가 많은 듯 싶습니다. 책 읽기 모임은 원래 격주로 하는데 시험이 3주밖에 안남아 다음주에 진행하고, 중간고사가 끝날 때까지 쉴까 고민중입니다. 어느 새 3월이 다 갔네요! 시간 참 빠르군요 ㅠㅠ - [강소현]
  • 정모/2011.4.4/CodeRace/강소현 . . . . 1 match
         [정모/2011.4.4/CodeRace]
  • 정모/2012.7.18 . . . . 1 match
          * 안드로이드 도서관 - 학교 도서관의 도서 신청 과정이 무척 불편하다 -> 안드로이드로 책의 바코드를 찍으면 도서관에서 책이 신청 되도록 하는 것이 목표. 현재 바코드 처리 부분을 만들고 있음. [ISBN_Barcode_Image_Recognition]
  • 정모/2012.8.22 . . . . 1 match
          * [고한종]학우의 Mac | Xcode | iOS를 반년 정도 쓰면서 느낀 경험담. -매우 난잡함-
  • 정모/2013.4.8 . . . . 1 match
         = google code 잼 =
  • 정모/2013.5.6 . . . . 1 match
         = Clean Code =
         = [정모/2013.5.6/CodeRace] =
  • 정모/2013.7.8 . . . . 1 match
          * code formatting에 대한 내용을 공부. 프로젝트에 대한 것을 하나 정해서 그걸 리펙토링 하는 방향으로 진행 방향정함.
          * 스터디맴버 각각 : dynamic Graph Greedy(위상 정렬과 강연결과 관련)부분을 공부.
  • 제12회 한국자바개발자 컨퍼런스 후기 . . . . 1 match
         || 09:30 ~ 10:20 |||||||||||||| Registration ||
         || || Track 1 || Track 2 || Track 3 || Track 4 || Track 5 || Track 6 || Track 7 ||
         || 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
         || 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
          간단하게 점심을 먹고 본인은 첫 세미나로 Track 3에서 한 아키텍트가 알아야 할 12/97가지를 들었다. 그 내용중에서 STAN으로 프로그램의 상태를 보여주는 부분이 인상깊었다. 그렇다고 여기에 너무 민감하게 반응하지는 말라던.. 그리고 그 곳에 심취해 있다고 단순히 신기술이라고 무조건적으로 사용하기 보다는 이런 저런 상황을 고려하라는 것.. 가장 생각나는 것은 문제는 기술의 문제가 아니라 모든 것은 사람에 관한 것이다라는.. 모든 일은 나 자신으로부터 비롯된다라고 생각하고 있었는데 그 부분과 어느정도 상통하는 이야기였던 것 같다.
          그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
          세 번째로 들은 것이 Track 5의 How to deal with eXtream Application이었는데.. 뭔가 하고 들었는데 들으면서 왠지 컴구 시간에 배운 것이 연상이 되었던 시간이었다. 다만 컴구 시간에 배운 것은 컴퓨터 내부에서 CPU에서 필요한 데이터를 빠르게 가져오는 것이었다면 이것은 서버에서 데이터를 어떻게 저장하고 어떻게 가져오는 것이 안전하고 빠른가에 대하여 이야기 하는 시간이었다.
          네 번째 시간으로는 Track 3에서 모바일 웹 개발 플랫폼을 들었는데.. 뭔가 웹에서 사용되는 것은 이러이러한 것이 있습니다라고 50분동안 열거하는 느낌이라 기대보다는 지루했다. -_-a 그래서 사실 기억에 남는 것이 별로 없다..;
          마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
          * <Play GAE!>는 요새 Play framework를 좀 만지고 있기도 하고 구글 해커톤 가서 구글 앱 엔진 쓸 계획이 있어서 들었는데 Play 소개같은 세션이라 원하던 내용은 아니었다. 알게된 것은 '''Play framework에는 구글 앱 엔진을 지원하는 모듈이 있다'''는 것. 인상깊은 것은 플레이, 스프링, 스트럿츠의 비교. 드래곤볼 짤과 함께 각각의 전투력을 측정하는 드립이 있었는데 전투력을 책 페이지로 측정하셨다. 예상가능하게도 스프링 전투력 측정에선 토비의 스프링이 튀어나옴...
  • 제로Wiki . . . . 1 match
         code...
  • 제로스 . . . . 1 match
         || . 1. 9. || Upload:CH2_Operating-System-Structures.ppt || 수생, 소현 ||
         * 이론 : Operating System Concepts(6/E) : Windows XP Update - 한국어판
          * 현재 프로젝트의 방향은 정하지 않은 것으로 보이니까 공룡책으로 이론 공부를 하고 Nachos라는 교육용 OS 프로그램 분석을 병행하면서 여기서 얻은 지식으로 OS를 만드는 접근 방법을 사용하는 것이 어떨까 하는데 다들 의견이 어떠신지 궁금? -- 이론 : Operating System Concepts -- 실습 : Nachos - [진석]
          * 우리 OS 직접 만들어보는 실습은 [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788979143256&orderClick=LAA 만들면서 배우는 OS 구조와 원리] 책이 좋지 않을까 싶은데 ㅋ 따라하기도 쉽고, 현태가 더 upgrade해서 만들 수 있는 부분이 있으면 코멘트 해주고 ㅋ- [김건영]
  • 졸업논문/본론 . . . . 1 match
         Django는 오픈 소스 프로젝트로 code.djangoproject.com/browser/django 에서 전체 소스코드를 확인할 수 있다. 문서에 따르면 django 데이터베이스 API는 "SQL문을 효율적으로 사용하고, 필요할 때는 알아서 join연산을 수행하는 강력한 구문을 가졌으며, 사용자가 필요할 경우 직접 SQL문을 작성할 수 있도록 지원"[5]한다. 추상화된 구문을 사용하더라도 데이터는 관계형 데이터베이스에 저장하게 되는데, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같은 DBMS를 사용할 수 있다.
  • 졸업논문/서론 . . . . 1 match
         이러한 기술과 더불어 기민하게 웹 어플리케이션을 만들 수 있는 프레임워크도 점차 많아지고 있다. 대표적으로 Ruby on Rails(RoR)는 블로그 사이트를 15분만에 만들어내는 것으로 큰 관심을 모았다.[3] RoR과 같은 웹 어플리케이션 프레임워크는 모델, 뷰, 컨들롤러 구조에서 모델을 데이터베이스와 손쉽게 연동할 수 있어 인상 깊다.
  • 졸업논문/요약본 . . . . 1 match
         Web environment has became a standalone platform. Object-oriented languages, such as python, are suitable for web. Django is a web application framework written by python, and helps web developers writting web application more agile by abstracting database. Django provides high level abstraction on database, higher than CLI which uses ODBC. Django, for instance, creates database tables when developer writes classes in python, and modifies tables when developer modifies classes in python. In addition, django helps developers using database on host-language(python) level by abstracting insertion, deletion, update, retrieving of recodes to class method. Therefore, web developers make programs more agile.
  • 졸업논문/참고문헌 . . . . 1 match
         [3] Costa, "Creating a weblog in 15 minutes", http://www.rubyonrails.org/screencasts, July. 2006.
         [8] http://code.djangoproject.com/browser/django/trunk/django/db/models/query.py
  • 창섭/BitmapMasking . . . . 1 match
          여기서 SRCCOPY 라는 부분이 있는데 이게 래스터 연산자(Rastor OPeration) 이다. 종류는 다음과 같다.
  • 타도코코아CppStudy . . . . 1 match
          * RandomFunction
          * [AcceleratedC++]
  • 타도코코아CppStudy/0731 . . . . 1 match
         || 랜덤워크 || [CherryBoy] || Upload:randomWalk_CherRy.cpp|| . ||
         || ZeroWiki:RandomWalk2 || [CherryBoy] || Upload:randomWork2_CheRy.cpp || 다시 평가부탁드립니다 - [CherryBoy] ||
          * randomwalk2 거의 끝나 간다.~~ 우하하하하~~ 알바 끝나고 와서 올립니다.~~ [수진]
  • 토비의스프링3 . . . . 1 match
          * [http://www.yes24.com/24/Goods/4020006?Acode=101 토비의 스프링 3]
  • 토비의스프링3/오브젝트와의존관계 . . . . 1 match
          * [http://www.yes24.com/24/goods/267290?scode=029 리팩토링](마틴 파울러, 켄트 벡 공저)
          * 1. 스프링이 빈 팩토리를 위한 오브젝트 설정을 담당하는 클래스라고 인식할 수 있도록 @Configuration이라는 애노테이션을 추가한다.
         @Configuration
         @Configuration
          * 1. 애플리케이션 컨텍스트는 ApplicationContext타입의 오브젝트다. 사용시 @Configuration이 붙은 자바코드를 설정정보로 사용하려면 AnnotationConfigApplicationContext에 생성자 파라미터로 @Configuration이 붙은 클래스를 넣어준다.
          * @Configuration이 붙은 클래스는 애플리케이션 컨텍스트가 활용하는 IoC 설정정보가 된다. 내부적으로는 애플리케이션 컨텍스트가 @Configuration클래스의 @Bean메소드를 호출해서 오브젝트를 가져온 것을 클라이언트가 getBean() 메소드로 요청할 때 전달해준다.
          * <beans> : @Configuration에 대응한다. 여러 개의 <bean>이 들어간다.
         @Configuration
  • 튜터링/2011/어셈블리언어 . . . . 1 match
         .code
          * library
  • 튜터링/2013/Assembly . . . . 1 match
         arrayB BYTE 12h, 34h, 56h, 78h;
         arrayW WORD 1324h, 5768h;
         arrayD DWORD 87654321h;
          .code
         arrayD BYTE 100h, 200h, 300h
          indirect operands indexed operands
  • 포항공대전산대학원ReadigList . . . . 1 match
          “Contemporary Logic Design”, Randy H. Katz, Benjamin/Cummings 1994.
         “Operating System Concepts: 6th Edition”, Silberschatz, Galvin, and Gagne John Wiley & Sons, 2004.
         “Operating System Principles”, Lubomir F,. Bic and Alan C. Shaw, Prentice-Hall, 2003.
         “Types and Programming Languages”, Benjamin C. Pierce, The MIT Press.
         “Concepts of Programming Languages” (6th edition), Robert W. Sebesta, Addison Wesley.
  • 프로그래밍 . . . . 1 match
          * [http://www.topcoder.com]
          * 2005.11.18 [프로그래밍/DigitGenerator]
  • 하드웨어에따른프로그램의속도차이해결 . . . . 1 match
          * ["3DAlca"]프로젝트에서 이 게임을 펜티엄3 800 지포트2 MX 에서 돌렸을때는 정상 속도로 게임이 돌아 가는데 펜티엄 4 1.8GA Raden 9000 pro 에서는 거의 제어할 수 없는 속도가 나온다.
  • 행사 . . . . 1 match
         === CodeRace ===
  • 호너의법칙/박영창 . . . . 1 match
         = code =
         programmed by eternalbleu (youngchang park, 2001 1612)
         #define PARAM_X 2.0
          double x_param = PARAM_X;
          std::cout<<horner_func(x_param, coefficient, 0)<<std::endl;
         @param x_param 인자로 전달될 미지수의 값.
         @param coefficient 인자로 전달될 계수의 배열.
         @param exponential 미지수 차수.
         double horner_func(double x_param, double* coefficient, int exponential)
          // General Recursion Call
          return horner_func(x_param, coefficient, exponential+1)*x_param + coefficient[exponential];
  • 회원자격 . . . . 1 match
          * 유지조건 : 3개월(1분기) 동안 ZeroPage 내에서 활동(OMS, 스터디 및 프로젝트, ZP행사참여(Code Race, 지금그때, 데블스캠프 등))이 4회 이상 있어야 한다. 단, Devil's Camp는 1일 참여시 1회로 간주
Found 570 matching pages out of 7555 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.4616 sec