- 영호의해킹공부페이지 . . . . 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/김아영"]||
- 데블스캠프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]]
- 변준원 . . . . 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을 해서 이 문제를 다시 풀어보라. 그 친구는 내가 전혀 생각하지 못했던 것을 제안하지는 않는가? 그 친구로부터 무엇을 배울 수 있는가? 둘의 시너지 효과로 둘 중 아무도 몰랐던 어떤 것을 함께 고안해 내지는 않았는가?
- 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 이라고 분류하는 듯하다.
- 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
- 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] (배철수, 배순탁)
- 데블스캠프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)의 개수만을 알고 싶을 때 사용한다.
- 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= 링크]
- 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);
- 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
- 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) {
- 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
- 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())));
- 비행기게임/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.
- 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
- 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"/>
- 조영준 . . . . 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]
- 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, 에러상태를 가리킨다.
- 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)
- 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):
- 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)
- 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)
- 기본데이터베이스/조현태 . . . . 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 || 장혁수 ||
- 오목/진훈,원명 . . . . 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
- 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
- CodeRace/Rank . . . . 3 matches
= CodeRace/Rank =
[CodeRace]
- 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 : 볼거 없다. 그냥 적외선으로 랜 하는거다.
- 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;
- 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
- 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/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 - 검색 관련 키워드
- RandomWalk2/TestCase2 . . . . 3 matches
c:\RandomWalk2Test> alltest.bat test.exe
{{{~cpp C:\RandomWalk2Test> fc output1.txt e-output1.txt}}}를 통해 정답과 자동 비교를 해볼 수 있습니다.
["RandomWalk2"]
- 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)입니다. 여기에
- 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')
- 데블스캠프2003/셋째날 . . . . 3 matches
[RandomWalk2/Leonardong]
[Random Walk2/곽세환]
[RandomWalk/창재]
- 서지혜 . . . . 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]
- 오목/곽세환,조재화 . . . . 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 )
- 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 창에서 찾아가기 용이하게 바뀝니다. 모든 파일 전체 검색 역시 쉽게 할수 있습니다.
- 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>
- 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");
- 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]
- 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에 대해 찾아보니 결국 제가 한 방법이 그 방법이군요. 알고리즘자체는 좀 틀리지만 (전 리커시브를 이용...)
- 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] - 원서
- 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
- 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
- ProjectPrometheus/UserStory . . . . 2 matches
||Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다. ||
* Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
- 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
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의 변경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:
- 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참조)
- 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();
- 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]
- [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.
- 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]
- 데블스캠프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
- 데블스캠프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
- 몸짱프로젝트 . . . . 2 matches
* 참고한 책 : ProgrammingPearls(번역서 [생각하는프로그래밍])
|| RandomWalk || [RandomWalk/황재선] ||
- 새싹교실/2011/무전취식/레벨10 . . . . 2 matches
// add your code here //아직 코드까지는 못짰어요;
// add your code here
- 새싹교실/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
[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
- 장용운 . . . . 2 matches
* CodeRace([Code Race/2015.5.15/참가상GAY득]) 강사
- 정모/2006.2.2 . . . . 2 matches
== CodeRace 실시 결과 ==
[CodeRace]
- 조동영 . . . . 2 matches
,[Randomwalk/조동영]
* [RandomWalk]라...-_-ㅋ;; - 이승한
- 타도코코아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 || . || . || . ||
- 프로그램내에서의주석 . . . . 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]
- 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);
- 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] 으로 관리되고 있음)
- 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);
- 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성적처리_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]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
- 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분
- 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
= CodeRace 아영 보창 =
bool operator() (const Word* a, const Word* b)
- 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
- 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
- CxImage 사용 . . . . 1 match
6. link-> object/library modules 에 Debug/CxImages.lib
// TODO: Add your specialized creation code here
== Drop and Drag 실행 가능 ==
- 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 ==
- 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
- 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)이라고도 함.''
- 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보다 매우 빠릅니다. :)
- 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를 요구하지 않는다.
- HangulProcess . . . . 1 match
[Unicode] : 유니코드
- HardcoreCppStudy/첫숙제 . . . . 1 match
RandomWalk <-역시 참조할 것
- 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.
- IsDesignDead . . . . 1 match
* http://jstorm.pe.kr/BBS/view.php3?id=106&code=Tip&start=0 - JStorm 진호선배 편역.
- 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
comNum[0] = (int)(Math.random() * 10 +1);
comNum[1] = (int)(Math.random() * 10 +1);
comNum[2] = (int)(Math.random() * 10 +1);
- 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이 안되더군요;
- JumpJump/김태진 . . . . 1 match
// codersHigh2013
- LinuxSystemClass/Exam_2004_1 . . . . 1 match
Rate Scheduling 란?
- MFCStudy_2002_2 . . . . 1 match
* 아마.. 내가 이정도 때 했구나.. -_-;; 그때 딱 도움 되었던게.. 남의 source 훔쳐 보기. -_-+ www.codeguru.com 가서 많이 받아서 봤지.. -_-;; MFC 잘쓰는데는 꽤나 도움이 될거구만.. 뭐.. 거 가보면 mfc 내에서 엄청나게 상속받아서 지들이 만들어 놓은게 많아서 왠만한건 분석도 못하는게 많이 있지만. --; 그래도 도움 짱이지... 지금 쓰질 않아서.. -_-; 기억이 하나도 안나는구만. 에또.. 제프 아저씨와 찰스 아저씨의 책을 읽어 보도록 해요. --; 세미나 하는 사람들한테 물어봐 그건.. --;; 그럼.. 휘릭~ -- guts
- 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()}}})
- 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 추천)
- 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]
- OperatingSystemClass/Exam2006_2 . . . . 1 match
그 외에.. raid문제. 01학번 김모군이 "이거 내면 짐승이다"라고 했는 정말로 나왔음-_-; 그 말에 덧붙여 01학번 강모군이 "모니터 내면 짐승이다"라고 했는데 역시 나왔음. 말이 씨가 된다더니 옛말 틀린거 하나도 없다.
5. Raid의 정의와, 사용하는 이유, 각 레벨 별 특징을 약술하시오.
[OperatingSystemClass]
- OutlineProcessorMarkupLanguage . . . . 1 match
현재 RSS 리더에서 피드를 공유하는 목적으로 주로 이용되는 포맷으로, Radio UserLand 의 DaveWiner 가 개발했다.
- 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 급을 들 수 있다.
- ProjectSemiPhotoshop/요구사항 . . . . 1 match
* Contrast Stretched (O 흑백)
* Range-highlighting(범위-강조) (O 흑백)
* Parabola
* First Parabola (O 흑백)
* Second Parabola (O 흑백)
* Contrast Stretching (O)
* Histogram Equalisation(O)
- 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 이라고 한다. 관심이 가는중.
- 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((time(0))); // 랜덤
row = rand() % 10 + 1;
col = rand() % 10 + 1;
direction = rand() % 8 + 1;
["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(time(0));
line = rand() % num ;
col = rand() % num ;
int direction = rand() % 8;
direction = rand() % 8; // 랜덤으로 점이 움직이는 방향
["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/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분간 수정. 다시 질문. 답변을 받고 몇군데를 다시 고쳐서 업로드함.
- 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
- 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])
- RubyOnRails . . . . 1 match
= Ruby On Rails 는 ? =
* [http://www.rubyonrails.org/]
* Ruby 로 웹 개발을 손쉽게 해주는 Framework
* [http://beyond.daesan.com/articles/2006/07/28/learning-rails-1 대안언어축제황대산씨튜토리얼]
- 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
- 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)
- 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);
- 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 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
- TemplateLibrary . . . . 1 match
text 나 code generation 을 위한 라이브러리들을 일컫는 말.
- UnitTestFramework . . . . 1 match
UnitTest code 작성을 위한 Framework
* http://xprogramming.com
- 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.
- 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);
- 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
- 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) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
- callusedHand/projects/algorithms . . . . 1 match
* http://www.topcoder.com
- 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]
- 고한종/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
- 니젤프림/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();
- 데블스캠프/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 트렐로]에 있을지도 모릅니다. 아카이빙을 잘 안해서.. - [서지혜]
- 데블스캠프2005/RUR-PLE/Harvest . . . . 1 match
#main source code
- 데블스캠프2005/목요일후기 . . . . 1 match
3. Vpython code 금방 넘어감!
- 데블스캠프2006/금요일 . . . . 1 match
[CodeRace/데스크탑검색]
- 데블스캠프2009/화요일후기 . . . . 1 match
== Robocode - 장혁수 ==
== Abstractionism - 변형진 ==
- 몸짱프로젝트/BinarySearchTree . . . . 1 match
=== After Rafactoring ===
- 문자반대출력/허아영 . . . . 1 match
ascii code를 봐서 MSB ( most significant bit)가 1 이면 아마.. 2바이트문자일 겁니다.. - 임인택
- 새싹교실/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/앞반뒷반그리고App반 . . . . 1 match
* [The C Programming Language]. 일단은.
* 오늘은 포인터를 배웠어요. ********별-. 선언할 때 int *a;로 선언하게 되면 *a는 a의 주소에 있는 값을 나타내는거였지요. 음.. 하다가 현 형이 하던 프로젝트에 잠깐 지워놓고 예시를 들었다가 xcode를 끄는 바람에 소스가 날라가버렸지요.... 포인터가 있으면 지정된 크기보다 큰 용량의 자료도 불러오기 쉽다는 것도 배웠구요. 아무튼 유용하게 쓸 수 있을거 같아요 -[김태진]
- 새싹교실/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
[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/서상현"]
- 손동일 . . . . 1 match
[8queen/손동일] [스택큐/손동일] [RandomWalk/손동일] [오목/재선,동일]
- 오페라의유령 . . . . 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
* jsfiddle: http://jsfiddle.net/user/codeonwort/
- 인수/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.
- 정모/2002.11.13 . . . . 1 match
Recoder : xxx
- 정모/2006.9.7 . . . . 1 match
Ruby On Rails - 현태, 상협, 건영, 수생, 아영
- 정모/2012.8.22 . . . . 1 match
* [고한종]학우의 Mac | Xcode | iOS를 반년 정도 쓰면서 느낀 경험담. -매우 난잡함-
- 정모/2013.4.8 . . . . 1 match
= google code 잼 =
- 정모/2013.7.8 . . . . 1 match
* code formatting에 대한 내용을 공부. 프로젝트에 대한 것을 하나 정해서 그걸 리펙토링 하는 방향으로 진행 방향정함.
* 스터디맴버 각각 : dynamic Graph Greedy(위상 정렬과 강연결과 관련)부분을 공부.
- 제로Wiki . . . . 1 match
code...
- 졸업논문/요약본 . . . . 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.
- 타도코코아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/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
- 행사 . . . . 1 match
=== CodeRace ===
Found 243 matching pages out of 7555 total pages (2010 pages are searched)
You can also click here to search title.