- MobileJavaStudy/SnakeBite/FinalSource . . . . 26 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;
- 실습 . . . . 25 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위) : [이민석], [정진경], [홍성현]
- 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 은 아직 재귀함수를 많이 접해보지 않은 신입회원들에게는 어렵게 다가간거 같다. - 상협
- TestFirstProgramming . . . . 16 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"]
- 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을 해서 이 문제를 다시 풀어보라. 그 친구는 내가 전혀 생각하지 못했던 것을 제안하지는 않는가? 그 친구로부터 무엇을 배울 수 있는가? 둘의 시너지 효과로 둘 중 아무도 몰랐던 어떤 것을 함께 고안해 내지는 않았는가?
- 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
- 정모/2011.4.4/CodeRace . . . . 14 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;
- EffectiveC++ . . . . 11 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]]
- RoboCode . . . . 10 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] 페이지도...
- Ruby/2011년스터디/세미나 . . . . 10 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는 특별한 더 좋은 다른 일정이 없는 한 다음주나 다다음주 정모에서 진행하고자 합니다. - [김수경]
- 프로그래밍/장보기 . . . . 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;
- SeminarHowToProgramItAfterwords . . . . 9 matches
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라는 것을 보여주고 싶어서였습니다. 촬영이 너무 오래 비추었는지 .. 죄송합니다.)
- 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);
- 김희성/MTFREADER . . . . 8 matches
int ErrorCode;
ErrorCode=0;
ErrorCode=FILE_LOAD_ERROR;
int LastErrorCode(); //최근에 일어난 클래스 내부의 에러를 반환한다.
ErrorCode=OUT_OF_MEMORY_ERROR;
ErrorCode=OUT_OF_MEMORY_ERROR;
//offset_array
//offset_array
int _MFT_READER::LastErrorCode()
return ErrorCode;
- 데블스캠프2011/다섯째날/HowToWriteCodeWell . . . . 7 matches
* [데블스캠프2011/다섯째날/How To Write Code Well/송지원, 성화수]
* [데블스캠프2011/다섯째날/How To Write Code Well/권순의, 김호동]
* [데블스캠프2011/다섯째날/How To Write Code Well/김준석, 서영주]
* [데블스캠프2011/다섯째날/How To Write Code Well/정의정, 김태진]
* [데블스캠프2011/다섯째날/How To Write Code Well/임상현, 서민관]
* [데블스캠프2011/다섯째날/How To Write Code Well/강소현, 구자경]
* [데블스캠프2011/다섯째날/How To Write Code Well/박정근, 김수경]
- 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) {
- JollyJumpers/황재선 . . . . 6 matches
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
e.printStackTrace();
import java.util.ArrayList;
import java.util.Iterator;
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
e.printStackTrace();
Iterator i = set.iterator();
public void printResult(ArrayList list) {
ArrayList list = new ArrayList();
import junit.framework.TestCase;
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
- 데블스캠프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())));
- 데블스캠프2011 . . . . 6 matches
|| 1 || [송지원] || [:데블스캠프2011/첫째날/오프닝 오프닝] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 8 ||
|| 2 || [송지원] || [:데블스캠프2011/첫째날/오프닝 오프닝] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 9 ||
|| 3 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 10 ||
|| 4 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [김동준] || [:데블스캠프2011/둘째날/Cracking Cracking - 창과 방패] || [김준석] || [:데블스캠프2011/셋째날/RUR-PLE RUR-PLE] || [이승한] || [:데블스캠프2011/넷째날/ARE Android Reverse Engineering] || [이정직] || [:데블스캠프2011/다섯째날/Lua Lua] || 11 ||
|| 5 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [김동준] || [:데블스캠프2011/둘째날/Cracking Cracking - 창과 방패] || [김준석] || [:데블스캠프2011/셋째날/RUR-PLE RUR-PLE] || [이승한] || [:데블스캠프2011/넷째날/Git Git-분산 버전 관리 시스템] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 12 ||
|| 7 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [이승한] || [:데블스캠프2011/넷째날/Git Git-분산 버전 관리 시스템] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 2 ||
|| 8 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [서지혜] || [:데블스캠프2011/넷째날/루비 루비] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 3 ||
|| 9 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [서지혜] || [:데블스캠프2011/넷째날/루비 루비] || [김수경] || [:데블스캠프2011/다섯째날/Cryptography Cryptography], 회고 || 4 ||
- 비행기게임/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
- CodeRace/Rank . . . . 5 matches
= CodeRace/Rank =
[CodeRace]
- 서지혜 . . . . 5 matches
Someday you'll say something that you'll wish could take back - drama, House
나의 [http://rabierre.wordpress.com 블로그]
* super super programmer - Guru가 되고 싶어요.
1. Training 1000시간
1. TopCoder 목표점수 1000점
== TRACE ==
* ~~레이튼의 강건너기 see also [정모/2011.4.4/CodeRace]~~
1. Training Diary
* 갑작스레 엄청난 이민의 압박을 받아 Ruby on Rails를 시작하려 함. ~~가볍기로 소문났으니 12/31까지 toy 만들어보기로 목표.~~
* 기념으로 Jetbrain사의 RubyMine구매 (12/21 지구멸망기념으로 엄청 싸게 팔더라)
1. [https://github.com/Rabierre/my-calculator my calculator]
1. Training Diary
* 망함.. 프로젝트가 망했다기 보다 내가 deliberate practice를 안해서 필요가 없어졌음...
* 디버거를 사용할 수 없는 환경을 난생 처음 만남. print문과 로그만으로 디버깅을 할 수 있다는 것을 깨달았다. 정보 로그, 에러 로그를 분리해서 에러로그만 보면 편하다. 버그가 의심되는 부분에 printf문을 삽입해서 값의 변화를 추적하는 것도 효과적이다(달리 할수 있는 방법이 없다..). 오늘 보게된 [http://wiki.kldp.org/wiki.php/HowToBeAProgrammer#s-3.1.1 HowToBeAProgrammer]에 이 내용이 올라와있다!! 이럴수가 난 삽질쟁이가 아니었음. 기쁘다.
1. Scarab
* [SmalltalkBestPracticePatterns]
- 영호의해킹공부페이지 . . . . 5 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
- 조영준 . . . . 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]
- 지도분류 . . . . 5 matches
||["ExtremeProgramming"]|| Agile Methodology 인 ExtremeProgramming 에 대한 전반적 설명||
|| CodeConvention,CodeStyle || Code 의 관습, 규칙 ||
|| CodeCoverage || 작성한 Test 가 Code 를 얼마나 수용하나 검사해주는 도구들 ||
||ProgrammingLanguageClass ||
||OperatingSystemClass ||
["zennith/MemoryHierarchy"]
- 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, 에러상태를 가리킨다.
- CodeConvention . . . . 4 matches
* [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"]
- DataCommunicationSummaryProject/Chapter9 . . . . 4 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 : 볼거 없다. 그냥 적외선으로 랜 하는거다.
- ImmediateDecodability/문보창 . . . . 4 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])
- 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):
- REFACTORING . . . . 4 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"]
- RandomWalk2/영동 . . . . 4 matches
사실 이제 Random도 아니죠... Scheduled에 가깝겠죠.
//RandomWalk2
//Random Walk
작성자: ["Yggdrasil"]
["RandomWalk2"]
- ScheduledWalk/임인택 . . . . 4 matches
package RandomWalk;
public class RandomWalk {
public RandomWalk() {
char c = schedule.charAt(i);
e.printStackTrace();
new RandomWalk();
- UML/CaseTool . . . . 4 matches
=== Diagramming ===
''Diagramming'' in this context means ''creating'' and ''editing'' UML [[diagram]]s; that is diagrams that follow the graphical notation of the Unified Modeling Language.
The diagramming part of the Unified Modeling Language seems to be a lesser debated part of the UML, compared to code generation.
The UML diagram notation evolved from elderly, previously competing notations. UML diagrams as a means to draw diagrams of - mostly - [[Object-oriented programming|object oriented]] software is less debated among software developers. If developers draw diagrams of object oriented software, there is widespread consensus ''to use the UML notation'' for that task. On the other hand, it is debated, whether those diagrams are needed at all, on what stage(s) of the software development process they should be used and whether and how (if at all) they should be kept up-to date, facing continuously evolving program code.
=== Code generation ===
''[[Code generation]]'' in this context means, that the user creates UML diagrams, which have some connoted model data, from which the UML tool derives (through a conversion process) parts or all of the [[source code]] for the software system that is to be developed. Often, the user can provide some skeleton of the program source code, in the form of a source code [[template]] where predefined tokens are then replaced with program source code parts, emitted by the UML tool during the code generation process.
There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML. On the other hand, the idea of completely leaving the "code level" and start "programming" on the UML diagram level is quite debated among developers, and at least, not in such widespread use compared to other [[software development]] tools like [[compiler]]s or [[Configuration management|software configuration management systems]]. An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. There are developers that even state that "the Code ''is'' the design" (articles [http://www.developerdotstar.com/mag/articles/reeves_design_main.html] by Jack W. Reeves [http://www.bleading-edge.com/]).
''Reverse engineering'' in this context means, that the UML tool reads program source code as input and ''derives'' model data and corresponding graphical UML diagrams from it (as opposed to the somewhat broader meaning described in the article "[[Reverse engineering]]").
Reverse engineering encloses the problematic, that diagram data is normally not contained with the program source, such that the UML tool, at least in the initial step, has to create some ''random layout'' of the graphical symbols of the UML notation or use some automatic ''layout algorithm'' to place the symbols in a way that the user can understand the diagram. For example, the symbols should be placed at such locations on the drawing pane that they don't overlap. Usually, the user of such a functionality of an UML tool has to manually edit those automatically generated diagrams to attain some meaningfulness. It also often doesn't make sense to draw diagrams of the whole program source, as that represents just too much detail to be of interest at the level of the UML diagrams. There are also language features of some [[programming language]]s, like ''class-'' or ''function templates'' of the programming language [[C plus plus|C++]], which are notoriously hard to convert automatically to UML diagrams in their full complexity.
There are UML tools that use the attribute ''round trip'' (sometimes also denoted as ''round trip engineering'') to connote their ability to keep the ''source code'', the ''model data'' and the corresponding ''UML diagrams'' ''in sync''.
This means that the user should be able to change either the ''model data'' (together with the corresponding diagrams) or the ''program source code'' and then the UML tool updates the other part automatically.
Rational Software Architect, Together가 유명하고, 오픈 소스로는 Argo, Violet 이 유명하다.
UML 케이스 툴과 달리 Visio 같은 경우에는 Diagramming 기능만을 제공한다. Diagramming Tool 이라고 분류하는 듯하다.
- 데블스캠프/2013 . . . . 4 matches
|| 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 트렐로]에 있을지도 모릅니다. 아카이빙을 잘 안해서.. - [서지혜]
- 장용운 . . . . 4 matches
* CodeRace([Code Race/2015.5.15/참가상GAY득]) 강사
- 정모/2006.2.2 . . . . 4 matches
== CodeRace 실시 결과 ==
[CodeRace]
- ContestScoreBoard/차영권 . . . . 3 matches
void RankTeam(Team *team, bool *joined);
RankTeam(team, joined);
void RankTeam(Team *team, bool *joined)
- JavaStudy2002/영동-2주차 . . . . 3 matches
System.out.println("RandomWalk");
Random rand=new Random();
way=rand.nextInt()%8;
작성자: ["Yggdrasil"]
- 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에 관한 글을 순식간에 읽었습니다 ^^ 이런 방법이 스터디의 방법으로 자리잡는다면 초보자의 실력향상에 엄청난 도움이 되겠군요
- RandomWalk2/TestCase2 . . . . 3 matches
c:\RandomWalk2Test> alltest.bat test.exe
{{{~cpp C:\RandomWalk2Test> fc output1.txt e-output1.txt}}}를 통해 정답과 자동 비교를 해볼 수 있습니다.
["RandomWalk2"]
- SignatureSurvey . . . . 3 matches
HTML Template 부분을 Generating 하는 부분을 하던중, 디자이너가 툴로 만든 HTML 코드를 분석해볼때 SigntureSurvey 의 방법을 적용해보면 어떤 일이 일어날까 의문이 들었다. 그래서 간단하게 실험해보고, 어떠한 View 를 얻을 수 있을까 구경해보다.
enterCode = Str("\n")
(enterCode, repl_enter),
정확히 분석을 한 것은 아니지만. <> 태그 안으로 쓴 글자수가 같다면 화면상에서도 비슷한 것을 보이게 하기 위해 C & P 를 했을 확률이 높다. 그러면 그 부분에 대해서 looping 을 하는 식으로 묶으면 될것 같다. 종이로 찍어놓고 보면 반복되는 부분에 대해서 일반화된 패턴이 보인다는 것을 알 수 있다. 그 부분에 대해 적절히 1차적으로 검색을 하고, generating 할때의 단위들을 끄집어내면 되는 것이다.
처음써봐서 완벽하게 확신이 들진 않지만, SignatureSurvey 를 사용하면 Duplication Code 를 찾는 방법으로 일반화를 시킬 수 있지 않을까 하는 상상을 해본다.
- 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)입니다. 여기에
- 경시대회준비반/BigInteger . . . . 3 matches
== Code ==
* and its documentation for any purpose is hereby granted without fee,
* purpose. It is provided "as is" without express or implied warranty.
const char BigIntPROGRAMNAME[] = { "BigInteger" };
// The integer array to hold the number
// Start of the location of the number in the array
// End of the location of the number in the array
// Determines valid data range
// deallocates the array
// the array with the `fill' value
// Character array constructor
// Straight pen-pencil implementation for addition
// Straight pen-pencil implementation for subtraction
BigInteger& Subtract(BigInteger const&) const;
// Straight pen-pencil implementation for multiplication
// Straight pen-pencil implementation for division and remainder
// Overloaded Binary Operators
friend BigInteger& operator+(BigInteger const&, BigInteger const&);
friend BigInteger& operator-(BigInteger const&, BigInteger const&);
friend BigInteger& operator*(BigInteger const&, BigInteger const&);
- 데블스캠프2003/셋째날 . . . . 3 matches
[RandomWalk2/Leonardong]
[Random Walk2/곽세환]
[RandomWalk/창재]
- 이영호/시스템프로그래밍과어셈블리어 . . . . 3 matches
System Programming을 통해 Application층 프로그래밍의 본질을 깨닫기 시작했으며, 가장 중요한 것이 Assembly란 것을 다시 한번 깨달았다.
프로그래머라면 Code의 본질을 알아야한다. 그것을 이루는 것이 Assembly이다. 이것을 수행하지 않은 프로그래머는 프로그래머가 아니라 Coder이다. Assembly로 특정 함수를 따라다니며 실제로 익히는 방법은 MSDN에서 나와있는 것을 그대로 베끼는 것보다 현명할지 모른다. 프로그래밍은 배우는것이 아니라 직접 Code를 짜보는 것이다. MSDN을 보는 것과 debug로 따라 가보는 것은 그 차이가 크다.
- ACM_ICPC/2013년스터디 . . . . 2 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= 링크]
- APlusProject/ENG . . . . 2 matches
=== .net Framework ===
설치할때 필요한 .NET Framework 파일은 바로 위에 파일 두개 나누어져 있습니다.
=== Operator 메뉴얼 ===
Upload:APP_OperatorManual_0607.zip -- 이전문서
Upload:APP_OperatorManual_0608.zip -- ver 1.0 (최종문서) - 수정끝-QA승인됨
Upload:APP_SourceCode_0607.zip -- 이전문서
Upload:APP_SourceCode_0608.zip -- ver 1.0 (최종문서) - 수정끝-QA승인됨
해결 방법: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 폴더로 이동
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322>aspnet_regiis.exe -i
Upload:APP_Program0608_3.zip -- 최종
- BasicJAVA2005/실습1/송수생 . . . . 2 matches
Random number = new Random();
- Celfin's ACM training . . . . 2 matches
|| No. || Part || Problem No || Problem Name || Develop[[BR]]Period || Source Code ||
|| 11 || 10 || 111007/10249 || The Grand Dinner || 1 hour || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4188&title=TheGrandDinner/하기웅&login=processing&id=celfin&redirect=yes The Grand Dinner/Celfin] ||
|| 18 || 13 || 111307/10209 || Is This Integration? || 2 hours || [http://165.194.17.5/wiki/index.php?url=zeropage&no=4265&title=IsThisIntegration?/하기웅&login=processing&id=&redirect=yes IsThisIntegration/Celfin] ||
|| 24 || 1 || 110105/10267 || Graphical Editor || many days || [Graphical Editor/Celfin] ||
|| No. || Problem No. || Problem Name || Error || Source Code ||
- CodeRace/20060105/아영보창 . . . . 2 matches
= CodeRace 아영 보창 =
bool operator() (const Word* a, const Word* b)
- ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 2 matches
* 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 . . . . 2 matches
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
- 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;
- EightQueenProblemSecondTry . . . . 2 matches
|| 이선우 ||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)이라고도 함.''
- Gof/Mediator . . . . 2 matches
MediatorPattern은 객체들의 어느 집합들이 interaction하는 방법을 encapsulate하는 객체를 정의한다. Mediator는 객체들을 서로에게 명시적으로 조회하는 것을 막음으로서 loose coupling을 촉진하며, 그래서 Mediator는 여러분에게 객체들의 interactions들이 독립적으로 다양하게 해준다.
예를 들면, FontDialogDirector는 다이얼로그 박스의 도구들 사이의 mediator일 수 있다. FontDialogDirector객체는 다이얼로그 도구들을 알고 그들의 interaction을 조정한다. 그것은 도구들 사이의 communication에서 hub와 같은 역할을 한다.
다음 interaction diagram은 객체들이 리스트박스의 선택에서 변화를 다루기 위해 협동하는 방법을 묘사하고 있다.
FontDialogDirector 추상화가 클래스 library를 통하하는 방법은 다음과 같다.
== Collaborations ==
4. MediatorPattern은 객체가 협동하는 방법을 추상화 시킨다. Mediation를 독립적인 개념으로 만들고 하나의 객체에 캡슐화하는 것은 여러분으로 하여금 객체의 행위는 제쳐두고 그 interaction에 집중하게 해준다. 이는 객체가 시스템 내에서 어떻게 interact하는 방법을 명확히 하는데 도움을 준다.
5. MediatorPattern은 제어를 집중화한다. Mediator는 interaction의 복잡도를 mediator의 복잡도와 맞바꿨다. Mediator가 protocol들을 encapsulate했기 때문에 colleague객체들 보다 더 복잡하게 되어질 수 있다. 이것이 mediator를 관리가 어려운 monolith 형태를 뛰게 만들 수 있다.
또 다른 방법은 colleague들이 보다 더 직접으로 communication할 수 있도록 특별한 interface를 mediator에게 심는 것이다. 윈도우용 Smalltalk/V가 대표적인 형태이다. mediator와 통신을 하고자 할 때, 자신을 argument로 넘겨서 mediator가 sender가 누구인지 식별하게 한다. Sample Code는 이와 같은 방법을 사용하고 있고, Smalltalk/V의 구현은 Known Uses에서 다루기로 하겠다.
== Sample Code ==
ET++[WGM88]와 THINK C class library[Sm93b]는 다이얼로그에서 widget들 사이에 mediator로서 director와 유사한 객체를 사용한다.
윈도우용 Smalltalk/V의 application구조는 mediator 구조에 가반을 두고 있다.[LaL94] 그런 환경에서 application은 윈도우를 pane들의 모음으로 구성하고 있다. library는 몇몇의 이미 정의된 pane들을 가지고 있다. 예를 들자면 TextPane, ListBox, Button등등이 포함된다. 이러한 pane들은 subclassing없이 이용될 수 있다. Application 개발자는 단지 inter-pane coordination할 책임이 있는 ViewManager만 subclassing할 수 있다. ViewManage는 Mediator이고 각각의 pane들은 자신의 owner로서 단지 자신의 ViewManager를 알고 있다. pane들은 직접적으로 서로 조회하지 않는다.
다음 object diagram은 run-time에 application의 snapshot을 보여주고 있다.
유사한 application은 Unidraw drawing framework에서 나타나고[VL90] connectors사이에 연결성 제약들을 적용하는 CSolver라 불리는 class를 사용한다. 그래픽 편집기에서 객체들은 다른 방법으로 서로 다른 객체들을 짜집는 것으로 보일 수 있다. connector들은 연결성이 자동적으로 관리되는 그림 편집기나 회로 설계 시스템과 같은 application들에서 유용하다. CSolver는 객체들 사이에 mediator이다. 그것은 연결제약을 해결하고, connector들의 위치를 그것들을 반영하기 위해서 update한다.
- Gof/Singleton . . . . 2 matches
* Instance operation (클래스의 메소드)을 정의한다. Instance 는 클라이언트에게 해당 Singleton의 유일한 인스턴스를 접근할 수 있도록 해준다.
=== Collaborations ===
* 클라이언트는 오직 Singleton의 Instance operation으로만 Singleton 인스턴스에 접근할 수 있다.
4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
5. class operation 보다 더 유연하다. 패키지에서 Singleton의 기능을 수행하기위한 또다른 방법은 class operation들을 사용하는 것이다. (C++에서의 static 함수나 Smalltalk에서의 class method 등등) 하지만, 이러한 언어적인 테크닉들은 여러개의 인스턴스를 허용하는 디자인으로 바꾸기 힘들어진다. 게다가 C++에서의 static method는 virtual이 될 수 없으므로, subclass들이 override 할 수 없다.
1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
다음의 예를 보라. C++ 프로그래머는 Singleton class의 Instance operation을 static member function으로 정의한다. Singleton 또한 static member 변수인 _instance를 정의한다. _instance는 Singleton의 유일한 인스턴스를 가리키는 포인터이다.
클래스를 사용하는 Client는 singleton을 Instance operation을 통해 접근한다. _instance 는 0로 초기화되고, static member function 인 Instance는 단일 인스턴스 _Instance를 리턴한다. 만일 _instance가 0인 경우 unique instance로 초기화시키면서 리턴한다. Instance는 lazy-initalization을 이용한다. (Instance operation이 최초로 호출되어전까지는 리턴할 unique instance는 생성되지 않는다.)
* (c) C++ 은 global 객체의 생성자가 translation unit를 통하면서 호출될때의 순서를 정의하지 않는다[ES90]. 이러한 사실은 singleton 들 간에는 어떠한 의존성도 존재할 수 없음을 의미한다. 만일 그럴 수 있다면, 에러를 피할 수 없다.
Smalltalk에서 unique instance를 리턴하는 functiond은 Singleton 클래스의 class method로 구현된다. 단일 인스턴스가 만들어지는 것을 보장하기 위해서 new operation을 override한다. The resulting Singleton class might have the following two class methods, where SoleInstance is a class variable that is not used anywhere else:
2. Singleton class를 subclassing 하기 관련. 주된 주제는 클라이언트가 singleton 의 subclass를 이용할 수 있도록 subclass들의 unique instance를 설정하는 부분에 있다. 필수적으로, singleton 인스턴스를 참조하는 변수는 반드시 subclass의 인스턴스로 초기화되어져야 한다. 가장 단순한 기술은 Singleton의 Instance operation에 사용하기 원하는 singleton을 정해놓는 것이다. Sample Code에는 환경변수들을 가지고 이 기술을 어떻게 구현하는지 보여준다.
더욱더 유연한 접근 방법으로 '''registry of singletons''' 이 있다. 가능한 Singleton class들의 집합을 정의하는 Instance operation을 가지는 것 대신, Singleton class들을 잘 알려진 registry 에 그들의 singleton instance를 등록하는 것이다.
registry 는 string name 과 singletons 을 mapping 한다. singleton의 instance가 필요한 경우, registry에 string name으로 해당 singleton 을 요청한다. registry는 대응하는 singleton을 찾아서 (만일 존재한다면) 리턴한다. 이러한 접근방법은 모든 가능한 Singleton class들이나 instance들을 Instance operation이 알 필요가 없도록 한다. 필요한 것은 registry에 등록될 모든 Singleton class들을 위한 일반적인 interface이다.
Register operation은 주어진 string name으로 Singleton instance를 등록한다. registry를 단순화시키기 위해 우리는 NameSingletonPair 객체의 리스트에 instance를 저장할 것이다. 각 NameSingletonPair는 name과 instance를 mapping한다. Lookup operation은 주어진 이름을 가지고 singleton을 찾는다. 우리는 다음의 코드에서 environment variable이 원하는 singleton의 이름을 명시하고 있음을 생각할 수 있다.
=== Sample Code ===
일단 단순하게, MazeFactory의 subclassing이 필요없다고 가정하자. (잠시 후 subclassing과 관련, 대안적인 방법에 대해 고려해 볼 것이다.) C++ 에서는 static operation인 Instance와 unique instance를 참조하는 static member인 _instance 를 추가함으로서 Singleton 클래스를 구현할 수 있다. 위의 Implementation에서도 언급했듯이 반드시 생성자는 protected로 둠으로서 우발적으로 하나이상의 인스턴스가 생성되는 것을 막는다.
자, 이제 MazeFactory의 subclassing에 대해 생각해보자. MazeFactory의 subclass가 존재할 경우, application은 반드시 사용할 singleton을 결정해야 한다. 여기서는 환경변수를 통해 maze의 종류를 선택하고, 환경변수값에 기반하여 적합한 MazeFactory subclass를 인스턴스화하는 코드를 덧붙일 것이다. Instance operation은 이러한 코드를 구현할 좋은 장소이다. 왜냐하면 Instance operation은 MazeFactory를 인스턴스하는 operation이기 때문이다.
새로운 MazeFactory의 subclass를 정의할때 매번 Instance 가 반드시 수정되어야 한다는 것에 주목하자. 이 application에서야 별다른 문제가 발생하지 않겠지만, 이러한 구현은 framework 내에 정의된 abstract factory들 내에서만 한정되어버린다. (Implementation의 subclass 관련 부분 참조)
InterViews user interface toolkit[LCI+92]는 toolkit의 Session과 WidgetKit 클래스의 unique instance에 접근하지 위해 SingletonPattern을 이용한다. Session은 application의 메인 이벤트를 dispatch하는 루프를 정의하고 사용자 스타일관련 데이터베이스를 저장하고, 하나나 그 이상의 물리적 display 에 대한 연결들(connections)을 관리한다. WidgetKit은 user interface widgets의 look and feel을 정의한다. WidgetKit::instance () operation은 Session 에서 정의된 환경변수에 기반하여 특정 WidgetKit 의 subclass를 결정한다. Session의 비슷한 operation은 지원하는 display가 monochrome display인지 color display인지 결정하고 이에 따라서 singleton 인 Session instance를 설정한다.
많은 pattern들이 SingletonPattern을 사용하여 구현될 수 있다. AbstractFactoryPattern, BuilderPattern, PrototypePattern을 참조하라.
- JavaScript/2011년스터디/JSON-js분석 . . . . 2 matches
* str함수 내에서 object, object array등을 처리할때 재귀적으로 들여쓰기를 처리해준다. 디테일이 살아있어
if (Object.prototype.toString.apply(value) === '[object Array]') {
* '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
//유니코드로 변환하는 과정 : .charCodeAt로 가져온 아스키코드를 toString(16)로 16진수 변환
- 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.
- MoreEffectiveC++/Appendix . . . . 2 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
- Ones/송지원 . . . . 2 matches
|| Run ID || User || Problem || Result || Memory || Time || Language || Code Length ||
== Source Code ==
- PairProgramming . . . . 2 matches
http://pairprogramming.com/images/pairprogrammers.gif
== Pair Programming Approach ==
PairProgramming 을 적용해보는 방법, 스타일 등등
== Pair Programming 에 대한 오해? ==
* Junior : Expert 간 격차에 따른 효율성의 문제 - [http://www.caucse.net/phpwiki/index.php?PairProgramming PairProgramming]
PairProgramming 의 다른 적용 예로서 PairSynchronization 이 있다.
== PairProgramming 경험기 ==
* ExtremeProgrammingPlanning 이라는 책을 보면 해결책을 구할 수 있을 것 같다. (Xp 책들의 장점이자 단점이라면 얇은 두께의 분책이려나.. --a)
* 집단 삽질. --; - 이것은 헤프닝이라고 보는 것이. -_-;; Test Code 에서 둘이 라디안 구하는 공식을 거꾸로 쓰고 '왜 값이 틀리다고 하는거야!' 하며 1시간을 삽질했다는 후문이 있다는. --;
TestFirstProgramming 과 PairProgramming 은 집중도에 관해서는 가장 훌륭한 선택인 것 같다. (단, Pair와의 담합행위가 이루어지면 곤란하겠다. -_-;)
학습목적이 아닌 실질적인 개발을 위한 PairProgramming 으로는 처음인듯 하다. 2주간 격일로 일을 했었는데, XP 스타일로 프로젝트를 진행하였다.
* 보통 코딩을 주도하는쪽이 빨리 지치며 집중력도 떨어지게 된다. 특히 PairProgramming 의 경우는 상대편 Pair에 대한 배려상 해당 시간에 작업 이외의 다른 일을 거의 하지 않는다. (화장실도 자주 안간다;;)
* 자존심문제? - Pair를 의식해서여서인지 상대적으로 Library Reference나 Tutorial Source 를 잘 안보려고 하는 경향이 있기도 하다. 해당 부분에 대해서 미리 개인적 또는 Pair로 SpikeSolution 단계를 먼저 잡고 가벼운 마음으로 시작해보는 것은 어떨까 한다.
* On-Side Customer 와의 PairProgramming - 프로젝트 중간에 참여해서 걱정했었는데, 해당 일하시는 분과 직접 Pair를 하고 질문을 해 나가면서 전체 프로그램을 이해할 수 있었다. 특히 내가 ["BioInfomatics"] 에 대한 지식이 없었는데, 해당 도메인 전문가와의 Pair로서 서로 상호보완관계를 가질 수 있었다.
ProgrammingContest 에 있는 K-In-A-Row 문제를 푸는 일을 했다.
* 집중 - 이번 경우에는 '시간제한' 이라는 것까지 있어서인지; 석천은 더더욱 프로그래밍 자체에 집중했다. (스크립트 언어 스타일의 접근방법과 이전의 TDD 연습도 한몫 거든듯. 조금씩 만들고 결과 확인해보고 조금 또 만들어보고 결과 확인을 했다. 단, 이번엔 Test Code 를 안만들어서, 뒤에가서 버그가 났을때 대체를 못했다는.-_-; 잘될때는 문제가 아니다. 잘 안될때, 문제상황에 대한 대처가 중요하다고 생각.)
== VPP : Virtual Pair Programming ==
장소와 시간 등의 문제로 PairProgramming를 진행하지 못할때에는 Virtual PairProgramming 을 시도 할 수 있다.
넷미팅, VNC 등의 개발 프로그램을 공유할 수 있는 프로그램과 음성채팅 등으로 Virtual PairProgramming을 할 수 있다. (오.. 좋아진 세상~) 단,PairProgramming 에 비해 아쉬운점들이 있다. (관련 책들을 찾아서 보여주지 못한다는 것 등등) 나중에는 PC카메라와 스캐너 등등 이용할 수 있지 않을까. ^^
* http://pairprogramming.com - 관련 사이트
- ProjectPrometheus/UserStory . . . . 2 matches
||Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다. ||
* Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
- R'sSource . . . . 2 matches
name = raw_input("검색하고 싶은 게이머의 이름을 입력하세요 : ")
inputDir = raw_input("""저장 하고 싶은 경로를 지정하세요.(예>c:\\\\replay\\\\) : """)
global keyRace
keyRace = ''
for i in range(int(replayNum), 0, itemNum * -1):
- 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]을 사용하면 더 편하게 할수 있는거 같다. - [상협]
- Refactoring/ComposingMethods . . . . 2 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 . . . . 2 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.''
- SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 2 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.
- SubVersionPractice . . . . 2 matches
[http://zeropage.org/trac/project/browser/ Zeropage SVN 소스 둘러보기]
svn checkout svn://zeropage.org/home/SVN/project/SVN_Practice MyProjectFolder
= Practice =
[CodeRace/20060105]을 checkout해서 자신이 작성한 코드를 올리기
- 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();
- ToyProblems . . . . 2 matches
ToyProblems를 풀게 하되 다음 방법을 이용한다. Seminar:TheParadigmsOfProgramming [http://www.jdl.ac.cn/turing/pdf/p455-floyd.pdf (pdf)]을 학습하게 하는 것이다.
ToyProblems를 풀면서 접하게 될 패러다임들(아마도): CSP, Generators, Coroutines, Various Forms of Recursion, Functional Programming, OOP, Constraint Programming, State Machine, Event Driven Programming, Metaclass Programming, Code Generation, Data Driven Programming, AOP, Generic Programming, Higher Order Programming, Lazy Evaluation, Declarative Programming, ...
'''Programme'''
* ToyProblems 후보 : 구구단, 소수구하기, SpiralArray, 삼각형 그리기, (기타 참가자가 원하는 것 추가 가능. 단 조건은 1학년이 한 시간 내에 풀 수 있는 간단한 문제)
* PairProgramming
희상 - CSP를 응용해 문제를 푸는 것을 듣고 난 후 Alan Kay가 Paradigm이 Powerful Idea라고 했던 것에 고개를 끄덕끄덕 할 수 있었다. 그동안 FP를 맛만 보았지 제대로 탐구하지 않았던 것이 아쉬웠다. FP에 대한 관심이 더 커졌다.
코딩 시간이 부족했다. Code Kata를 해보지 못해서 아쉽다.
- 창준 - Higher Order Programming과 로우레벨에서의 설명(예컨대 단순한 함수 포인터로 설명하는 것)의 차이는 미묘하고, 또 크다. 동사(달리다)를 명사(달림)의 품 안에 넣는 것이다. 이 사고에서 엄청난 차이가 생길 수 있다.
Higer order programming에서 중요한 것은 동사를 명사화해준다는 것인데, Command Pattern도 이와 비슷한 것 같습니다.
CP도 Functor 의 일종이다. ( 예 - Spiral Matrix를 Vector의 방법으로 풀기). CP부터 배우면 CP에서 제시하는 예에서만 적용하는 것으로 갇힐수 있다.
* HTDP (How To Design Programs) http://www.htdp.org/
* The Art and Craft of Problem Solving
- [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.
- erunc0/RoboCode . . . . 2 matches
== What is RoboCode? ==
* [http://www-903.ibm.com/developerworks/kr/robocode/ Korean IBM RoboCode site]
- 고슴도치의 사진 마을처음화면 . . . . 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]
- 데블스캠프2006/금요일 . . . . 2 matches
[CodeRace/데스크탑검색]
- 데블스캠프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/황재선] ||
- 새싹교실/2012/세싹 . . . . 2 matches
- 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/주먹밥/이소라때리기게임 . . . . 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
* instagram : enoch.g1
* [Clean Code With Pair Programming]
* [데블스캠프2011/둘째날/Scratch]
* [데블스캠프2011/다섯째날/How To Write Code Well/송지원, 성화수]
월요일 스크래치([데블스캠프2009/월요일/Scratch])를 주제로 세미나 진행.
- 이영호/64bit컴퓨터와그에따른공부방향 . . . . 2 matches
OS를 만들기도 하겠으며, 저 사람들과 같은 MDir Clone, Graphics, Sound 등 모든 것을 Assembly로 해내겠다.
이러고 보니 현직 프로그래머들의 싸움이 되고 있군요. System 프로그래머와 일반 Application 프로그래머의 싸움. 한가지... 모두가 다 그런것은 아니겠지만, 전 Coder에 머무르고 싶지는 않습니다. 저 높은 수준까지는 아니더래도 Programmer로서 Guru정도의 위치에는 가고 싶군요. - [이영호]
참고로 저는 82년부터 기계어(Machine Code)로 프로그래밍을 해본 사람입니다. 그렇지만 그 경험이 제가 현재 컨설턴트로, 프로그래머로 살아가는데 결정적 도움이 되었다는 생각은 들지 않습니다.
컴퓨터 계의 대부 다익스트라(EdsgerDijkstra)는 이런 말을 했죠. "천문학이 망원경에 대한 학문이 아니듯이, 컴퓨터 과학 역시 컴퓨터에 대한 것이 아니다."(Computer science is no more about computers than astronomy is about telescopes.) 망원경 속을 들여파봐야 거기에서 명왕성이 뭔지 알 수가 없고, 컴퓨터를 속속들이 이해한다고 해서 컴퓨터 과학에 달통할 수는 없다 그런 말이죠.
- 조동영 . . . . 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
=== CodeRace ===
- AKnight'sJourney/강소현 . . . . 1 match
== Source Code ==
- AKnight'sJourney/정진경 . . . . 1 match
=== Source Code ===
- AOI/2004 . . . . 1 match
* 겨울 교재 : Programming Challenges ( Aladdin:8979142889 )
|| [AustralianVoting]|| . || . || O || . || . || . || . || O ||
[Refactoring/BadSmellsInCode] --[강희경]
- AnEasyProblem/강성현 . . . . 1 match
== Source Code ==
- AncientCipher/정진경 . . . . 1 match
=== Source Code ===
- 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);
- Boost/SmartPointer . . . . 1 match
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 . . . . 1 match
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
- BusSimulation/영창 . . . . 1 match
= Code =
왜 OOP적 접근법이 필요한지 약간 감이 잡힌다고 해야할까? 이런 현실의 내용을 simulation 하기에는 structured programming의 접근법으로는 참 다루기가 힘든점들이 많을 것 같다. - [eternalbleu]
- CPPStudy_2005_1/STL성적처리_2 . . . . 1 match
= Code =
map< string, vector<int> > grades;
save_map(token, grades);
print_report(cout, grades);
bool save_map(vector<string>& input, map< string, vector<int> >& grades) {
grades[input[0]].push_back(atoi(input[i].c_str()));
double total(const vector<int>& grades) {
return accumulate(grades.begin(), grades.end(), 0.0);
for(map< string, vector<int> >::const_iterator iter = record.begin();
for(vector<int>::const_iterator grades = (iter->second).begin();
grades != (iter->second).end();
++grades)
cout<<*grades<<'\t';
- 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
- CanvasBreaker . . . . 1 match
* 2002학년도 2학기 ObjectProgramming 3번째 프로젝트
1. Contrast Stretching
2. Histogram Equalization
8. Contrast Stretched , Compression - 1시간
* Clipping ,Iso-intensity, Range-Highlighting, Solarize - 40분
* FirstParabola, SecondParabola - 30분
- Chapter I - Sample Code . . . . 1 match
=== Sample Code ===
==== Character-Based Display ====
PC_DispChar() // Display a single ASCII chracter anywhere on the screen
- Classes . . . . 1 match
[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.
- Cocos2d . . . . 1 match
* 서울어코드 멘토링에서 Code S 팀 중, [김민재]와 [백주협]이 "스마트 TV 게임 어플리케이션"을 제작하기로 함.
- CodingStandard . . . . 1 match
see also CodeConvention
["ExtremeProgramming"]
- 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
- 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 ==
- DebuggingSeminar_2005/DebugCRT . . . . 1 match
= Code =
참조) [http://zeropage.org/wiki/AcceleratedC_2b_2b_2fChapter11#line287 The rule of Three]
[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsdebug/html/_core_c_run2dtime_library_debugging_support.asp MSDN]
- 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.'''''
- FileStructureClass . . . . 1 match
다른 건 둘째치고, 교재의 Pseudo Code 가 정말 마음에 안든다. 전혀 구조적으로 볼때 한번에 이해하기 어렵게 만들어놓았다는 느낌을 지울 수가 없다. 고로, 교수님의 수업을 잘 듣고 필기할 필요가 있다. (교수님이 잡아주는 예제가 더 쉽고 이해하기도 좋다.)
- FortuneMacro . . . . 1 match
Fortune 매크로는 fortune파일의 인덱스를 직접 읽어들여 사용하므로 FortuneCookies를 읽어들이는 RandomQuoteMacro보다 매우 빠릅니다. :)
- Garbage collector for C and C++ . . . . 1 match
* -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.
- Gof/AbstractFactory . . . . 1 match
== Abstract Factory ==
이 문제는 기본적인 Widget의 인터페이스를 정의한 abstract WidgetFactory 클래스를 정의함으로써 해결할 수 있다. 또한 모든 종류의 Widget에는 추상클래스가 존재한다, 그리고 구체적인 서브 클래스는 Widget을 상속해서 룩앤필 기본을 정의한다. WidgetFactory의 인터페이스는 각각의 추상 Widget 클래스의 새로운 객체를 반환하는 기능을 가지고 있다. 클라이언트는 이런 기능을 수행해서 Widget 인스턴스를 만든다. 그러나 클라이언트는 사용하는 클래스의 구체적인 내용에 대해서는 신경쓰지 않는다. 이처럼 클라이언트는 일반적인(?) 룩앤필의 독립성에 의존한다.
이럴 때 Abstract Factory 패턴을 사용해라
* AbstractFactory(WidgetFactory)
* AbstractProduct(Window, ScrollBar)
* AbstractFactory에 의해서 정의된 인터페이스와 AbstractProduct 클래스만을 사용한다.
=== Collaborations ===
* AbstractFactory는 객체(ProductObject)의 생성을 ConcreteFactory의 서브 클래스에 위임한다.
Abstract Factory 패턴은 다음과 같은 장점과 단점이 있다.
1. ''독립적인 concrete 클래스들.'' Abstract Factory 패턴은 어플리케이션이 생성한 오브젝트의 클래스를 조정할 수 있도록 해준다.
abstract factory는 완벽한 산물의 집합을 생성해 내게되어, 모든 산물의 집합이 한번에 바뀔 수 있게 한다(같은형태의 다른 모습들이므로.. 역자 주).
AbstractFactory는 이것을 쉽게 한다.
4. ''새로운 산물을 지원하는 것이 어렵다.'' abstract factory들을 확장해서 새로운 산물을 생성하는 것은 쉽지 않다.
왜냐하면 AbstractFactory 인터페이스는 생산되어질 산물의 집합을 고정해놓기 때문이다. 새로운 산물을 지원하는 데는 factory의 인터페이스를 확장할 필요가 있다
(AbstractFactory 클래스와 모든 서브 클래스들을 바꾸는것을 포함해서). Implementation 부분에서 이것에 대한 한가지 해결점에 대해 논의 할 것이다.
=== Sample Code ===
InterViews 는 AbstractFactory 클래스들을 나타내기 위해서 'Kit'를 접미사로 사용한다. 이것은 WidgetKit과 DialogKit abstract factory 들을 명확한 ["룩앤필"] UI 객체를 위해서 정의한다. InterViews는 또한 서로 다른 복합 객체를 생성하는 LayoutKit 을 포함다. 예를 들면, 어떤 layout은 문서의 방향(인물이나 풍경)에 따른 서로 다른 복합 객체를 개념적으로 정렬한다.
ET++[WGM88]은 다른 윈도우 시스템(예를 들면, X Windows 와 SunViews)간의 호환을 수행하기 위해서 Abstract Factory 패턴을 사용했다. 윈도우 시스템의 추상 base 클래스는 윈도우시스템의 자원 객체(예를 들면, MakeWindow, MakeFont, MakeColor)를 생성할 수 있는 인터페이스를 정의한다. Concrete 서브 클래스는 특정 윈도우 시스템에 인터페이스를 수행한다.
- 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를 요구하지 않는다.
- HardcoreCppStudy/첫숙제 . . . . 1 match
RandomWalk <-역시 참조할 것
- HelpOnConfiguration . . . . 1 match
* VimProcessor 혹은 CodeColoringProcessor
$path='./bin;c:/windows/command;c:/Program Files/gnuplot;c:/Program Files/vim/vim71'; # for win32
[[Navigation(HelpOnAdministration)]]
- HolubOnPatterns . . . . 1 match
* [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] - 원서
- HowManyFibs?/황재선 . . . . 1 match
반복적인 계산을 줄이기 위해서, bottom-up 방식으로 수열을 처음부터 계산하였다. 계산된 이전 값을 사용하여 다음 수열을 빠르게 얻을 수 있었다. Dynamic Programming을 처음으로 해보았다 :)
== Test Code ==
import junit.framework.TestCase;
- 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.
- JUnit . . . . 1 match
Java 언어를 위한 UnitTest Framework.
* http://huniv.hongik.ac.kr/~yong/moin.cgi/JunitSampleCode - 박응용씨의 위키페이지. JUnit 간단한 예제.
- 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이 안되더군요;
- Jolly Jumpers/정진경 . . . . 1 match
== Source Code ==
- JollyJumpers/강소현 . . . . 1 match
== Source Code ==
- JollyJumpers/김태진 . . . . 1 match
== Source Code ==
- JollyJumpers/정진경 . . . . 1 match
== Source Code ==
- Linux . . . . 1 match
[[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]
- LinuxSystemClass/Exam_2004_1 . . . . 1 match
Rate Scheduling 란?
- NSIS/예제1 . . . . 1 match
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
- NSIS/예제2 . . . . 1 match
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 . . . . 1 match
[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
- 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 가 개발했다.
- PatternTemplate . . . . 1 match
== Collaborations ==
== Sample Code ==
- Perforce . . . . 1 match
비슷한 소프트웨어로 Rational ClearCase, MS Team Foundation, Borland StarTeam 급을 들 수 있다.
- PragmaticVersionControlWithCVS/UsingModules . . . . 1 match
|| [PragmaticVersionControlWithCVS/CreatingAProject] || [PragmaticVersionControlWithCVS/ThirdPartyCode] ||
[PragmaticVersionControlWithCVS]
- PragmaticVersionControlWithCVS/UsingTagsAndBranches . . . . 1 match
|| [PragmaticVersionControlWithCVS/CommonCVSCommands] || [PragmaticVersionControlWithCVS/CreatingAProject] ||
= Using Tags and Branches =
== Tags, Branches and Tagging ==
== Creating a Release Branch ==
== Working in a Release Branch ==
== Generating a Release ==
== Fixing Bugs in a Release Branch ==
== Developer Experimental Branches ==
== Working With Experimental Code ==
== Merging The Experimental Branch ==
[PragmaticVersionControlWithCVS]
- ProjectPrometheus/BugReport . . . . 1 match
* ViewBookExtractor - Regular Expression
* SearchBookExtractor - Regular Expression
- 자주 바뀌는 부분에 대해서 Page -> Object Mapping Code Generator 를 만들어내거나, 저 부분에 대해서는 텍스트 화일로 뺌 으로서 일종의 스크립트화 시키는 방법(컴파일을 하지 않아도 되니까), 화일로 따로 빼내는 방법 등을 생각해볼 수 있을 것 같다.
- ProjectSemiPhotoshop/계획서 . . . . 1 match
* Project Code Name(팀명) : ProjectSemiPhotoshop
* 11/26 화 2차 integration ( 히스토그램, Quantization)
* 11/28 목 3차 integration ( 남은 기본 기능, 명암 변화들 )
* 11/30 토 4차 integration ( 추가 기능 )
- ProjectSemiPhotoshop/요구사항 . . . . 1 match
* Contrast Stretched (O 흑백)
* Range-highlighting(범위-강조) (O 흑백)
* Parabola
* First Parabola (O 흑백)
* Second Parabola (O 흑백)
* Contrast Stretching (O)
* Histogram Equalisation(O)
- 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분간 수정. 다시 질문. 답변을 받고 몇군데를 다시 고쳐서 업로드함.
- RoboCode/siegetank . . . . 1 match
[RoboCode] [데블스캠프2005]
- 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
- SmallTalk/강좌FromHitel/강의4 . . . . 1 match
하나는 "System Transcript"라는 제목이 붙어있는 "알림판"(transcript)이
Smalltalk 환경에서 가장 중요한 창은 "알림판"(transcript)입니다. 원래
'transcript'라는 낱말의 뜻은 '베껴낸 것, 사본, 등본'인데, Smalltalk를
깊이 공부하지 못한 필자로써는 왜 transcript라는 낱말이 이 창에 붙게 되
Transcript show: '안녕하세요?'.
자, 여러분이 지금 어디에 있던지 Tools > Class Hierarchy Browser 메뉴를
Hierarchy Browser)를 불러낼 수 있습니다. 갈래씨줄 탐색기를 줄여서 '갈래
이 갈래씨줄 탐색기는 이러한 갈래들의 씨줄(hierarchy)을 짚어가며 갈래들
찾아내는 명령입니다. 약 3M 이상 되는 바탕글(source code)에서 글귀를 찾
SmalltalkWorkspace>>evaluateRange:ifFail:
- 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);
- StuPId/정진경 . . . . 1 match
=== Source Code ===
- SystemPages . . . . 1 match
* RandomPage - 무작위 검색. ^^
- VMWare/OSImplementationTest . . . . 1 match
[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--------------------
- ViImproved . . . . 1 match
* vimrc 을 직접 건들여 수정하기 힘든 사람들에게 꼭 추천하고 싶은 사이트 [[https://vim-bootstrap.com]] - 사용법은 직접 검색바람 - makerdark98
* [[http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html|Graphical vi-vim Cheat Sheet and Tutorial]]
* [[https://www.youtube.com/watch?v=5r6yzFEXajQ | Vim + tmux - OMG!Code ]] - cheatsheet로만 vim을 배우는 사람들에게 권함 - makerdark98
- 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.
- ZPHomePage . . . . 1 match
* http://cafe.naver.com/rina7982.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=750 - 웹안전색상
달력 그냥 책 베낄려구 했는데 [CodeYourself]하기 위해 다시 첨부터 제작 들어간다. -[강희경]
- [Lovely]boy^_^/Diary/2-2-2 . . . . 1 match
* 우리나라에 사람 무는 바퀴벌레가 들어온 기념으로.. TDD를 이용한 RandomWalk2를 해보았다.(Python) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
- aekae/* . . . . 1 match
== 소스 Code ==
- ddori . . . . 1 match
* Brian Crain - Betterfly waltz
* Rage Against Machine
* Foo Fighters - I wanna be your monkey wranch babe..
- teruteruboz . . . . 1 match
* ["RandomWalk/성재"]
* 이영록 : ["ricoder"]
* 임영동 : ["Yggdrasil"]
- whiteblue . . . . 1 match
* ["RandomWalk/유상욱"]
*임영동 : ["Yggdrasil"] [[BR]]
*이영록 : ["ricoder"] [[BR]]
- 데블스캠프2005/RUR-PLE . . . . 1 match
* 창에서 Robot: Code and Learn 탭을 선택한다.
- 데블스캠프2006/화요일 . . . . 1 match
== Code 작성 ==
- 데블스캠프2011/다섯째날/후기 . . . . 1 match
== 변형진/How To Write Code Well ==
- 몸짱프로젝트/BinarySearchTree . . . . 1 match
=== After Rafactoring ===
- 몸짱프로젝트/DisplayPumutation . . . . 1 match
== PsuedoCode ==
- 반복문자열/임인택 . . . . 1 match
=== Source Code ===
- 새싹교실/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/손동일] [오목/재선,동일]
- 인수/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.
- 정모/2006.9.7 . . . . 1 match
Ruby On Rails - 현태, 상협, 건영, 수생, 아영
- 정모/2011.7.18 . . . . 1 match
* 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
* 처음 OMS를 보면서 우리집 컴퓨터도 이제 6년차에 돌입했는데.. 저렇게 써야하나 라는 생각이 들다가 그냥 이상태로 쓰지 뭐 이런 생각이 든 -_-;;; 암튼.. 저도 1학년땐 리눅스를 사용하는 모습만 보고 직접 써 보지는 못했었는데 사용하는 모습을 보니 대단하다는 생각이 드네요. 리빙포인트를 하면서 학원에서 들었던 이야기랑 삼수때 겪었던 이야기가 믹스되어 말하게 되었네요. 원래는 그냥 학원 이야기만 하려고 했는데 -ㅅ-a Joseph Yoder 와의 만남 후기를 들으면서 스티브 맥코넬씨가 쓴 Code Complete라는 책에서 이야기 하는 내용과도 많이 겹치는구나 라는 생각을 했습니다. - [권순의]
- 코드레이스/2007/RUR_PLE . . . . 1 match
* 창에서 Robot: Code and Learn 탭을 선택한다.
- 타도코코아CppStudy/0731 . . . . 1 match
|| 랜덤워크 || [CherryBoy] || Upload:randomWalk_CherRy.cpp|| . ||
|| ZeroWiki:RandomWalk2 || [CherryBoy] || Upload:randomWork2_CheRy.cpp || 다시 평가부탁드립니다 - [CherryBoy] ||
* randomwalk2 거의 끝나 간다.~~ 우하하하하~~ 알바 끝나고 와서 올립니다.~~ [수진]
- 프로그래밍잔치/첫째날 . . . . 1 match
* 다양한 언어 혹은 Frameworks로 문제 풀기
* 소스 Code 에 대해서 Copy & Paste 금지!
Found 190 matching pages out of 7555 total pages (1950 pages are searched)
You can also click here to search title.